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

TMS320F280039C: 代码段中空穴

Part Number:TMS320F280039C

(1)如何查看代码段中空穴? 

(2)如何减少代码段中空穴?

Ben Qin:

你好,能否详细描述一下?不太理解您说的空穴是什么。能否提供一下截图?

,

derik ?:

指的flash中没有被利用的,填充了0的区域。 

,

BarbiQ -:

查看生成的map文件,里边的空洞区域都标有 –HOLE–

$fill000000088002000000060008800200000006--HOLE-- [fill = ffff]$fill00100008801a000000060008801a00000006--HOLE-- [fill = ffff]$fill002000088020000000200008802000000020--HOLE-- [fill = ffff]$fill003000089957000000010008995700000001--HOLE-- [fill = ffff]$fill0040000899f4000005fc000899f4000005fc--HOLE-- [fill = ffff]$fill005000089ff40000000400089ff400000004--HOLE-- [fill = ffff]

,

Ben Qin:

参考下下面这个文件,第3.11 Data Page (DP) Pointer Load Optimization章节:

TMS320C28x Optimizing C/C++ Compiler v22.6.0.LTS User's Guide (Rev. Y)

,

derik ?:

如图,圈出的两个flash段之间间隔了很大的一块空间。 而前面的param_cfg_bp_run_state 并没有占据很大的空间。 我不是很理解中间为什么有这么大的空洞,并且map文件没有显示这里是空洞。 实际上查看flash存储的数据,这中间的地址都被填充了数据0 。

,

Ben Qin:

您应该是碰到了数据阻塞情况:

(+) Data blocking in the C2000 MCU compiler explained – Tools Insider – Archives – TI E2E support forums

,

derik ?:

谢谢,但是看着数据阻塞是发生在数据段的分配上吧,也就是RAM空间的分配。 

,

Ben Qin:

derik ? said:而前面的param_cfg_bp_run_state 并没有占据很大的空间

这个是你自己定义的吗?以及下面的PROTOCOL_EF02_PLUS_obj?

能否将您的CMD文件发上来?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280039C: 代码段中空穴
分享到: 更多 (0)