买了个国产的STM32开发板,想近距离接触下ARM。用BeagleBone和本地运行一个Linux没差区别,都感觉不到ARM的存在。Cortex-M3的开发好像用的都是Keil。这个软件只有Windows的版本,可以免费试用,还不错,只是免费版对编译目标文件大小上有限制,我编译uCos就会报错。STM32需要写startup的code,不能光有个main.c就运行,这点上AVR就干净多了。

然后上传,我用的是USB UART,很麻烦,上传完后还需要设置BOOT0/BOOT1跳针,接着RESET。上传软件用的是ST的Flash Loader Demonstrator,重复上传一次要点击几次鼠标。嗯,想想看Arduino真是方便,手不用脱离鼠标就可以完成一轮测试流程,不用拔啊插的。使用些专业的上传器比如ULINK2,STM32开发可能顺畅些。

我最希望的是有个命令行下的toolchain,一个命令compile、 upload、reset都搞定。

2012/8/26更新:

买了个j-link,克隆的,60¥,果然是好用(就是难看了点,挺大的一块黑色板砖)。首先这个不需要设置跳针,也可以在MDK设置Reset and Run,这样就不用手工reset了,上传速度也很快,最强的是可以单步DEBUG,和调试一般软件一样,JTAG果然强大。我搞AVR的时候只用ISP,毕竟代码量很小,所以这个调试功能实际有多大用处还带检验。(如果单就上手快慢来说,不得不佩服Arduino还是强大很多)

1)如果上传时出现“No Algorithm found for”,需要手工加上芯片类型。

2)升级J-link固件后会出现程序退出的现象,然后告诉你说你用的是克隆版本云云。解决方法为恢复安装目录下Keil\ARM\Segger的JLinkARM.dll,这里升级时会对DLL文件做个备份。也有直接修改DLL文件的方法

3)如果要纯的命令行来控制这个过程,有个开源的东东: OpenOCD,这里有讲JLink + OpenOCD的环境配置。