DSP2812启动过程

DSP2812启动过程

ID:39548678

大小:4.70 MB

页数:22页

时间:2019-07-06

DSP2812启动过程_第1页
DSP2812启动过程_第2页
DSP2812启动过程_第3页
DSP2812启动过程_第4页
DSP2812启动过程_第5页
资源描述:

《DSP2812启动过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2812的内部Flash启动过程2812的内部flash启动过程2812从内部flash启动的详细流程说明:a)        程序硬件复位或者软件复位b)       判断mp/mc是否为0c)        为0则从bootrom启动,否则从外部启动d)       到bootrom的0x3FFFC0处取出复位向量,跳到boot函数e)        采集IO管脚状态,f)        根据IO状态选择boot方式g)       如果是flash,程序退出boot函数,跳转到0x3F7FF6h)       取出跳转指令,跳转到自己的指定

2、地址或者C初始化的入口_C_INT00处i)         在C初始化的入口_C_INT00对一些变量,堆栈和寄存器进行必要的设置,该函数在c的库函数内j)         进入main函数 从上电到我们的主函数运行之间这段时间里2812到底做了些什么?2812是怎样引导程序运行的?下面叙述其启动过程。    在2812中引脚XMP/~MC,当该引脚的为高电平时表示是微处理器模式(microprocessor),为低电平时表示微机算计模式(microcomputer),当为微处理器模式时,2812内部的bootrom被禁止,通过zone7(0x

3、3FC000)从外部调引导程序启动。2812复位以后,其复位向量是固定的0x3FFFC0,如果为微处理器模式,那么复位后的复位向量指向的外部的地址,即0x3FFFC0是zone7处的地址,若为微机算计模式,那么0x3FFFC0指向的是2812的片内FLASH的地址。下面就以微机算计模式加以说明其过程。    上电复位后,复位向量是指向片内Flash的0x3FFFC0,2812有一块flash地址从0x3FF000-0x3FFFFF在出厂时已经固化好了引导程序。在0x3FFFC0处是一条跳转指令,跳到iniboot(地址0x3FFC00)函数处执行

4、iniboot代码,该iniboot代码就是TI在dsp出厂时固化在flash中的。InitBootassemblyRoutine将选择SelectBootModefunction启动模式函数。这个函数由GPIO引脚的状态决定启动类型。引导模式选择GPIOF4GPIOF12GPIOF3GPIOF2(SCITXDA)(MDXA)(SPISTEA)(SPICLK)PUNoPUNoPUNoPUModeSelected1XXX跳转到地址为0x3F7FF6的Flash,用户必须在这里编写分支语句优先于复位,以按需要重新定位代码的执行.01XX调用SPI_B

5、oot以从外部的EEPROM载入0011调用SCI_Boot以从SCI-A载入0010J跳转到H0SARAM0x3F80000001跳转到OTP地址0x3D78000000调用Parallel_Boot从GPIO端口B载入一旦启动结束,选择启动模式函数返回一入口地址给InitBoot函数。入口地址是退出bootloader之后代码开始执行的起始点。InitBoot接着将会调用ExitBoot子程序,把CPU寄存器的状态恢复到复位状态。比如flashboot模式,那么initboot执行完后跳转到0x3F7FF6处(codestart处),此位置刚

6、好在128位(CSM)密码位置之前,你要在0x3F7FF6处放置跳转指令,以跳转到你要去的地方,比如是bootloader或应用代码,通常的跳转去处是_c_int00。在0x3F7FF6处放置跳转指令的方法如下(DSP281x_CodeStartBranch.asm中):.sect"codestart"code_start:  .ifWD_DISABLE==1    LBwd_disable   ;Branchtowatchdogdisablecode  .else    LB_c_int00    ;Branchtostartofboot.as

7、minRTSlibrary  .endif  .ifWD_DISABLE==1  .textwd_disable:  SETCOBJMODE      EALLOW         MOVZDP,#7029h>>6   MOV@7029h,#0068h   EDIS          LB_c_int00    .endif.endMEMERY {    Page0:      ………..RAML0:origin=0x008000,length=0x001000/*on-chipRAMblockL0*/OTP:origin=0x3D7800,le

8、ngth=0x000400/*on-chipOTP*/FLASHD:origin=0x3F0000,length=0x002000/*o

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。