没有合适的资源?快使用搜索试试~ 我知道了~
单片机与DSP中的TMS320C6000系列带中断向量表的二次Bootloader的设计与实现
5 下载量 91 浏览量
2020-12-08
14:57:20
上传
评论 1
收藏 242KB PDF 举报
温馨提示
试读
5页
引 言 随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。 系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。由于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。由于Flash存储器的存取速度较慢,写入Flash存储器的程序将在
资源详情
资源评论
资源推荐
单片机与单片机与DSP中的中的TMS320C6000系列带中断向量表的二次系列带中断向量表的二次
Bootloader的设计与实现的设计与实现
引 言 随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-
loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的
范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。 系统
上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM
等)中。由于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。由于
Flash存储器的存取速度较慢,写入Flash存储器的程序将在
引引 言言
随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器
来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程
序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。
系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。由
于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。由于Flash存储器的存取速度
较慢,写入Flash存储器的程序将在系统上电时被DSP装载到快速的存储器中运行,这个过程称为Boot loader。不同的DSP有
不同的引导方式。以TI公司TMS320C6000系列芯片为例,自举方式有3种:无自举(No Boot),CPU直接开始执行地址0处的
指令;主机自举(Host Boot),系统复位后主机通过CPU的HPI(主程序设计接口)初始化DSP的存储空间;ROM自举(ROM
Boot),DMA控制器从CEl空间复制固定长度程序的地址0处,然后从地址0处开始执行。对于620x/670x DMA,复制64 kB数
据从CEl到地址0;而对于621x/671x EDMA,复制1 kB数据从CEl地址开始到地址0。
关于TI公司的C6000芯片二次Bootloader在许多文献都介绍过,包括二次Bootloader的PLL、EMIF的设置和搬移表的设置和
Flash存储器的烧写过程,但是对于有中断向量表的二次Bootloader实现的文献很少。本文以TI公司高性能DSP的代表作
TMS320C6000系列芯片为例,介绍了一种带中断向量表的二次Bootloader的新途径,从而为TMS320C6000系列DSP的开发
提供了一种新的思路。该方法在实际中得到具体应用,系统运行稳定可靠。
1 二次二次Bootload的过程的过程
TMS320C6713是TI公司推出的TMS320C67xx系列浮点DSP中最新的一种芯片。TMS320C6713每周期可以执行8条32位指
令;支持32/64位数据;具有最高225 MHz的运行速度和1800 MIPs(百万次运算每秒)或1350 MFLOPS(百万次浮点运算每秒)
的处理能力;同时是有强大的外设支持能力;EMIP(外部存储器接口)可以很方便地与SDRAM、SBSRAM、Flash存储器、
SRAM等同步和异步存储器相连,16位EHPI接口可以与各种处理器接口;另外,还有优化的多通道缓存串口和多通道音频串
口,这些外部接口使设计人员可以很容易实现自己的应用系统。
在选择ROMBoot方式时,RESET由低变高后,C6713的CPU内核处于复位状态,而C6713的其他部分则开始工作,此时
EMIF的CEl空间根据ROM Boot的方式自动地配置为8/16/32位异步存储器接口,并且CEl空间读/写时序自动地配置为最
大,随后将CEl空间的前1 kB复制到0x0000 0000地址处。通过这1 kB的数据实现对其他程序的引导。对于中断向量表设在
0x0000 0000~0x0000 0400处的程序来说,1 kB数据中处包含EMIF设置代码和搬移程序外,必然也包含中断向量表。本文重
点叙述带中断向量表的Bootloader的过程,中断向量表起始地址为0x00000000。如果程序长度小于1 kB,那么就不需要二次
bootloader,但是往往程序长度都会大于1 kB,所以二次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.cmd)。同时,其原来的mcbsp.cmd文件要去掉。图2做了一个对比。图2(a)为原程
序,图2(b)为生成要烧写的数据的程序,图2(b)中加入了3个文件,原有的mcbsp.cmd去掉了。其中boot_c67lx_2.s62是通用
的,c6713_emif.s62要根据具体实际的芯片配置EMIF的参数。
weixin_38642369
- 粉丝: 4
- 资源: 949
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0