start.S详解 2

start.S详解 2

ID:44703572

大小:37.51 KB

页数:8页

时间:2019-10-25

start.S详解 2_第1页
start.S详解 2_第2页
start.S详解 2_第3页
start.S详解 2_第4页
start.S详解 2_第5页
资源描述:

《start.S详解 2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/****************************************************************************CPU_init_criticalregisters**setupimportantregisters*setupmemorytiming***************************************************************************/@CPU初始化 #ifndefCONFIG_SKIP_LOWLEVE

2、L_INITcpu_init_crit:/**flushv4I/Dcaches*/@初始化CACHES mov r0,#0mcr p15,0,r0,c7,c7,0 /*flushv3/v4cache*/mcr p15,0,r0,c8,c7,0 /*flushv4TLB*/  /**disableMMUstuffandcaches*/@关闭MMU和CACHESmrc p15,0,r0,c1,c0,0bic r0,r0,#0x00002300 @clearbits13,9:8(--V---RS)bic r0,r

3、0,#0x00000087 @clearbits7,2:0(B----CAM)orr r0,r0,#0x00000002 @setbit2(A)Alignorr r0,r0,#0x00001000 @setbit12(I)I-Cachemcr p15,0,r0,c1,c0,0@对协处理器的操作还是看不懂,暂时先不管吧,有时间研究一下ARM技术手册的协处理器部分。  /**beforerelocating,wehavetosetupRAMtiming*becausememorytimingisboard-de

4、pendend,youwill*findalowlevel_init.Sinyourboarddirectory.*/@初始化RAM时钟,因为内存是跟开发板密切相关的,所以这部分在/开发板目录/lowlevel_init.S中实现mov ip,lr@保存LR,以便正常返回,注意前面是通过BL跳到cpu_init_crit来的。@(ARM9有37个寄存器,ARM7有27个)37个寄存器=7个未分组寄存器(R0~R7)+2×(5个分组寄存器R8~R12)+6×2(R13=SP,R14=lr分组寄存器)+1(R1

5、5=PC)+1(CPSR)+5(SPSR)用途和访问权限:R0~R7:USR(用户模式)、fiq(快速中断模式)、irq(中断模式)、svc(超级用法模式)、abt、undR8~R12:R8_usr~R12_usr(usr,irq,svc,abt,und)R8_fiq~R12_fiq(fiq)R11=fpR12=IP(从反汇编上看,fp和ip一般用于存放SP的值)R13~R14:R13_usrR14_usr(每种模式都有自己的寄存器)SP~lr:R13_fiqR14_fiqR13_irqR14_irqR13

6、_svcR14_svcR13_abtR14_abtR13_undR14_undR15(PC):都可以访问(即PC的值为当前指令的地址值加8个字节)R16   :((CurrentProgramStatusRegister,当前程序状态寄存器))SPSR_fiq,SPSR_irq,SPSR_abt,SPSR_und(USR模式没有) #if defined(CONFIG_AT91RM9200EK) #elsebl lowlevel_init@跳到底层硬件初始化,这部分代码在自己建立的开发板目录下的lowlev

7、el_init.S中。 #endifmov lr,ipmov pc,lr@返回到主程序 #endif/*CONFIG_SKIP_LOWLEVEL_INIT*/ /****************************************************************************Interrupthandling***************************************************************************/@这段没有看

8、明白,不过好像跟移植关系不是很大,先放一放。@@IRQstackframe.@#defineS_FRAME_SIZE 72 #defineS_OLD_R0 68#defineS_PSR  64#defineS_PC  60#defineS_LR  56#defineS_SP  52 #defineS_IP  48#defineS_FP  44#defineS_R10  40#defineS_R9  36#defi

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

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

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