The ARM cortex m3 I'm using - stm32f205re - is a 64 pin lqfp package; I pretty much went for highest performer in 64pin or less package withbeasy hookups and 3.3V.. Most more modern chips are 144pin or some crazy BGA ..
These guys are astoundingly powerful and actually pretty easy to grt going .. Just like an avr but more wires. The one here is something like 7 or so Vcc's and a couple gnd's; no crystal needed but I couldn't get stable 100Mhz or more without one .. So crystal and a couple caps and thats it!
I'm using official programmer, but you can get the $7.99 demonboard which includes a built in programmer than in turn can program off-board chip, so pretty cheap.
Once your make the dip adapter its easy to bring up.
Harder is figuring out your toolchain and getting your head around things.. So mich documentation and a weird split between official ARM api and the manuf api..
Ie; turns out CMsIS is a standard ARM makes .. A enormous pile of structs and standard register names/addresses; you can code to that.
Or next level up is 'standard library' type HAL, which are lowest level peripheral wrapper functions named after cmsis entries. Very basic but a bit easier .. Set up a struct, feed it to helper function.
The next level up is IDE's and toolchains, each with custom libs. Keil etc. some of these support ARM cortex-M3 but not the f2 line of chips (but do support f1, f3, f4 maddendingly. And of course gcc .. A half dozen unsupported variants and a new arm supported one.
Then programmer software for linux .. Stlink OSS doesnt support my chip; again most people use eval and demo boards and never go to bare metal .. Odd.
Openocd can flash my chip and also act as jtag<-> gdb bridge (amazing)
So before you write a line of code you're figuring out what library level to code at and finding a toolchain supporting your libraries and chipset; also you need to learn anout jtag taps and gdb bridges and openocd and all that junk .. Before you can donhello-blinky first app.
Its a challenge .. The attack surface is much larger and much less defined .. Googling doesn't help much.
The hello blinky app is a little more complex than an avr8 which just works; these chips are fully optional for every piece due to power consumption so before a gpioncan work you need to learn to turn a gpio clock on, and to do that you need to figure out thatyour gpio pins are on multiple busses so which one do you turn on?
I just wasn't aware of that granularity at all; not hard to fond out, but just one of 20 concepts to grok before you get anywhere.
If you look st just commited vgatest.c in my git you'll see it all looks pretty familiar and easy .. But getting there took awhile. Twiddlong registers to ser PLL and all was weird (and no idea how tondebug ..) butnthen I found some libs to make life easier.
Need to fond an m3 emulator to make my life easier
but now after just a few days I've got gdb ttalking to the chip .. Can just ctrl-c and set breakpoints etc - quite amazing - and can do all the gpio I need.
Vgatest.c has vsync implemented in about half an hours work; if babies sleep I'll plop in base hsync and some show-all-red or grid code and see if I can bring vga up! So you can see .. Went from no congidence and pain knto operaying okay in just a few days
So its weird, but not too bad. At least physical wiring is easy!
Be mindful .. 3V, don't blow em up with 5V
You can get F4 (similar but faster, and 144+ pincount)! On free sample from sT .. 180MHz!! I've just got some .. But making thatbadaptor is hell so another week.
Any chip you know to convert rgb to composite?
I wrote some mono and colour composite generator and its pretty challenging .. Much uglier than vga.
C64 etc used Vic chip to do it .. Custom stuff
Jeff