TMS320C6000系列二次Bootloader的设计与实现_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、tms320c6000系列二次bootloader的设计与实现随着(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,用法芯片本身自带的boot-loader通过flash存储器来引导dsp程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要越发灵便的引导方式。系统上电后,由引导程序将dsp的应用程序从该存储器引导到dsp应用板上的高速存储器(如内部sram、sdram等)中。因为flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。因为flash存储器的存取

2、速度较慢,写入flash存储器的程序将在系统上电时被dsp装载到迅速的存储器中运行,这个过程称为boot loader。不同的dsp有不同的引导方式。以ti公司tms320c6000系列芯片为例,自举方式有3种:无自举(no boot),cpu挺直开头执行地址0处的命令;主机自举(host boot),系统复位后主机通过cpu的hpi(主程序设计接口)初始化dsp的存储空间;rom自举(rom boot),dma控制器从cel空间复制固定长度程序的地址0处,然后从地址0处开头执行。对于620x670x dma,复制64 kb数据从cel到地址0;而对于621x671x edma,复制1 kb数

3、据从cel地址开头到地址0。关于ti公司的c6000芯片二次bootloader在许多文献都介绍过,包括二次bootloader的pll、emif的设置和搬移表的设置和flash存储器的烧写过程,但是对于有中断向量表的二次bootloader实现的文献很少。本文以ti公司高性能dsp的代表作tms320c6000系列芯片为例,介绍了一种带中断向量表的二次bootloader的新途径,从而为tms320c6000系列dsp的开发提供了一种新的思路。该办法在实际中得到详细应用,系统运行稳定牢靠。1 二次bootload的过程tms320c6713是ti公司推出的tms320c67xx系列浮点dsp

4、中最新的一种芯片。tms320c6713每周期可以执行8条32位命令;支持3264位数据;具有最高225 mhz的运行速度和1800 mips(百万次运算每秒)或1350 mflops(百万次浮点运算每秒)的处理能力;同时是有强大的外设支持能力;emip(外部存储器接口)可以很便利地与sdram、sbsram、flash存储器、sram等同步和异步存储器相连,16位ehpi接口可以与各种处理器接口;另外,还有优化的多通道缓存串口和多通道音频串口,这些外部接口使设计人员可以很简单实现自己的应用系统。在挑选romboot方式时,reset由低变高后,c6713的cpu内核处于复位状态,而c6713

5、的其他部分则开头工作,此时emif的cel空间按照rom boot的方式自动地配置为81632位异步存储器接口,并且cel空间读写时序自动地配置为最大,随后将cel空间的前1 kb复制到0x0000 0000地址处。通过这1 kb的数据实现对其他程序的引导。对于中断向量表设在0x0000 00000x0000 0400处的程序来说,1 kb数据中处包含emif设置代码和搬移程序外,必定也包含中断向量表。本文重点讲述带中断向量表的bootloader的过程,中断向量表起始地址为0x00000000。假如程序长度小于1 kb,那么就不需要二次bootloader,但是往往程序长度都会大于1 kb,

6、所以二次bootloader是必定的过程。二次bootloader的实现需要引入emif设置和搬移的程序,即编写boot_c671x_2.s62、c6713_emif.s62,lnk2.cmd和boot.cmd3个文件。本文以实现多通道缓冲串口的程序举行解释,实现二次bootload的过程框图1所示。首先调入调试好的用户程序工程文件mebsp_test.pjt工程作为例程,然后在此工程文件中引入3个文件。程序编写好后,要引入3个很重要的文件;emif的值定义文件(c6713_emif.s62);关于emif的设置和数据搬移的程序(boot_c67lx_2.s62);cmd配置文件(lnk2.c

7、md)。同时,其本来的mcbsp.cmd文件要去掉。图2做了一个对照。图2(a)为原程序,图2(b)为生成要烧写的数据的程序,图2(b)中加入了3个文件,原有的mcbsp.cmd去掉了。其中boot_c67lx_2.s62是通用的,c6713_emif.s62要按照详细实际的芯片配置emif的参数。其中boot_c671x_2.s62包含了.boot_load的函数,这个函数包含几个过程,3所示。c6713_emif.s62文件包括emif的几个参数配置。ink2.cmd文件位coff的配置。第二,就是把生成的*.out文件首先用法ccs开发环境自带的工具hex6x.exe把工程生成的*.ou

8、t文件转化成hex格式,在dos环境下命令为>hex6x.exeboot.cmd。最后按照flash存储器芯片的要求把hex文件烧写到flash存储器中指定的地址即可。本例采纳的am29lv800bb-70ecflash存储器芯片,采纳3.3 v供电,彻低兼容jedec标准,并支持在系统编程,用户只需向其内部的指令寄存器写入指令序列即可实现部分擦除、所有擦除、数据写人等功能;同时可提供硬件和软件办法来检查flash存储器的操作执行状况。首先需要对芯片举行擦除所有变为0xffff,然后再举行烧写。因为flash存储器是以16位举行拜访的,所以对flash存储器而言其物理地址以16位为单位举

9、行编址,而程序中用法的规律地址是以字节为单位举行编址的,二者之间的关系如下:规律地址=物理地址2 带有中断向量表的二次bootloader的实现第1节介绍了普通的二次bootload过程,但当需要boot带中断向量表的程序时,需要认真考虑3个重要文件的编程,否则将会碰到意想不到的后果。2.1 配置文件ink2.cmdink2.cmd有了细微差别,此时有中断向量表,所以在分配时要考虑vectors的分配空间。在配置文件中差异主要在memory中,section的部分如下:sections memory的差别详细如下:a) 没有考虑中断向量表配置的部分程序:b) 考虑中断向量表配置的部分程序:.v

