Other Parts Discussed in Thread: UNIFLASH, C2000WARE
。bootload中只是执行了一条跳转指令而已。为什么什么导致CLAsin,CLAcos不正常。而其他CLA math函数是正常的。如果不用bootlad升级,直接将应用程序烧进去就全是正常的。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
。bootload中只是执行了一条跳转指令而已。为什么什么导致CLAsin,CLAcos不正常。而其他CLA math函数是正常的。如果不用bootlad升级,直接将应用程序烧进去就全是正常的。
你好,问题解决了,但是疑问没解决。我把CLARAM1挪到PAGE0,存放CLAMath表格的FLASHB也挪PAGE0。就正常了。PAGE1的FLASH不会出现在HEX是什么原因?出现这个问题的原因是FLASHB放在了PAGE1然后表格数据只有.out文件中有,HEX中没有。改完后FLASHB的数据也出现在了HEX。PAGE0放程序,PAGE1放数据啊。我的CMD文件是从C2000Ware拷的,TI自己也是把CLARAM1跟FLASHB放PAGE1。
求解惑,精神错乱了。感谢
你能确认你是否按照正确的步骤设置了你的示例吗。请参阅此文档。
您是否也可以尝试使用C2000Ware中提供的CLA示例,看看在通过串行端口闪烁时是否观察到相同的行为。
https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/550845/why-lost-data-in-flash-during-converter-out-to-hex-use-lab5b/2014744#2014744
你好,我找到了类似的问题。说是如果有多个page,page0会写到.hex中,其他page会生成类似xx.i10的文件,所以如果某个扇区放在了page1存放了正弦表格。这个表格并不会出现在.hex文件。这问题真够冷门的,费了好多功夫才找到10年前的帖子有人遇到同样问题。但是TI一直没改。
当你说page1 FLASH没有出现在HEX中时,你是在说二进制图像吗?您能否确认如何生成十六进制文件,以及是否在所有闪存库中生成。听起来HEX的生成并没有捕获.out中存在的表数据。仔细检查HEX,确保图像中存在所有内存和数据。
你好,我确认生成hex的设置是正确的,公司已经这样用了很多年了,第一步使能hex生成的选项勾选,第二步,设置数据宽度为16,第三步选择生成格式intel hex。且这个问题很容易复现,很早的一些帖子也提到这个问题。比如FLASHB放在page1,然后把一个正弦表,或者其他常量数组放到FLASHB。然后编译生成.out跟hex。用uniflash分别把.out跟.hex烧进MCU。然后分别计算校验和就可以复现。或者直接打开hex查看数据就能发现,hex是有数据地址的,FLASHB的数据肯定不会出现在HEX中。十年前的贴子就有人解释过,就是不同page的FLASH会放到不同的文件中,page0放.hex文件,page1放.i10后缀的文件,并且会有警告:“自动生成了i10文件”。
解决办法也很简单,c2000ware中的cmd文件是默认有两个page:page0,page1。然后c2000ware中的F28035 CLA例程中的CMD文件(我就是拷贝的这个cmd)中FLASHB就是放在了page1。只要删掉page1,所有地址全放在page0,问题就解决了。
就E2E论坛里有好多人在问了,比如”自动生成xxx.i10警告“"CLAmath唯独CLAsin不能用其他函数正常",就是这个原因。但是知道这个问题的人好像很少。