共1条
1/1 1 跳转至页
2812从内部flash启动的过程

a)程序硬件复位或者软件复位
b)判断mp/mc是否为0,微计算机模式(为1,当为微处理器模式时,2812内部的bootrom被禁止,通过zone7从外部调引导程序启动。)
c)为0则从boot rom启动,否则从外部启动(0x3F FC00)
d)到boot rom的0x3F FC00处取出复位向量,跳到boot函数:2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时ti已经固化好了引导程序iniboot:Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处)
e)采集io管脚状态,确定启动模式。2812提供几种启动模式:
SCITXDA(GPIOF4) MDXA(GPIOF12) SPISTEA(GPIOF3) SPICLK(GPIOF2)
1 x x x FLASH启动
0 1 x x SPI启动
0 0 1 1 SCI启动
0 0 0 0 PARALLEL启动
f)根据io状态选择boot方式
g)如果是flash,程序退出boot函数,跳转到0x3F 7FF6(codestart)
h)取出跳转指令,跳转到自己的指定地址或者C初始化的入口_C_INT00(0x3F6000)处(DSP281x_CodeStartBranch.asm中)
i)在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内(RTS Library)
j)进入main函数(0x3F658E)
注:1》根据INTER NET上别人的资料,以及针对程序的推敲,总结如上。
2》地址均为我程序实际观测到的值,和网上别人所言有出入。如:有言boot rom地址为0x3F FFC0,iniboot(起始地址0x3F FB50)。
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
分享开发笔记,赚取电动螺丝刀(便携轻巧与无刷电机两款可选) | |
看《关键跃升》,聊聊工作心法、动力、能力、沟通与协作,从五个方面深入交流你的工作心得 | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
我要给自己挣一部逻辑分析仪 | |
用知识换取送给亲朋的礼物,做个浪漫的开发者 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 |