mini2440启动代码详解

mini2440启动代码详解

ID:15325293

大小:94.00 KB

页数:46页

时间:2018-08-02

mini2440启动代码详解_第1页
mini2440启动代码详解_第2页
mini2440启动代码详解_第3页
mini2440启动代码详解_第4页
mini2440启动代码详解_第5页
资源描述:

《mini2440启动代码详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Mini2440启动代码详解;=====================================================================;;NAME:2440INIT.S;DESC:Cstartupcodes;Configurememory,ISR,stacks;InitializeC-variables;HISTORY:;2002.02.25:kwtark:ver0.0;2002.03.20:purnnamu:AddsomefunctionsfortestingSTOP,Sleepmode;2003.03.14:DonGo:Mod

2、ifiedfor2440.;;Mini2440启动代码详解,非本人注释,集大家之长!;;个人主页http://591881218.qzone.qq.com/;;=====================================================================;GET类似于C语言的include,option.inc文件内定义了一些全局变量,memcfg.inc文件内定义了关于内存bank的符号和数字常量,2440addr.inc文件内定义了用于汇编的s3c2440寄存器变量和地址GEToption.incGETmemcfg.

3、incGET2440addr.inc;SDRAM自刷新位,把寄存器REFRESH的第22位置1BIT_SELFREFRESHEQU(1<<22);CPSR中的低5位定义了处理器的七种工作模式,为以后切换模式时使用;Pre-definedconstantsUSERMODEEQU0x10FIQMODEEQU0x11IRQMODEEQU0x12SVCMODEEQU0x13ABORTMODEEQU0x17UNDEFMODEEQU0x1bMODEMASKEQU0x1f;CPSR中的I位和F位置1,表示禁止任何中断NOINTEQU0xc0;定义了7种处理器模式下的栈的起始地址

4、,其中用户模式和系统模式共有一个栈空间;ThelocationofstacksUserStackEQU(_STACK_BASEADDRESS-0x3800);0x33ff4800~SVCStackEQU(_STACK_BASEADDRESS-0x2800);0x33ff5800~UndefStackEQU(_STACK_BASEADDRESS-0x2400);0x33ff5c00~AbortStackEQU(_STACK_BASEADDRESS-0x2000);0x33ff6000~IRQStackEQU(_STACK_BASEADDRESS-0x1000);0x

5、33ff7000~FIQStackEQU(_STACK_BASEADDRESS-0x0);0x33ff8000~;ARM处理器的两种工作状态:16位和32位;编译器有相对应的用16位和32位两种编译方式;这段的目的是统一目前的处理器工作状态和软件编译方式;Checkiftasm.exe(armasm-16...@ADS1.0)isused.GBLLTHUMBCODE;声明一个全局逻辑变量[{CONFIG}=16THUMBCODESETL{TRUE}CODE32;指示编译器为ARM指令

6、THUMBCODESETL{FALSE}];宏定义,在后面出现MOV_PC_LR

7、时,这个宏会被自动展开;该宏的作用是跳出子程序,返回被调用处;"["相当于if;"

8、"相当于else;"]"相当于endifMACROMOV_PC_LR[THUMBCODEbxlr

9、movpc,lr]MEND;该宏定义的作用是有条件地(当Z=1时)跳出子程序,返回被调用处MACROMOVEQ_PC_LR[THUMBCODEbxeqlr

10、moveqpc,lr]MEND;该宏定义是把中断服务程序的首地址装载到pc中;在后面当遇到HandlerXXXHANDLERHandleXXX时,该宏被展开;注意:HANDLER前的符号HandlerXXX比其后的符号HandleX

11、XX多了一个r;HandlerXXX为ARM体系中统一定义的几种异常中断;HandleXXX为每个ARM处理器各自定义的中断,见该文件最后部分的中断向量表MACRO$HandlerLabelHANDLER$HandleLabel$HandlerLabelsubsp,sp,#4;decrementsp(tostorejumpaddress);ATPCS规定数据栈为FD类型;即栈指针指向栈顶元素,数据栈向内存地址减小的方向增长;该语句是使栈地址减小4个字节,以留出空间装载中断服务函数首地址stmfdsp!,{r0};PUSHtheworkregistertostack

12、(lrdo

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

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

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