我的板子是自己制作的板子,没办法通过串口烧写工具(sfh_OMAP-L138.exe )烧写FLASH。我现在是在利用 TI的官方例程 烧写nor FLASH。我现在了解具体的烧写流程了,但是我没有办法编译官方例程 Norwriter 工程。当我直接导入进行编译的时候 CCS 会提示我,这个工程不是 TI C6x的工程。
错误信息是:#10178,attempt to link an object file that is not built for TI C6X。
这个问题一直没办法解决,所以我是把和norwriter有关的 源文件和头文件复制出来,单独建立了一个CCS5 的工程。编译的时候,有两个变量没办法resolve:
_EXTERNAL_RAM_START,_EXTERNAL_RAM_END
我查阅了一些资料,了解到这两个变量应该在cmd文件中进行定义。但是因为我的板子是自己制作的,里面的cmd文件也是自己写的,仿照原有工程的cmd文件设置了一下_EXTERNAL_RAM_START 和 _EXTERNAL_RAM_END:
我现在的问题是:
1) external_ram 的起始地址与实际长度到底应该怎么设置?我是随便设置的。
2) 按照我这个设置之后产生的norwriter 工程可以编译,中间也提示我读取 AIS文件。但是读取完AIS之后整个工程在调用NOR_ERASE函数擦除FLASH的时候,工程就陷入到这个函数没办法跳出,看了一下,工程最后是陷入到一个名叫Flash_Erase的TI没有开源的函数里面了。想请问一下这个问题的原因可能是什么?
想请TI的老师们再指点我一下。万分感激。
Shine:
1.请问您是怎么随便设置的,SDRAM的起始地址是0xc0000000吧?external_ram 的起始地址与实际长度是由START, SIZE命令自动生成的。请看汇编文档说明7.5.8.7 Address and Dimension Operators。
www.ti.com/…/spru186w.pdf2. 有没有打印“Erasing NOR failed”错误信息?
Zun Niu:
回复 Shine:
谢谢回复。