DSP的BootLoader程序的实现.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP的BootLoader程序的实现

多核DSP的BootLoader程序的实现 ?DSP芯片的BootLoader程序用于实现用户程序上电自举,它有多种工作方式。上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在DSP核内的高速运行。 ????多核DSP是指由多个独立的DSP子核集成的DSP芯片,且所有DSP子核共享一套片外总线。由于每个DSP子核内部都有其自身独立的掩模BootLoader程序,当DSP芯片上电或复位时所有DSP子核都将自行启动自身独立的BootLoader程序,实现用户程序的上电自举。所以,多核DSP的BootLoader程序的实现方法与单核DSP的BootLoader程序的实现方法有较大的差异。为此,本文立足于实践,以双核DSP-TMS320VC5421的16位并行EPROM的BootLoader程序的工作方式为例,详细阐述了多核DSP的BootLoader程序的实现方法。 BootLoader程序简介 BootLoader程序的四种工作方式 一般的DSP都采用常见的BootLoader程序工作方式来实现用户程序的上电自举: 处理器通信口(主端口)HPI方式--通过DSP芯片与PC机或DSP芯片与其它DSP芯片之间的主机通信端口实现上电自举; 8位或16位并行EPROM方式--通过DSP内核的DMA通道实现上电自举; 8位或16位并行I/O方式--通过DSP芯片的片外并行I/O接口实现上电自举; 8位或16位串行口方式--通过DSP芯片的串行端口实现上电自举。在以上四种工作方式中,最常用的是16位并行EPROM方式。即在DSP芯片上电或复位时,通过DMA通道将存储在核外EPROM中的程序以16位形式存储到核内的程序空间中。 位并行EPROM方式的Boot表 ?????? 各种方式的BootLoader程序都有其固定格式的Boot表,用来实现用户程序的上电自举。16位并行EPROM方式的Boot表如表1所示表项存放BootLoader程序工作方式控制字,用于DSP芯片上电或复位时确认该Boot表是否为16位并行EPROM工作方式的Boot表。该表项内容为10AAH,表示DSP内核认为该Boot表是16位并行EPROM工作方式的BootLoader程序的Boot表;否则DSP内核认为该Boot表不是16位并行EPROM的方式的Boot表;表项存放DSP特殊寄存器SWWSR在上电或复位时被赋予的初始化数值;表项存放DSP特殊寄存器BSCR在上电或复位时被赋予的初始化数值;表项存放用户程序将要被存放在DSP核内程序空间的页地址;表项存放用户程序将要被存放到DSP核内程序空间的页内偏移地址;表项开始依次存放用户程序第m段代码的长度N。用户程序第m段代码将要被存放到DSP核内程序空间的页地址,用户程序第m段代码将要被存放到DSP核内程序空间的页内偏移地址,用户程序第m段代码的第1个字,第2个字,……,第N个字;Boot表的最后表项存放Boot表结束字0000H,表示Boot表到此结束。因此DSP内核要实现BootLoader程序,在上电复位后首先要申请到片外数据、地址总线的控制权,然后再根据Boot表完成用户程序上电自举过程。 位并行EPROM方式Boot表的生成 ?????? 所有BootLoader程序所需的Boot表的数据结构都是通过执行包含-v548参数的链接命令和Hex500转换命令的程序形成的。在链接过程中确定用户程序和数据的存放地址,在Hex500转换过程中定义BootLoader程序的工作方式和用户程序执行的入口地址等。 ?????? 为了生成16位并行EPROM方式的Boot表首先,在链接程序时必须设置-v548选项;然后使用TI公司DSP开发工具自带的HEX500.EXE文件,根据用户的COFF格式的代码生成Boot表中的相应内容。 ?????? HEX500.EXE可执行文件一般使用以下几种参数 ?????? (1)*.out :用户的COFF格式的程序; ?????? (2)-e :确定用户程序的入口点; ?????? (3)-a :以ASCII形式,根据用户的.out文件输出对应的HEX文件; ?????? (4) -Boot实现用户程序的装载; ?????? (5) -bootorg :确定生成哪种形式的Boot表; ?????? (6) -memwidth:确定引导方式的位数; ?????? (7) -O *.hex:输出的HEX文件的名称。 ?????? 例如: ?????? hex500 ti.out /根据ti.out文件生成Boot表/ ?????? -e 0x4000 /用户程序的入口点为0x4000/ ?????? -a /以ASCII形式输出HE

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档