10、ectors为中断向量表,其有0x200的长度的数据,必需放在0x90000000的地址处,.boot_load紧接着放置。2.2 中断向量表文件vec.asm还有一个很重要的一点是图2中vec.asm文件的变幻。在调试程序时,中断向量表开头会挺直跳到c_int00处,但是待烧写的前1 kb数据,首先要举行emif设置和搬移过程,所以其指向要发生变幻。vecter.asm部分程序如下:a) 原程序的vecter.asm部分程序:b) 产生bootload数据的程序的vecter.asm部分程序:以上程序中,程序a)开头是指向c_int00,程序b)为指向_boot,即.boot_load()的

11、人口。这是由于在1 kb的程序复制完成后,程序即开头执行。首先应执行二次boot程序,即入口点_boot,完成二次boot后,再执行正常的初始化环境代码,进而跳转到用户main函数。此时生成的.out的文件,通过hex6x.exe转化成可烧写的数据。2.3 转换数据的配置文件boot.cmd通过hex6x.exe可以把boot.out文件转化成boot.hex形式,便利烧写到flash存储器中。此时boot.cmd的也要做相应的变幻,把中断向量表的程序同.boot_load程序,程序段,数据段一样转化过来。boot.cmd配置程序如下:a) 没有考虑中断向量表的boot.cmd配置:b) 考虑

12、中断向量表boot.cmd配置:以上程序中len可以按照实际程序的长度举行修改,假如用hex6x.exe boot.cmd举行转化,程序长度过短时,会产生警告提醒。此时可以查看map文件,看看程序和数据占用的空间来定len的大小,只要len大于实际的程序长度即可。romwidth按照所用的flash存储器的位数来定,假如是8位的就写8,假如是16位的就换成16。以上程序中,程序b)与程序a)不同的是加入了.vectors,使得生成的boot.hex文件中0x0000 0000地址就为vectors的程序。此时生成的*.hex的文件可以烧写到flash中。3 结束语本文以ti公司高性能dsp tms320c6000系列芯片为例,介绍了从flash存储器举行引导,带中断向量表的二次bootloader的新途径,其中对bootloader的程序需要改写的部分具体讲述了详细的差别,从而为tms320c6000系列dsp的开发提供了一种新的思路。该办法容易可行,在ti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论