打印

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

[复制链接]
2249|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
freeman05|  楼主 | 2007-6-8 10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP: 5402
cmd文件中
PAGE 0:
       EXRAM  org = 0x4000  len = 0xfc000

用以下语句访问外部RAM

unsigned int *EXRAM=(unsigned int *)0xf8000;
unsigded int s=1;

while(s)
{    *EXRAM=0X5555;
     if(*EXRAM==0X5555)
          s=0;
}

结果调试时,测DSP的地址线ADDR19,ADDR18,ADDR17,ADDR16一直为低电平,
程序死循环 。
所以想问下,高于64K的程序空间,如何访问啊???

相关帖子

沙发
tjsheep| | 2007-6-10 23:34 | 只看该作者

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

使用特权

评论回复
板凳
freeman05|  楼主 | 2007-6-13 10:44 | 只看该作者

?????

能不能说的具体些 

使用特权

评论回复
地板
dreambird| | 2007-6-13 22:00 | 只看该作者

re

看看汇编,估计被优化掉了
你把数据变量定义到了程序空间
你可以用汇编的程序空间访问指令来测试

使用特权

评论回复
5
wowow| | 2007-6-14 11:27 | 只看该作者

指针类型只能是16bit的

在CCS帮助里search:"TMS320C54x Data Types".
这样限制的根源是C54xx的数据空间只有64k,程序空间1M/8M.估计看datasheet没注意.
程序如果要放到外部空间,定义函数时前面要加上far

使用特权

评论回复
6
wowow| | 2007-6-14 11:45 | 只看该作者

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

查了用READA/WRITEA可以读写23bit地址范围的程序空间,但用C语言似乎无法实现.

使用特权

评论回复
7
dreambird| | 2007-6-14 20:30 | 只看该作者

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

near/far仅影响函数调用,near->CALL,far->FCALL 

使用特权

评论回复
8
freeman05|  楼主 | 2007-6-15 09:13 | 只看该作者

提示没有-mf啊

当在 build options... 中加入-mf选项时,出现下面的警告:

 D:CCStudio_v3.1MyProjectsEXRAM ts.lib: warning: 
               linking incompatible formats: file compiled without -mf
>> D:CCStudio_v3.1MyProjectsEXRAM ts.lib: warning: 
               linking incompatible formats: file compiled without -mf

使用特权

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

本版积分规则

11

主题

36

帖子

0

粉丝