使用EasyARM2131时遇到的一些问题
1、常常发生ULINK找不到CPU,后来发现是因为在软件内对GPIO的不正确操作造成的。PHILIPS的LPC2000系列片子有一个最大的特点就是JTAG引脚也是复用的。可以被选择成普通GPIO。所以在设置引脚时一定要注意,不能直接对PINSELx进行赋值(当然这种方法本来就不应该使用)。而是先读出PINSELx寄存器的值,用位逻辑运算将需要修改的几位进行修改。也就是“读取->修改(逻辑运算)->赋值”。不然就会很容易使JTAG失效,导致仿真器找不到CPU。只有用ISP清除CPU的FLASH才可以。这一点PHILIPS做的很愚蠢。
2、在使用Keil时,缺省给的startup是错误的,无法使用。周立功的技术支持说Keil公司还尚未给LPC213x系列写startup。可以用ADS1.2编译,再在Keil里调试。具体方法在周立功的网站上可以下载。另外据周立功的技术支持声称,ADS1.2的编译效率是几个常见编译器里最高的。不知真的假的,现在还没有做过测试。但是对AXD的调试环境实在无法忍受。
3、在Keil设置时非常需要注意的是:要确认ULINK仿真器设置里的Flashdownload
setup里的Flash起始位置和大小是正确的。特别是大小,其数值不会随Device选择好了就自动更改,需要人工设置。
4、我们一直在使用Keil for ARM 2.32版,很稳定。但是使用从网上下载的Keil for ARM 2.4版时却遇到很多问题。不知道现在是否有所改进。
5、周立功的技术服务态度不错,但是水平有限。常常是一问三不知,丁点的事把人说得一头雾水。有时就算解决问题也有凑巧的嫌疑。上面这些问题基本上都是我们自己琢磨出来的。
评论