TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280039C: bootloader升级程序

Part Number:TMS320F280039COther Parts Discussed in Thread:C2000WARE

280039C个人的bootload程序跳APP程序过程中发现一个问题。

flash前面4个扇区放boot程序,剩下的flash放APP

用TI的开发板测试,发现如果APP的codestart放在0xAFFFE,会导致boot跳转不过去,boot仿真会报如下错误

而前移一个地址位或者多个地址位就能够成功,这个具体原因是因为什么,想请教一下

Ben Qin:

你好,我查看下相关资料后回复您。

,

SccFang:

Slight smile

,

Ben Qin:

因为这里codestart的长度是0x2,你放在0xafffe这里的长度是不够的。所以最多只能放在0xafffd。

,

SccFang:

理论上放在0xAFFFE也是有两个地址长度的,0xAFFFE和0xAFFFF;看过内存地址分配,放在0xAFFFD和0xAFFFE这两个地方编译出来的数据是一样

,

Ben Qin:

SccFang 说:放在0xAFFFD和0xAFFFE这两个地方编译出来的数据是一样

这里放在0xAFFFD时地址0xAFFFF的数据是什么?

,

SccFang:

放在0xAFFFE ;

放在0xAFFFD:

,

Ben Qin:

参考下TRM6.7.1.2,因为prefatch 模式是使能的,CPU会往后多读取一个地址,然而你这里在往后是没有地址了,所以会报错。

www.ti.com/…/spruiw9b.pdf

,

SccFang:

您好,还是有点没明白,看了这部分的解释,因为flash的预取机制,一般来说flash的后16个地址都不建议用,但是为什么同样的配置在280025C上可以跳转成功,同样是放在倒数第二个地址位,对比两个flash的配置,没有任何区别。还有为啥280039c中,放在0xAFFFD上是可以的

,

Ben Qin:

似乎存在一些边界条件,这些条件会影响预取机制是否被激活并触发错误。无论如何,在 F28002x 和 F28003x 上,您都不应将可执行代码放入闪存的最后一行。因此,C2000Ware 中提供的CMD(例如 device_support/f28003x/common/cmd/28003x_generic_flash_lnk.cmd)保留最后一行。

,

SccFang:

好的 感谢!

,

Ben Qin:

不客气

,

user6003431:

(我的个人资料已经完善,并提交提示成功。但多次发新问题都进入个人资料完善页面,不发发新问题)

请问下,CCS 12 ,能修改工程选项配置,指定程序起始地址吗? 我的程序是Boot+APP,Boot空间小于16KB,APP从16KB开始

以前用CortexM内核的MCU,Keil MDK就有这个功能,很方便单独仿真调试APP,不用修改配置文件,只需修改一个ROM的开始地址。

,

Ben Qin:

应该是不行的,我这边没找到相关的设置。只能通过CMD文件来更改。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280039C: bootloader升级程序
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1