
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多核dsp的bootloader程序的实现芯片的bootloader程序用于实现用户程序上电自举,它有多种工作方式。上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在dsp核内的高速运行。多核dsp是指由多个自立的dsp子核集成的dsp芯片,且全部dsp子核分享一套片外。因为每个dsp子核内部都有其自身自立的掩模bootloader程序,当dsp芯片上电或复位时,全部dsp子核都将自行启动自身自立的bootloader程序,实现用户程序的上电自举。所以,多核dsp的bootloader程序的实现办法与单核dsp的bootloader
2、程序的实现办法有较大的差异。为此,本文立足于实践,以双核dsptms320vc5421的16位并行eprom的bootloader程序的工作方式为例,具体阐述了多核dsp的bootloader程序的实现办法。1 bootloader程序简介1.1 bootloader程序的四种工作方式普通的dsp都采纳频繁的bootloader程序工作方式来实现用户程序的上电自举:·处理器通信口(主端口)hpi方式通过dsp芯片与pc机或dsp芯片与其它dsp芯片之间的主机通信端口实现上电自举;·8位或16位并行eprom方式通过dsp内核的dma通道实现上电自举;·8位或16位
3、并行i/o方式通过dsp芯片的片外并行i/o接口实现上电自举;·8位或16位串行口方式通过dsp芯片的串行端口实现上电自举。在以上四种工作方式中,最常用的是16位并行eprom方式。即在dsp芯片上电或复位时,通过dma通道将存储在核外eprom中的程序以16位形式存储到核内的程序空间中。1.2 16位并行eprom方式的boot表各种方式的bootloader程序都有其固定格式的boot表,用来实现用户程序的上电自举。16位并行eprom方式的boot表如表1所示。表中的第1表项存放bootloader程序工作方式控制字,用于dsp芯片上电或复位时确认该boot表是否为16位并行e
4、prom工作方式的boot表。该表项内容为10aah,表示dsp内核认为该boot表是16位并行eprom工作方式的bootloader程序的boot表;否则dsp内核认为该boot表不是16位并行eprom的方式的boot表;第2表项存放dsp特别寄存器swwsr在上电或复位时被给予的初始化数值;第3表项存放dsp特别寄存器bscr在上电或复位时被给予的初始化数值;第4表项存放用户程序将要被存放在dsp核内程序空间的页地址;第5表项存放用户程序将要被存放到dsp核内程序空间的页内偏移地址;从第6表项开头依次存放用户程序第m段代码的长度n。用户程序第m段代码将要被存放到dsp核内程序空间的页地
5、址,用户程序第m段代码将要被存放到dsp核内程序空间的页内偏移地址,用户程序第m段代码的第1个字,第2个字,第n个字;boot表的最后表项存放boot表结束字0000h,表示boot表到此结束。因此dsp内核要实现bootloader程序,在上电复位后首先要申请到片外数据、地址总线的控制权,然后再按照boot表完成用户程序上电自举过程。1.3 16位并行eprom工作方式boot表的生成全部bootloader程序所需的boot表的数据结构都是通过执行包含-v548参数的链接指令和hex500转换指令的程序形成的。在链接过程中确定用户程序和数据的存放地址,在hex500转换过程中定义bootl
6、oader程序的工作方式和用户程序执行的入口地址等。为了生成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) -mem
7、width: 确定引导方式的位数;(7) -o *.hex : 输出的hex文件的名称。例如:hex500 ti.out /*按照ti.out文件生成boot表*/-e 0x4000 /*用户程序的入口点为0x4000*/-a /*以ascii形式输出hex文件*/-boot /*装载用户的程序ti.out*/-bootorg parallel/*生成并行eprom方式的boot表*/-memwidth 16 /*生成16位的boot表*/-o ti.hex /*生成的hex文件名为ti.hex*/执行完该hex500.exe指令后,系统会创建一个文件名为ti.hex的ascii文件,然后用户
8、按照ti.hex文件内容对eprom举行编程就能产生上述的16位并行eprom工作方式的boot表。2 多核dsp的bootloader程序的实现目前ti公司已经不再局限于生产单核dsp。为了提高用户程序运行的效率,ti公司又推出了2核、4核等多核dsp。在实现多核dsp上电自举时,每一个子核都需要申请片外总线的控制权。对于单核dsp而言,惟独一个dsp内核,对应一个bootloader程序,dsp核可以永久拥有片外总线的控制权。但对于多核dsp而言,因为惟独一套片外总线,所以片外总线的控制权不允许也不行能永久被其中的某一个dsp子核所拥有。因此,多核dsp需要片外总线仲裁机制,以避开片外总线
9、矛盾。下面以双核dsptms320vc5421的16位并行eprom方式的bootloader程序实现过程为例,具体阐述多核dsp的bootloader程序的实现。2.1 tms320vc5421结构简介tms320vc5421 16位定点双核dsp,它集中了早期tms320c54x系列dsp的优点,并提供了许多新的功能。其内部结构与tms320c54x系列的其它款式dsp有很大的不同,其容易结构框图1所示。因为每个dsp子核的工作频率是100mhz,所以它的工作速率可达到200,且它的每一个dsp子核都具备单核dsp(如tms320vc5402)的全部特性。2.2 tms320vc5421的
10、16位并行eprom工作方式的bootloader程序的挑选tms320vc5421的两个dsp子核在dsp芯片上电或复位时,能否启动各自的bootloader程序以完成上电自举功能,是由每个子核自身的xio和gpio0/romen两个管脚打算的。在dsp芯片上电或复位时,每个dsp子核自动检测自身的xio和gpio0/romen两个管脚,假如对应的xio和gpio0/romen两个管脚都为高电平,则启动自身的bootloader程序完成用户程序的上电自举。每个dsp子核启动bootloader程序后,采纳哪一种bootloader程序的工作方式是由各自的gpio1管脚的状态和各自以dma方式
11、从核外数据空间0000h地址单元读入的数据打算的:检测gpio1管脚,假如gpio1管脚为高电平,则采纳串行口eeprom的bootloader工作方式,否则采纳并行eprom的bootloader工作方式。若dsp子核的dma通道读入核外数据空间0000h单元中的数据为10aah,则采纳16位并行eprom的bootloader工作方式;若读入的数据为xx08h或xxaah,则采纳8位并行eprom的bootloader工作方式。否则将重新推断gpio1管脚的电平,进入死循环。2.3 tms320vc5421的bootloader程序片外总线矛盾的解决dsp核的bootloader程序总是在
12、dsp核上电或复位时启动,且一启动bootloader程序,对应的dsp核就要申请核外的总线控制权。因此为了避开多核dsp的各个dsp子核启动bootloader程序时引起的片外总线矛盾,可通过控制每个dsp子核的复位过程,使每个dsp子核在不同的时光内启动自身的bootloader程序来解决片外总线矛盾的问题。为了实现两个dsp子核复位过程的分别,应采纳2所示的dsp子核复位过程控制办法。因为tms320vc5421中a核拥有倍频的锁相环,所以首先复位a核,启动a核的bootloader程序,实现a核的用户程序上电自举。然后再由a核的用户程序控制b核的复位过程,启动b核的bootloader
13、程序,实现b核的用户程序上电自举。在a核的bootloader程序执行完后,a核就会执行自身的用户程序代码。a核的用户程序代码释放片外总线的控制权,并且控制b核的复位管脚,促使b核启动自身的bootloader程序。假如此时a核中的用户代码又申请片外总线控制权或正在用法片外总线,就会造成片外总线矛盾。解决此矛盾的方法有如下两个:·粗略估量b核的bootloader程序执行时光,在a核的有效程序代码前加一个延迟程序。·在a核的有效程序代码前加入一个死循环程序,当b核bootloader程序执行完后,b核通知a核,a核就跳出这个死循环程序,开头执行自己的有效代码。2.4 tms
14、320vc5421的16位并行eprom工作方式的bootloader程序的编程实现首先设计一个容易的,3所示。在dsp的a_xf和b_xf两个管脚分离衔接一个发光,a核以2hz的频率点亮,b核以10hz的频率点亮发光二极管。将128k的flash(sst39vf400a)分成两页,每页为64k。flash的页的挑选由tms320vc5421的a_bdxo管脚控制。当a_bdx0为低电平,即flash的a16地址线为低电平常,选中flash的第一页,由flash的a0a15地址线挑选页内地址,用于存放a核的16位并行eprom工作方式的boot表。当a_bdx0为高电平,即flash的a16地
15、址线为高电平常,选中flash的其次页,由flash的a0a15地址线挑选页内地址,用于存放b核的16位并行eprom工作方式的boot表。cpu_a和cpu_b的程序流程图分离4和图5所示。(1)片外总线矛盾的解决估算b核执行bootloader程序所需的时光后,在a核的用户有效程序之前,加一段延迟程序。延迟的时光计算如下:tms320vc5421dsp的dma通道从片外数据空间读取一个字到片内数据空间,需要7个命令周期时光。统计用户程序大小,将对应boot表中的全部段的大小相加:n1+n2+.=n。延迟的时光为n×7=7n个命令周期。由上面所述的办法可知,只需在开头执行a核的有效
16、程序之前加一段延迟7n个命令周期的代码即可。(2)生成boot表对cpu_a来说,以a核程序流程图建立一个项目ati.msk。产生ati.out文件后,进入该名目的dos环境,键入:hex500 ati.out-a-e 0x4000h-boot-bootorg parallel-memwidth 16-romwidth 16-o ati.hex生成a核的16位并行eprom工作方式的boot表。对cpu_b来说,同样以b核程序流程图建立一个项目bti.msk。产生bti.out文件后,进入该名目的dos环境,键入:hex500 bti.out-a -e 0x4000h-boot-bootorg parallel-memwidth 16-romwidth 16-o bti.hex生成b核的16位并行eprom工作方式的boot表。在实现双核dsp的上电自举后,a核和b核的用户程序将会被存放在核内程序空间的不同页面上。如从dma的角度观察:a核的用户程序将被存放在a核的程序空间的第0页上;b核的用户程序将被存放在b核的程序空间的第2页上。因此a核的boot表不需要修改,而b核的boot表中的全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地埂黄花施工方案
- 吉林大型温室工程施工方案
- 疫情期间保障工程施工方案
- 云南石雕八角亭施工方案
- 甘肃移动式u型渠施工方案
- 都匀换热器机组施工方案
- 鹤壁硅pu篮球场施工方案
- 同花顺:2024年年度财务报告
- 2025年铜及铜合金材合作协议书
- 通风管道改造施工方案
- 2025年济源职业技术学院单招职业技能测试题库学生专用
- 《金融市场分析方法》课件
- 卵巢癌的筛查:如何进行卵巢癌的早期筛查
- 2025年南网数字集团公开选聘高频重点模拟试卷提升(共500题附带答案详解)
- 5G基站建设的审批流程与标准
- 西门子S7-1200 PLC应用技术项目教程(第3版) 考试复习题
- 人工智能在招聘行业的应用
- 课件:《科学社会主义概论(第二版)》第一章
- 虚拟现实环境中视觉体验优化
- 班组长安全管理培训课件
- 2025年新疆生产建设兵团兴新职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
评论
0/150
提交评论