2812从内部flash启动的过程

本文详细介绍了TI DSP2812微控制器的启动过程,包括硬件和软件复位、启动模式判断、内外部启动区别及各种启动模式下的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         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)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值