最近在写LM3S9B96的驱动,虽然是TI最新的cortex-m3内核的ARM,老实说这片子是我用过的最难用的一片ARM。 首先根据TI提供的资料显示,刚出厂的芯片就存在BUG,芯片的FLASH只能从0x1000开始,在编程软件中的下载配置里要进行修改,后来发现编译完成后的脚本文件也要修改,解决程序下不进去问题就浪费了我一天多的时间。 其次,JTAG端口与锁相环的问题。相信用过LM3S的人都应该清楚这一系列的ARM的JTAG端口是可以作为普通端口使用的。看似有好处,但其实还不如不要有这一功能,因为在JTAG端口被作为普通端口后如果不加入防JTAG失效的程序,那芯片就无法正常下载程序了。 还要就是库的问题,才用的时候起来看似佷方便,其实影藏这很大的隐患,由于LM3S9B96是刚出的芯片,在编译软件中的驱动库(.lib)中有的引脚还没有定义,所以直接引用就会出问题,最后还是要老老实实的在.C文件中添加。 还有要说说端口的问题了,这是最大的问题。和其他编程芯片不同,这片子的端口要先使能,然后定义方向,在而如果是输出还要定义输出方式,最后通过相应的读写函数进行操作,以上过程缺一补可,否则虽然程序编译可以通过但在链接时会引起堆栈的溢出。这种问题很隐蔽,芯片资料中几乎没有提到过,刚开始的时候犯错的话着实浪费了不少时间。 最后,就是芯片会莫名其妙的被锁,比如开内部锁相环或者用Jlink的SW下载方式时,这两样新手最好不要尝试,特别是后者,否则将会很麻烦。
|