请教CMD文件Memory配置的疑问<br /><br /><br /><br />我用的是TMS320LF2407A dsp, 在CCS2.2或ccs3.1的环境中C语言编程。在配置CMD文件时遇到如下问题,感到困惑, 请大家指教。<br /><br /><br />我实现的是一个简单的定时中断的程序。<br /><br /><br /><br />CMD文件如下, /* LF2407 CMD */<br /><br />MEMORY<br />{<br /> PAGE 0: <br /> VECS: origin = 0x8000, length 0x040<br /> PROG: origin = 0x8860, length 0x6000<br /> <br /> PAGE 1: <br /> B0 : origin = 0x200, length 0x100<br /> B1 : origin = 0x300, length 0x100<br /> DATA: origin = 0x0803, len=0x600 /* My question is here */<br />}<br /><br /><br /><br /><br />SECTIONS<br />{<br /> .vectors : {}>VECS PAGE 0 /* 中断向量表 */<br /> .text : {}>PROG PAGE 0 /* 可执行代码和字符串 */<br /> .cinit : {}>PROG PAGE 0 <br /> .switch : {}>PROG PAGE 0 /* 包含.switch语句建立的表格 */<br /><br /> .bss : {}>DATA PAGE 1 /* 保留全局变量和静态变量空间 */<br /> .const : {}>DATA PAGE 1 /* 字符串和switch表 */ <br /> .stack : {}>DATA PAGE 1 /* 为系统堆栈分配存储器 */<br /> .system : {}>DATA PAGE 1 /* 为动态存储器函数分配存储器空间 */ <br /><br />} <br /><br /><br /><br /><br />我的问题是在DATA: org = 0x0803, len=0x600 这一行。 当origin = 0x0800时,或时origin = 0x0801时,程序可以执行。但是当origin = 0x0803时,程序运行就有问题,可以运行,但进不了中断,但是程序会报道假中断程序里面。我不知是什么原因。<br /><br /><br />map文件我已经看了N遍,在org = 0x0800, 0x0801, 0x0802, 0x0803这几种情况下的map文件都看了没发现异常现象。<br /> <br /><br />整个工程文件我打了一个包放在附件文件,有兴趣的朋友可以在您的环境试一下。感谢。<br /><br /><br />请大家指教一些这个原因到底在什么地方,非常感谢!<br />xinyancode@163.com<br /><br /> <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200711/200711259444128.rar'>https://bbs.21ic.com/upfiles/img/200711/200711259444128.rar</a>
|