21ic电子技术开发论坛 单片机与嵌入式系统 德州仪器MCU 2812从内部flash启动的过程
发新帖我要提问
返回列表
打印

2812从内部flash启动的过程

[复制链接]
464|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Orchids|  楼主 | 2017-8-14 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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)。

相关帖子

沙发
icqic| | 2017-9-27 16:37 | 只看该作者
学习中,

使用特权

评论回复
板凳
baimiaocun2015| | 2017-9-27 21:06 | 只看该作者
这个楼主在总结详细的呗,很不错的资料

使用特权

评论回复
地板
pklong| | 2017-9-27 21:46 | 只看该作者
是设计cmd文件的时候需要的吗?

使用特权

评论回复
5
pklong| | 2017-9-27 21:48 | 只看该作者
怎么拓展Flash作为启动?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

697

主题

993

帖子

4

粉丝
关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部