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

TMS320C6748: 如何使用sysbios的cfg中,无法配置段的fill属性

Part Number:TMS320C6748

如题,我使用RTSC新建了一个section,在配置文件中配置如下:

Program.sectMap[“.env_reg”] = new Program.SectionSpec();
Program.sectMap[“.env_reg”].loadSegment = "DDR_INIT_1";
Program.sectMap[“.env_reg”].loadAlign = 4;
Program.sectMap[“.env_reg”].fill = 0;

编译可以通过,在生成的CMD文件中也有.env_reg: load > DDR_INIT_1 align = 0x4, fill = 0x0字样。

我期望,在.env_reg段中中,未使用的段空间填充为0,但是通过仿真器加载,未使用的段空间并没有被填充成0。

Nancy Wang:

xu yang 说:在.env_reg段中中,未使用的段空间填充为0,但是通过仿真器加载,未使用的段空间并没有被填充成0。

请问是如何查看的?

我需要测试看一下再给您回复。

,

xu yang:

通过仿真器,查看段所在地址的memory

,

Nancy Wang:

看一下map文件,.env_reg段属性中fill是否生效。另外.env_reg段在代码中是如何使用的?

我试了一下通过fill给未使用的stack赋值是生效的。

,

xu yang:

.env_reg段放置于DDR_INIT_1,从map文件来看,未填充。

在自动生成的链接脚本里,fill属性已经在了。

这个段我用来实现类似linux内核注册启动函数的功能,将函数指针放入该段,以0作为遍历的结尾。目前使用注册复位函数的方式,手动清0了。

var Reset = xdc.useModule("xdc.runtime.Reset");Reset.fxns.length = 1Reset.fxns[0] = "&_user_reset";

虽然问题解决,但是我还是好奇,为什么链接脚本中已经标注fill属性,但是实际并未生效?

,

Nancy Wang:

map文件中应该会生成单独的.env_reg并标明属性,搜索看看。

,

xu yang:

是这个吗?

,

Nancy Wang:

是的。

,

xu yang:

为什么链接脚本里有fill字段,到map文件里就没有了呢?

,

Nancy Wang:

我在bios下测试看了一下,map文件中也没有生成,不清楚这是否是未使用的段空间没有被填充成0的原因,建议您可以升级到英文论坛看一下是否能解决该问题。

e2e.ti.com/…/processors-forum

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6748: 如何使用sysbios的cfg中,无法配置段的fill属性
分享到: 更多 (0)