打印

请教关于CMD文件的编写问题

[复制链接]
1045|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linhai2009|  楼主 | 2009-5-12 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直弄不清编写CMD文件时的一些问题:
 1. 既然COFF目标文件包含三个默认的块(.text可执行代码.data已初始化数据.bss为未初始化数据保留的空间),那么 未初始化块(data)中包含的段(.stack  .sysmem .esysmem  )和初始化块包含的段(.switch .pinit .cinit .const .econst)这些段在哪儿有定义?还是需要自己定义?它们和三个默认块有什么关系?
2..const .switch .bss .stack .sysmem 要求放在低地址的数据页,问题是:什么是低地址的数据页?是以哪个地址为分界线,还是在某块数据存储器映像内的低地址?
3. .reset是什么段名吗?在CMD文件中可以将其直接定位?
 `
请大家讨论,指教啊

相关帖子

沙发
jakecumt| | 2009-5-12 21:26 | 只看该作者

这个问题你最好打电话问一下技术支持

使用特权

评论回复
板凳
thf2008| | 2009-5-15 00:37 | 只看该作者

re

一、段(.switch .pinit .cinit .const .econst)这些段在哪儿有定义?
 在rts2800.lib里面的,看MAP文件可以查到。如果你不调用这个库的话你需要自己定义。在你写代码或是初始化数据的时候,你不是特别指明哪个段的话,会放到默认段里面。这些段和默认段没有本质的区别,只是为了防止有人写程序时,忘记或是不习惯用伪指令,将代码或是数据放在指定的段中。
二、低地址是指低64K(0x0000~0xffff),主要是为了方便28x与24x兼容。
三、.reset是已初始化代码,是CPU上电复位时的复位中断向量,它是32位的,存放的是复位中断服务程序的入口地址。如果使用内部BROM启动,不用在CMD中给其定义,其容已经固化在芯片内部,其内容是0x3ff000,指向的BOOT ROM的起始地址;如果使用XINTF Zone7则需要在CMD中将定位,如果有特殊要求,用户还可以将其中的中断向量改到其他地址。
 这是我个人理解,也许有些地方有偏差,希望大家批评指正

使用特权

评论回复
地板
mcujake| | 2009-5-18 22:46 | 只看该作者

路过 学习

使用特权

评论回复
5
linhai2009|  楼主 | 2009-5-19 00:04 | 只看该作者

非常感谢3楼的

使用特权

评论回复
6
thf2008| | 2009-5-19 13:32 | 只看该作者

不用谢,CMD文件改的时候要小心点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

191

主题

1930

帖子

2

粉丝