DSP5509A bootload与二次引导详解

1、GPIO配置

​ 要使用bootloader首先需要配置GPIO电平来设置boot方式,我手上的两块板子分别使用的是I2C EEPROM与EMIF
1740228-20190722160458138-541122120.png

2、EMIF和I2C boot简单分析

2.1 EMIF boot方式

​ 并行EMIF模式开始读取位于CE1空间的word地址200000h处的引导表。
​ 在此引导模式下,IO4将在启动过程的开始时降低。在启动表中执行可编程延迟特性时,IO4会升高。当延迟完成时,IO4将再次降低。在引导加载结束时,IO4会升高,DSP从入口点地址开始执行。IO4对于内存来说不是必需的,但是如果其他源正在为EMIF生成数据,那么它可以用作握手信号。
下图是TI对于此方式的解释
1740228-20190722160523837-875990255.png
1740228-20190722160531937-1155011127.png

2.2 I2C EEPROM boot方式

​ 内存设备符合飞利浦I2C总线规范v2.1,从地址要为50h。
​ 内存设备使用两个字节(最多64K字节)来进行内部寻址。(经我查阅资料以及尝试后确定5509A的bootloader只能搬运16Kb容量
​ 引导加载程序在随机读取操作期间将GPIO4设置为低,以此标志i2c启动模式的开始。然后在剩余的读取操作期间将GPIO4设置为高。在引导过程结束时,I2c模块仍然启用(但没有总线活动),直到用户的应用程序关闭该模块。
1740228-20190722161813155-962313036.png
1740228-20190722160555848-813457578.png

3、引导表(boot table)

3.1 了解引导表

1740228-20190722160613198-87282243.png
​ 程序入口地址是引导表加载结束后,用户程序开始执行的地址;寄存器配置数目决定了后面有多少个寄存器需要配置;延时标志为0xFFFF时,延时才被执行,延时长度决定了在寄存器配置后多少个CPU周期才进行下一个动作;段长度、段起始地址和数据则为用户程序中定义的各个段的内容,并且可以重复添加,最后一0x00000000作为引导表的结束标志。
1740228-20190722160624405-1759819688.png

3.2 创建引导表

​ 怎么创建引导表呢,用ti提供的hex55.exe工具(ccs里面有)来创建,将ccs最终编译的.out文件、hex55.exe以及.cmd文件放在同一目录下,通过DOS命令调用hex55.exe即可完成.out到hex格式的引导表文件的转化。
1740228-20190722160641523-1491877050.png
DOS命令如何写?
.cmd文件的实例:
​ -boot; 说明创建boot文件格式
​ -5510:2; 生成55xxboot文件格式
​ -serial8; 使用用串行加载方式(8位)
​ -a; ASCII格式
​ -reg_config 0x1c00,0x02b7; 在0x1c00寄存器写0x02b7
​ -delay 0x100; 延迟100CPU时钟周期
​ -o Test.hex; 输出.hex文件
​ -Test.out; 输入的.out文件

4、二次引导的实现

未完待续

参考资料:
Using the TMS320VC5503/C5506/C5507/C5509/C5509A Bootloader
TMS320C55x Assembly Language Tools User’s Guide
Developing a CCStudio 2.0 DSP/BIOS Application for FLASH Booting on the TMS320C5402 DSK

转载于:https://www.cnblogs.com/princepeng/p/11226482.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值