- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于dsp的tms320vc5402的bootloader技术(汇编语言)
基于TMS320VC5402的BOOTLOADER技术
一、实验目的
1.掌握Bootloader 的概念与基本原理;
2.掌握Bootloader 的具体工程实现;
3.能够熟练在CCS 环境下编程与调试,会用汇编指令和标准C 语言编写程序;
4.了解TMS320VC5402 片上外设及其存储器结构;
5.会使用通用 EEPROM 编程器烧制EERPOM 芯片;
二、实验原理
1. 为什么需要 Bootloader
在CCS 开发环境下,PC 机通过不同类型的JTAG 电缆与用户目标系统中的DSP 通信,帮助用户完成调试工作。当用户在CCS 环境下完成开发任务,编写完成用户软件之后,需要脱离依赖PC 机的CCS 环境,并要求目标系统上电后可自行启动并执行用户软件代码,这就需要用到Bootloader 技术。同时Bootloader 也指由TI 在生产芯片时预先烧制在TMS320VC5402 片内ROM 中,完成该功能的一段代码名称。
2. Bootloader 的基本原理与模式
本实验主要介绍 TMS320VC5402 中的Bootloader 技术(以下简称C5402),但仍可应用于更高版本的DSP 芯片中。因为C5402 是RAM 型器件,掉电后不能保持任何用户信息,所以需要用户把执行代码存放在外部的无挥发存储器内,在系统上电时,通过Bootloader 将存储在外部媒介中的代码搬移到C5402 高速的片内存储器或系统中的扩展存储器内,搬移成功后自动去执行代码,完成自启动。
Bootloader 技术提供很多种不同的启动模式,包括并行8bit/16bit 的总线型启动、串口型启动和HPI 口启动等模式,兼容多种不同系统需求。当C5402 芯片复位时,如果其处于微计算机模式(MP/MC 引脚为逻辑0),那么复位后在C5402 程序空间地址为0F800h处,可以通过CCS 看到TI 预先烧制在其片内ROM 的Bootloader 这段代码。C5402 复位后,程序指针指向0FF80h 处的中断向量表,执行指令“BD 0F800h”,即跳至Bootloader入口,开始执行Bootloader 代码。在搬移用户代码之前,Bootloader 会设置C5402 的状态寄存器,包括将INTM 位置1,禁止全局中断;OVLY 置1,将片内DARAM 映射到程序/数据空间;和设置整个程序/数据空间均插入7 个等待状态,以适应可能慢速的EEPROM。为了兼容不同系统需求,C5402 提供很多种启动模式,包括:
a. HPI 启动模式:由外部处理器(即主机)将执行代码通过C5402 的HPI 口搬移到C5402 片内RAM。当主机搬移完所有程序代码,还要将程序入口地址写入C5402数据空间007Fh 内。这样,C5402 一旦检测到007Fh 处不再为0 值,即判断为代码转移完毕,并跳转到007Fh 里存放的地址去执行,从而完成启动。
b. 8bit/16bit 的并行启动模式:在这种模式下,C5402 通过其数据和地址总线从数据空间读取启动表(Boot Table)。启动表内容包括:需要搬移的代码段,每个段的目的地址,程序入口地址和其他配置信息。启动表具体内容将在下文介绍。
c. 8bit/16bit 的标准串口启动模式:在这种模式下,C5402 通过工作在标准模式的多通道缓冲串口(McBSP)接收启动表,并根据启动表中的信息装载代码。McBSP0 支持8bit 模式,McBSP1 支持16bit 模式。
d. 8bit 串行EEPROM 启动模式:在这种模式下,C5402 通过工作在SPI 模式的McBSP1接收来自外部串行的EEPROM 中的启动表,并根据启动表中的信息装载代码。
e. 8bit/16bit 的I/O 启动模式:在这种模式下,C5402 使用XF 和BIO 引脚,与外部设备达成异步握手协议,从地址0h 处的I/O 端口读取启动表。
一旦 C5402 复位,Bootloader 会做循环检测操作,以决定执行哪种启动模式。Bootloader首先检测HPI 启动模式条件是否成立,如果条件不满足,则继续检测下一种,直到找到一种满足条件的启动模式。它检测的顺序如下:
a. HPI 启动模式第一次检测:通过检测INT2 引脚是否有中断发生来判断是否进入HPI启动模式。
b. 串行 EEPROM 模式。
c. 并行模式。
d. 通过 McBSP1 的标准(8bit)串口启动。
e. 通过 McBSP0 的标准(16bit)串口启动。
f. I/O 启动模式。
g. HPI 启动模式第二次检测:通过检测数据空间007Fh 是否为非0 值来决定程序入口点。
需要注意的是,当 Bootloader 检测完所有可能的启动模式后,而没有发
文档评论(0)