当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]TMS320VC5509的二次引导加载方法

引 言
    在嵌入式系统中,微处理器的运行程序通常保存在其内部或外部非易失性存储器(如EPROM、EEPROM或Flash)中。对中低速的微处理器来说,系统运行时程序可直接从非易失性存储器读取并解释执行;对高速微处理器来说,非易失性存储器的读取速度较低,不能满足系统运行时程序代码直接读取的要求,需采用引导加载(Boot-load)方式将程序代码从低速非易失性存储器中加载到高速的存储器(如SRAM或DRAM)中,系统运行时直接从高速存储器中读取程序代码,实现系统的高速运行。因此引导加载是高速微处理器系统的关键技术之一。


1 DSP上电加载分析
    TMS320VC5509(简称“5509”)是TI公司的一款高性能、低功耗的定点数字信号处理芯片。5509片内具有128K字高速静态RAM,内部只读ROM中固化了引导加载程序(Bootloader)。5509支持多种引导加载方式,上电复位之后,片内引导程序根据不同的加载方式完成加载。5509引导表格式如图1所示。

    从引导表的格式可以看出,引导加载程序首先读入双字程序入口地址,然后读入需要修改的寄存器数,接着是寄存器地址以及赋值,再读入段字节数、段起始地址以及段内容,引导表以读入双字的O值为结束,读完引导表后跳转到加载程序入口执行。不论以何种方式加载,只是读入的方式不同,引导表的格式不变。
    下面分别针对固化引导程序中的并行加载方式(16位)以及串行加载方式(16位SPI接口EEPROM),来分析DSP上电加载可能遇到的问题。
    对16位并行加载方式,默认从片外扩展地址0x200000(5509对应片选引脚输出为CEl)开始读入引导表,由于TQFP封装的5509内部24根地址线只引出了14根,因此并行加载方式只能寻址外部214=16K字存储空间,对超过16K字长的引导表,引导程序无法加载。
    对16位SPI接口的EEPROM串行加载方式,5509默认利用其同步串口0(McBSP0)来模拟SPI接口,引导程序固定收发时钟为DSP时钟频率的244分频。由于引导加载过程中,5509时钟频率等于外部晶振频率,因此对于24MHz时钟频率,加载频率约为100kHz,对于一段仅10K字长的引导程序,完成加载需要244×lO×103×16/24×106≈1.63s;即使工作在DSP最高主频144 MHz,完成加载也需要约244×10×103×16/144×105≈27l ms。这对要求上电后迅速运行的系统来说,系统启动时间过长。
    针对以上两种加载方式存在的问题,提出了利用二次引导加载方式来解决的办法。
    二次引导加载是采用引导加载的原理,在上电复位时,DSP内部固化的引导程序将一个自编的引导程序(即二次加载程序,其编写格式按照DSP内部固化引导程序的格式完成)加载到片内,然后通过二次引导加载程序将最终需要执行的程序加载到DSP中,从而实现更加灵活的程序加载。

2 并行方式下的二次加载设计
   
针对16位并行加载方式中存在的加载程序容量有限的问题,并行二次加载方案中利用DSP的GPIO口来扩展地址线,解决大于16K字程序的加载问题。这里使用两片铁电存储器FM18L08(32K×8位)作为32K字外扩程序存储器,55509地址线A[l3:1]与铁电存储器地址线A[12:0]相连,扩展5509的通用I/O口GPIO[7:6],用作高位地址线与铁电存储器地址线A[14:1 3]相连。在二次引导加载程序中,利用软件控制GPIO[7:6]输出高低电平,来达到控制高位地址线的目的,电路如图2所示。GPIO[7:6]电平的不同,相当于将32K字存储器空间划分为4页8K字空间,每当程序内容超过一页时,设置GPIO[7:6],实现软件翻页,读入下一页内容。

    在程序加载过程中,由于并行二次引导加载程序对引导表的读入方式与固化引导程序相同(不同的地方,只是在于如何寻址大于16K字程序地址),因此省略了流程图中具体读引导表的步骤。
    在二次加载程序中,加载开始之后,首先设置GPIO[7:6]为00h,读入第1页数据。如果程序在计数到8K之后仍未读完,则对GPIO[7:6]修改翻页,进行下一个8K的读入。如此,直到程序全部读完,跳转到程序入口执行为止。
    并行二次加载程序流程如图3所示。

