在写这篇小短文之前,想问问大家,不知道大家用什么编译器编译基于cortex-m3的代码? 项目开始的时候就会购买商业版的编译器么?还是用D版的?反正我是没找到好用的D版(有过贼心,没偷成)。前段时间一直在用IAR开发基于 Luminary LM3S的一个工具,可是在加入TCP/IP协议栈的时候遇到了32K的代码限制,在google上搜索了好几天都没有找到合适的key,于是只能自己动 手,做了基于4.4.0的gcc编译器(编译的代码已经应用于产品),在附件中可以直接下载。另外,Sourcery G++也可以编译Cortex M3,但没用过,欢迎有用过经历的朋友拍砖。不多说,做正事。
1.开发环境
目前的开发都是在Linux上进行的,当然也可以在Windows上做,只是据我知道的,GDB在windows下没有一个比较好用的能够设置 hard breakpoint的调试界面(对运行在flash上的程序设置断点),Linux下的DDD可以做到,而且一步一步的执行汇编代码,这个对于调试操作 系统的堆栈切换非常有用。除了省钱,另外一个吸引我的是Linux强大的网络功能和开源,可以基于此进行很多网络模拟测试开发。
操作系统选择UBUNTU 9.10。UBUNTU安装软件包很方便。例如后续我们将用到的调试工具OpenOCD,9.10上已经自带0.2的版本,运行命令apt-get install openocd就自动安装。尽管 10.04已经发布,但离稳定还需要一段时间,所以目前还是比较推荐9.10。当然,其它的Linux版本也可以使用,看个人兴趣。
<