请问DSP高于64K的程序空间如何访问

[复制链接]
3498|7
 楼主| freeman05 发表于 2007-6-8 10:14 | 显示全部楼层 |阅读模式
DSP:&nbsp;5402<br />cmd文件中<br />PAGE&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXRAM&nbsp;&nbsp;org&nbsp;=&nbsp;0x4000&nbsp;&nbsp;len&nbsp;=&nbsp;0xfc000<br /><br />用以下语句访问外部RAM<br /><br />unsigned&nbsp;int&nbsp;*EXRAM=(unsigned&nbsp;int&nbsp;*)0xf8000;<br />unsigded&nbsp;int&nbsp;s=1;<br /><br />while(s)<br />{&nbsp;&nbsp;&nbsp;&nbsp;*EXRAM=0X5555;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(*EXRAM==0X5555)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s=0;<br />}<br /><br />结果调试时,测DSP的地址线ADDR19,ADDR18,ADDR17,ADDR16一直为低电平,<br />程序死循环&nbsp;。<br />所以想问下,高于64K的程序空间,如何访问啊???
tjsheep 发表于 2007-6-10 23:34 | 显示全部楼层

看54的帮助,可以用page n个

  
 楼主| freeman05 发表于 2007-6-13 10:44 | 显示全部楼层

?????

能不能说的具体些&nbsp;
dreambird 发表于 2007-6-13 22:00 | 显示全部楼层

re

看看汇编,估计被优化掉了<br />你把数据变量定义到了程序空间<br />你可以用汇编的程序空间访问指令来测试
wowow 发表于 2007-6-14 11:27 | 显示全部楼层

指针类型只能是16bit的

在CCS帮助里search:&quot;TMS320C54x&nbsp;Data&nbsp;Types&quot;.<br />这样限制的根源是C54xx的数据空间只有64k,程序空间1M/8M.估计看datasheet没注意.<br />程序如果要放到外部空间,定义函数时前面要加上far
wowow 发表于 2007-6-14 11:45 | 显示全部楼层

读写extern program space貌似只能用汇编了

查了用READA/WRITEA可以读写23bit地址范围的程序空间,但用C语言似乎无法实现.
dreambird 发表于 2007-6-14 20:30 | 显示全部楼层

当使用-mf选项时,指针为24位并且能指到扩展区

near/far仅影响函数调用,near-&gtCALL,far-&gtFCALL&nbsp;
 楼主| freeman05 发表于 2007-6-15 09:13 | 显示全部楼层

提示没有-mf啊

当在&nbsp;build&nbsp;options...&nbsp;中加入-mf选项时,出现下面的警告:<br /><br />&nbsp;D:CCStudio_v3.1MyProjectsEXRAM
ts.lib:&nbsp;warning:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linking&nbsp;incompatible&nbsp;formats:&nbsp;file&nbsp;compiled&nbsp;without&nbsp;-mf<br />&gt&gt&nbsp;D:CCStudio_v3.1MyProjectsEXRAM
ts.lib:&nbsp;warning:&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linking&nbsp;incompatible&nbsp;formats:&nbsp;file&nbsp;compiled&nbsp;without&nbsp;-mf<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部