tms320vc5410dsp的dsp-bios扩展寻址的实现

tms320vc5410dsp的dsp-bios扩展寻址的实现

ID:22372641

大小:56.00 KB

页数:6页

时间:2018-10-28

tms320vc5410dsp的dsp-bios扩展寻址的实现_第1页
tms320vc5410dsp的dsp-bios扩展寻址的实现_第2页
tms320vc5410dsp的dsp-bios扩展寻址的实现_第3页
tms320vc5410dsp的dsp-bios扩展寻址的实现_第4页
tms320vc5410dsp的dsp-bios扩展寻址的实现_第5页
资源描述:

《tms320vc5410dsp的dsp-bios扩展寻址的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、TMS320VC5410DSP的DSP/BIOS扩展寻址的实现

2、第1内容显示中摘要:TMS320VC5410的程序空间通常被限制在64K地址空间内,当应用程序超出64K时,则需增加目标系统存储区和附加逻辑,实现对系统的扩展。介绍了如何配置及使用DSP/BIOS接口来实现扩展寻址功能,分析了API函数调用和中断触发过程,并以DSP并行自举引导方式实现程序的脱离仿真运行。关键词:DSP/BIOS扩展寻址API并行自举引导1DSP/BIOS接口DSP/BIOS接口提供了基本的运行服务,如应用程序实时分

3、析功能、时钟周期函数、I/O模块、优先级的任务调度等。DSP/BIOS接口提供支持汇编语言和C语言的API接口函数,这些API函数绝大部分都是用汇编语言实现的,因此汇编语言可以直接调用API,而C语言调用API则要通过DSP/BIOS的C封装器。应用程序通过调用API函数来使用DSP/BIOS接口,如软件中断、背景线程和中断服务程序等都可以调用DSP/BIOS的函数。当DSP/BIOS要调用用户的C语言函数时,则要通过函数链接器,如图1所示。500)this.style.ouseg(this)"

4、>2扩展程序空间TMS320VC5410的16位地址空间被划分为两块,低地址块定义为公共区(或未映射区),高地址块定义为映射区(或扩展区)。这两块的地址由目标系统的外部寄存器和存储区决定。值得注意的是,TMS320VC5410的数据区没有扩展存储区。用户可以在映射区上定义多个物理存储区,它们覆盖整个映射区,但彼此间不重叠。当使用存储区的扩展页时,内部16位地址空间被扩展为32位的地址进行寻址,高16位代表扩展页的数目,低16位代表局部的16位地址。如使用扩展程序映射存储器(XPC)存放扩展页码,

5、则XPC存放在数据空间地址为0x1E的位置,它的值要与.CMD链接文件中定义的扩展页码保持一致。图2所示的是一个扩展3页的程序区结构图。公共区的范围是0x0000-0x7FFF;映射区的范围是0x8000-0xFFFF;映射区为第一页,XPC要为0才能访问该区;映射地址空间存放两个扩展页,扩展程序映射寄存器限定了映射地址,使得每个扩展页的每个单元具有唯一的地址。当访问扩展页时,映射区将被覆盖。500)this.style.ouseg(this)">TMS320VC5410的DSP/BIOS不仅支

6、持64K程序页内的“近”访问模式,而且支持扩展程序的“远”访问模式,只需设置DSP/BIOS的属性即可实现扩展程序的“远”访问。要注意的是,汇编语言写的API只能在PAGE0页调用,而C语言写的API可以在任何页面调用。3中断当中断产生时,DSP的内部结构机制只能保存低16位页内的局部地址,而扩展寻址时程序地址需要23位,这就意味着调用和返回时将超出64K(16位地址)的范围,因此必须考虑怎样保存和恢复扩展地址。解决的方法是用中断服务程序(ISR)保存XPC的值,确保能正确计算中断向量,为此中断

7、向量表必须放在公共区或映射区的64K程序页面上。当DSP/BIOS在公共区上时,ISR可以放在任何位置;如果不在公共区上,则ISR必须放在PAGE0上。当OVLY=0时,为了能保证中断正确执行,必须在每一个页面上都要有中断向量表的拷贝。当OVLY=1时,只需在公共页面上(如0x7F80)作一份中断向量表的拷贝就可以了。4程序实例下面通过一个简单的例子介绍DSP/BIOS如何实现程序地址的扩展。本例中有三个软中断:时钟中断PRD_POST_SST(6-0)项中填入使第5位为1的值,如MP=1,填入

8、0x60。(4)指定“远”调用模式。在GlobalSettings属性页面的FunctionCallModel选项中选择far,使全局变量Callmodel设置为far。(5)在公共区中重新分配中断向量表。双击System中的MEM,右键打开VECT的属性页,在base项中填入新的基地址,如0x7F80。(6)配置扩展程序地址段。对于54XEVM评估板,已经有了两个扩展程序段EPROG0和EPROG1(如果没有的话,则需添加这两个段,选择InsertMEM,添加两个扩展程序段,重命名为EPROG

9、0和EPROG1)。EPROG0属性为base:0x8000,len:0x4000,勾去createaheapinthismemory选项,space:code;EPROG0与EPROG1的属性不同之处为base:0x18000。加入一个新的扩展程序段EPROG2,属性为base:0x28000,len:0x4000,space:code。(7)将目标代码链接到扩展程序段。pragma伪指令告诉编译器的预处理器如何处理函数,语法为#pragmaCODE_SECTION(Page1Func,“.F

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。