启动代码startups分析

启动代码startups分析

ID:30181592

大小:91.54 KB

页数:5页

时间:2018-12-27

启动代码startups分析_第1页
启动代码startups分析_第2页
启动代码startups分析_第3页
启动代码startups分析_第4页
启动代码startups分析_第5页
资源描述:

《启动代码startups分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、启动代码start.s(相当于bootloader的前端代码),开机就执行的代码,即0x0000处放置的代码。给CPU一个合适的工作环境。面向CPU内核和外围硬件,所以一般用汇编编写。1、在起始地址分配中断向量表即中断处理函数(CPU要求的),以为向量空间只有4字节,所以一般只是一个跳转指令,去别处执行。2、之后初始化存储器系统3、初始多个模式下的堆栈(模式切换时,硬件给SP置位)4、初始化有特殊要求的外围设备,如LED灯、看门狗5、初始化用户的执行环境(在FLASH中运行太慢了,把代码整体搬迁到RAM中)6、切换处理器的工

2、作模式7、调用主程序(没见到有存储控制器的配置代码,也没见到有时钟初始化代码)下面分析,所给的2410的启动代码实现了以上的那些功能,实现得显然不全,或者不需要,或者在工程代码的其它部分实现。读程序时注意,所有程序都是逐行顺序执行的,要看清跳转指令。GET2410addr.s//用到了2410addr.s中的寄存器地址宏定义;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SomeARM920CPSRbitdiscriptions;;;;;;;;;

3、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Pre-definedconstants//预定义的变量,一下后续代码中使用方便,与CPSR相关USERMODEEQU0x10FIQMODEEQU0x11IRQMODEEQU0x12SVCMODEEQU0x13ABORTMODEEQU0x17UNDEFMODEEQU0x1bMODEMASKEQU0x1fNOINTEQU0xc0I_Bit*0x80F_Bit*0x40;;;;;;;;;;;;;;;;;;;;;;;;;;;;

4、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MMURegisterdiscription;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;p15CP15;c0CN0;c1CN1;c2CN2;c3CN3CtrlMMU*1CtrlAlign*2CtrlCache*4CtrlWBuff*8CtrlBigEnd*128CtrlSystem*256CtrlROM*512;initializationL0isMMUFULL_ACCESS

5、,DOMAIN,SECTIONTLB_L0_INIT*0x0C02;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Starthere//执行代码从这里开始;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;//IMPORT,定义表示这是一个外部变量的标号,不是在本程序定义的//EXPORT,表示本程序里面用到的变量提供给其他模块调用的。//以上两个在汇编和C语言混合编程的时候用

6、到AREAInit,CODE,READONLYIMPORT__use_no_semihosting_swiIMPORTEnter_UNDEF//有点extern的感觉IMPORTEnter_SWIIMPORTEnter_PABORTIMPORTEnter_DABORTIMPORTEnter_FIQENTRY//这是程序的入口//中断/异常向量表(跳转),上电第一条就执行bColdReset,跳转到ColdReset。bColdResetbEnter_UNDEF;UndefinedInstructionbEnter_SWI;s

7、yscall_handlerorSWIbEnter_PABORT;PrefetchAbortbEnter_DABORT;DataAbortb.;ReservedHandlerbIRQ_Handler;IRQHandlerbEnter_FIQ;FIQHandler;dealwithIRQinterruptEXPORTIRQ_Handler//IRQ中断处理子程序IRQ_HandlerIMPORTISR_IrqHandler//服务程序在外部定义STMFDsp!,{r0-r12,lr}BLISR_IrqHandler//跳转至服

8、务程序LDMFDsp!,{r0-r12,lr}SUBSpc,lr,#4;=======;ENTRY;=======EXPORTColdResetColdReset//上电执行复位异常函数,就跳转到这里来ldrr0,=WTCON;watchdogdisable//关闭看门狗,还没初始化完系统

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

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

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