TI DSP boomode

TI支持很多种方式的boot,内部的ram(saram),flash,sci,spi等等,但无论哪种启动都遵循下面的流程。

而该流程中的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.

2.在3f f34c的bootloader操作中会去检测外部GPIO口的状态,从而判断是哪种方式的启动:

3. 然后根据相依的启动方式跳至相应的入口地址:比如FLASH启动就是0x33fff6, 内部SARAM启动就是0x0.

4. 而这里的入口地址就是cmd文件中定义的begin段。因此对于flash启动和ram启动,begin的定义是不同的,在flash启动时begin就是 0x33fff6 ,而ram启动begin就是0x0. 这个2个字的区间也就是放了我们程序最初执行的第一条指令(通常是code_start). 因为CSM_PWL的存放位置是在0x33fff8,因此只有2words空间来存放跳转指令。而一条长跳转指令LB刚好占两个字节(这摆明着是ti精心设计的)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值