DSP Bootloader说明
- Bootloader
TI的DSP芯片在出厂时,在片内ROM中固化有引导装载程序(BootLoader),其主要功能就是讲外部的程序装载到片内RAM中运行,以提高系统的运行速度。
- 模式介绍
VC5509A具有Parallel EMIF BOOT mode、EHPI Boot mode、Standard serial boot mode、SPI EEPROM boot mode、IIC EEPROM boot mode、USB boot mode等多种方式自举加载。
- boot模式选择
Boot引导模式选择是通过引脚BOOTM[0:3]配置
BOOTM[0:3] |
BOOT资源 |
|||
IO.0 |
IO.1 |
IO.2 |
IO.3 |
|
0 |
0 |
0 |
0 |
系统保留 |
0 |
0 |
0 |
1 |
串行24位地址EEPROM引导方式、使用MCBSP0 |
0 |
0 |
1 |
0 |
USB引导方式 |
0 |
0 |
1 |
1 |
IIC EEPROM引导模式 |
0 |
1 |
0 |
0 |
系统保留 |
0 |
1 |
0 |
1 |
EHPI(multiplexed mode) BOOT 多路复用 |
0 |
1 |
1 |
0 |
EHPI (non-multiplexed mode)BOOT |
0 |
1 |
1 |
1 |
系统保留 |
1 |
0 |
0 |
0 |
从外部16位异步存储器中引导 |
1 |
0 |
0 |
1 |
串行16位地址EEPROM引导方式,使用MCBSP0 |
1 |
0 |
1 |
0 |
并行EMIF模式引导(8位异步存储器) |
1 |
0 |
1 |
1 |
并行EMIF模式引导(16位异步存储器) |
1 |
1 |
0 |
0 |
系统保留 |
1 |
1 |
0 |
1 |
系统保留 |
1 |
1 |
1 |
0 |
标准串口模式(16位),使用McBSP0 |
1 |
1 |
1 |
1 |
标准串口模式(8位),使用McBSP0 |
- 引导表
BootLoader在引导程序时,程序代码是以引导表格形式加载的,TMS320VC55X的引导表结构中包括了用户程序的代码段和数据段以及相应段在内存中的指定存储位置。此外还包括程序入口地址、部分寄存器的配置值、可编程延时时间等信息,引导表结构如下:
32位程序入口地址 |
|||
32位寄存器配置计数器n |
|||
16位寄存器地址 |
16寄存器内容 |
||
...(REGISTER n addr) |
...(register n contents) |
||
16位延时指示器 |
16位延时计数器 |
||
32位段字节计数器 |
|||
32位段起始位 |
|||
数据(字节) |
数据(字节) |
数据(字节) |
数据(字节) |
数据(字节) |
数据(字节) |
数据(字节) |
数据(字节) |
...(section n) |
|||
32位全0数据(BOOT表结束位) |
其中,程序入口地址是引导表加载结束后,用户程序开始执行的地址;寄存器配置数目决定了后面有多少个寄存器需要配置:只有当延时标志为FFFFh时,延时才被执行;延时长度决定了在寄存器配置后延时多少个CPU周期才进行下一个动作:段长度、段起始地址和数据则为用户程序中定义的各个段的内容;最后以00000000h作为引导表的结束标志
- 执行流程
![]() |
而该流程中的reset,initboot,call selectbootmode, read i/o state, call boot loader这些步骤都是固化在芯片内的程序自己执行的,也就是说这些代码在出厂的时候已经在TI的芯片内。在28335中是一段的8k*16的read-only的memory,地址位于0x3fe000-0x3fffff,见下图:
![]() |
根据上面的流程图和rom分布图,详细的解释一下流程:
1、在3f ffc0到3f ffff其实是放了中断向量表的地方:系统一开机当然是处于reset中断,因此直接跳至reset的地方执行(0x3f ffc0)。而这个地方的两个字节只是放了一条指令,就是跳至initboot函数,也就是3f f34c的地址执行boot load。
- 在3f f34c的bootloader操作中会去检测外部GPIO口的状态,从而判断是哪种方式的启动
3、 然后根据相依的启动方式跳至相应的入口地址:比如FLASH启动就是0x33fff6, 内部SARAM启动就是0x0.
- 而这里的入口地址就是cmd文件中定义的begin段。因此对于flash启动和ram启动,begin的定义是不同的,在flash启动时begin就是 0x33fff6 ,而ram启动begin就是0x0. 这个2个字的区间也就是放了我们程序最初执行的第一条指令(通常是code_start).因为CSM_PWL的存放位置是在0x33fff8,因此只有2个words空间来存放跳转指令。而一条长跳转指令LB刚好占两个字节(这摆明着是ti精心设计的)
DSP Bootloader说明相关推荐
- Dsp BootLoader的学习
(2010-07-05 21:16:55) 转载▼ 标签: dsp bootloader it 分类: DSP 以下转载------------>> 初学DSP时最头疼的事就是DSP的bo ...
- TI DSP BootLoader技术要点概述
概述 在开发一款产品特别是要装到密闭空间里面的产品的时候,经常要考虑到程序的更新问题,更新程序的方法有使用芯片厂家自带的功能的(通过拉某个引脚,设置芯片启动某块boot程序,然后引导将自己的程序下载进 ...
- DSP BootLoader 应用笔记(转珠海阿良的blog)
初学DSP时最头疼的事就是DSP的bootload问题,以前学51时只要把程序写好编译通过后就可以用烧写器直接将*.hex文件烧进单片机运行.但DSP内部不带FLASH RAM,它必须在复位期间将外部 ...
- DSP芯片TMS320C6678的emif挂载norflash启动
本文主要对工作中调试C6678的emif flash启动做一个归纳 1.启动原理 2.程序设计 3.BOOTMODE[12:0] 4.程序编码 4.1 BootLoader工程 4.2 APP工程 4 ...
- tx2 fpga pcie无法读写_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...
- ubuntu arm qt_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
双击可查看大图(手动狗头) 目录 Altera Cyclone V soc开发文档 之软硬件开发 1 Cyclone V开发流程介绍 5 专业术语 5 Cyclone V软件开发介绍 6 U-BOOT ...
- TMS320C6455入门实践(六)——编写boot程序
本文主要介绍C6455的二级boot的启动程序,参考文档为: SPRUEC6G - TMS320C645x/C647x DSP Bootloader User's Guide SPRU732J - T ...
- DSP 程序远程升级 / Bootloader设计指南(三)—— CMD文件与DSP存储空间
技术交流 & 最新设计指南获取方法 步骤1) 扫描下方二维码,进入微信公众号 步骤2) 获取最新指南,在公众号后台回复以下关键字:[bootloader] 步骤3) 有疑问,在公众号后台回复以 ...
- DSP 程序远程升级 / Bootloader设计指南(二)—— 详解c_int00
技术交流 & 最新设计指南获取方法 步骤1) 扫描下方二维码,进入微信公众号 步骤2) 获取最新指南,在公众号后台回复以下关键字:[bootloader] 步骤3) 有疑问,在公众号后台回复以 ...
- DSP在线升级(2)--bootloader的设计框架
DSP在线升级(1)---认识DSP芯片启动流程 DSP在线升级(2)--bootloader的设计框架 DSP在线升级(3)-----一块DSP芯片的片上flash如何烧写2个工程 DSP在线升级( ...
最新文章
- (笔试题)删除K位数字
- TCP客户机-服务器
- 2月1日学习内容整理:算法
- 达摩院文档级关系抽取新SOTA和零样本关系抽取新任务
- spring数据源、连接池配置
- dxf文件预览打开编辑相关控件推荐
- CocoaPods加载第三方库
- 基于XML的AOP配置-转
- 保存书店每日交易记录程序设计
- 特征点匹配(SIFI)
- html网页如何添加google广告,三步将谷歌广告代码添加到WordPress网站侧边栏 | 老豆国外联盟营销教程指南...
- 详解JavaScript函数式编程中的curry函数
- 杭州好玩景点攻略884
- 边缘计算:你应该知道的三个趋势
- c语言 Linux CURL发送Http get请求 带参数
- 计算机科学与技术专业有哪些课程,计算机科学与技术专业课程有哪些
- 4DGenome:染色质相互作用数据库
- 知乎首页实战之表单模块
- 慕尼黑高等法院:脸书强制用户使用真实姓名合法
- vue 自定义生成表格 并且可以输入