3 串行方式下的二次加载设计
   
针对串行加载存在的加载速度低的问题,采用二次加载方案,自行设定同步串口时钟分频倍数,以较快的速度完成程序的加载。加载的速度,就只受到外部SPI接口的EERPOM速度限制。通用SPI接口EEPROM(如Atmel公司的AT25256)速度一般均可达到1Mbps以上。下面以外接12MHz晶振为例,DSP内部2倍频之后,同步串口0时钟按照12分频,即加载频率设置为2MHz,如此,加载速度将是固化引导程序的20倍。串行加载电路如图4所示。
    串行二次加载程序中,初始化部分对DSP及其同步串口O相应控制器进行设置,使SPI接口时钟工作在2MHz。然后采用与DSP固化引导程序相同的方式,利用GPIO4以及同步串口O模拟SPI接口对EEPROM进行顺序读入。读完之后,跳转到程序入口执行。
    程序流程如图5所示。

4 结论
   
二次加载方法克服了5509固化引导加载程序的弊端,可以根据不同的条件,实现比较灵活的加载方式。二次引导加载程序采用汇编语言编写,代码简单短小。经实际验证,以上两种二次引导加载方式均能成功加载。

    以上介绍的二次加载方法不仅可用在5509DSP中,同样也可以利用在其他类似的高速微处理器系统引导加载方案中,实现灵活的程序加载。对高速DSP采集系统的设计应用有比较好的实际借鉴价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:主要介绍了应用DSP的电能质量检测系统的硬件电路及软件开发工具,对采集来的某电铁电流信号进行了电能质量检测,并开展了实际实验尝试。实验结果显示,实际信号含有大量谐波,但通过应用DSP的电能质量检测系统成功检测到了它...

关键字: 电能质量检测 Matlab仿真 DSP

随着生活水平的提高,大家都想从生活压力中释放出来,越来越多的人向往户外运动、露营等,在大自然的拥抱中释放压力,解放自我,从而成为户外旅行火热的原因之一。因此,很多音箱厂商都开始推出针对户外的户外蓝牙音箱。但是市面上的蓝牙...

关键字: PD快充 I2S DSP IC

GPIO全称General Purpose Input Output即通用输入/输出,其实GPIO的本质就是芯片的一个引脚,通常在ARM中所有的I/O都是通用的。不过由于每个开发板上都会设计不同的外围电路,这就造成GPI...

关键字: GPIO 芯片

摘要:数字信号处理器(DSP,digitalSignalproceSSor)是专门用于某些数字信号处理任务的微处理器,一般由集成电路芯片构成。当前,水声领域中声呐探测设备正逐渐向大运算量、强实时性及小型化等方向发展,对高...

关键字: 水声信号处理 DSP 声呐

DSP开发板,就是围绕DSP的功能进行研发,推出用于DSP芯片开发的线路板,并提供原理图和源代码给客户。DSP尤以TI公司的DSP市场占有率最大。

关键字: DSP 开发板

在这篇文章中,小编将为大家带来无线模块的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 无线模块 自动化 DSP

当你在大疆无人机上拍照,跟踪或者自主飞行时,背后有一堆高性能处理器在为这些应用加速,其中就有DSP(Digital Signal Processor)。DSP的软硬件解决方案为图像,机器学习和飞行控制业务提供高性能计算平...

关键字: 嵌入式 DSP 大疆

(全球TMT2022年5月26日讯)Yahoo和全球领先的独立程序化户外 (DOOH) 广告技术公司Hivestack巢仕达宣布建立全球战略合作伙伴关系,致力于连接双方行业领先的技术,并为全球范围内的优质程序...

关键字: STACK BSP DSP MT

华为开源云原生AI卫星应用方案亮相KubeCon EU 2022 瓦伦西亚2022年5月20日 /美通社/ -- 5月18日,在云原生领域备受瞩目的会议——KubeCon和CloudNativeCon欧洲峰会主论坛中,...

关键字: DSP 华为 卫星 开源

(全球TMT2022年5月16日讯)日前,国际权威研究机构Gartner发布《市场份额分析:2021年全球软件行业市场规模报告》,报告显示浪潮云海服务器虚拟化软件InCloud Sphere(以下简称InCloud S...

关键字: DSP 虚拟化 软件 AI

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