初学者看S3C2440启动代码.doc

初学者看S3C2440启动代码.doc

ID:50834996

大小:48.45 KB

页数:9页

时间:2020-03-15

初学者看S3C2440启动代码.doc_第1页
初学者看S3C2440启动代码.doc_第2页
初学者看S3C2440启动代码.doc_第3页
初学者看S3C2440启动代码.doc_第4页
初学者看S3C2440启动代码.doc_第5页
资源描述:

《初学者看S3C2440启动代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、GEToption.inc;定义了一些全局变量GETmemcfg.inc ;BANK0~BANK7的初始化等GET2440addr.inc;寄存器地址以上部分相当于C语言的include,是在启动代码中学要用到的文件。接下来是第一几种工作模式,我就不复制了。。 ;ThelocationofstacksUserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800~SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800~UndefStack EQ

2、U (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00~AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000~IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000~FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000~Thelocationofstacks翻译下,不废话。 ;Checkiftasm.exe(armasm-16...@ADS1.0)isused

3、. GBLL   THUMBCODE [{CONFIG}=16THUMBCODESETL {TRUE}    CODE32   

4、THUMBCODESETL {FALSE}   ]这段的目的是统一处理器工作状态和软件编译方式 接下来定义了三个宏,什么是宏呢,准确的定义可以去百度,我感觉就是不占内存的函数,你可觉得我说的不对,可以指正。但目前我就是这么觉得的。前两个没什么好说的,第三个宏需要讲一下。MACRO$HandlerLabelHANDLER$HandleLabel$HandlerLabel sub sp,sp,#4 ;decrem

5、entsp(tostorejumpaddress) stmfd sp!,{r0} ;PUSHtheworkregistertostack(lrdoesnotpushbecauseitreturntooriginaladdress) ldr    r0,=$HandleLabel;loadtheaddressofHandleXXXtor0 ldr    r0,[r0] ;loadthecontents(serviceroutinestartaddress)ofHandleXXX str    r0,[sp,#4]     ;storeth

6、econtents(ISR)ofHandleXXXtostack ldmfd  sp!,{r0,pc}    ;POPtheworkregisterandpc(jumptoISR) MEND汇编的问题,堆栈了什么的我也不懂,你如果懂的话给我留言啊,大意是当遇到HandlerXXX就会去展开HandleXXX(前面的比后面的多个r有没有),有人就会问为什么啊,HandlerXXX是异常中断向量有没有是定义在bank0的0x0的有没有,HandleXXX地址可查(_ISR_STARTADDRESS=0x33FF_FF00中断基地址)这么做的

7、原因就是bank0只能用4K有没有。算了,不懂再慢慢研究去吧,问我也不是很明白。(有废话了) IMPORT 

8、Image$$RO$$Base

9、 ;BaseofROMcodeIMPORT 

10、Image$$RO$$Limit

11、 ;EndofROMcode(=startofROMdata)IMPORT 

12、Image$$RW$$Base

13、  ;BaseofRAMtoinitialiseIMPORT 

14、Image$$ZI$$Base

15、  ;BaseandlimitofareaIMPORT 

16、Image$$ZI$$Limit

17、 ;tozeroini

18、tialise

19、Image$$RO$$Base

20、。。。这几个奇怪的变量是编译器产生的,在前期设置时就已经赋值,有人会问为什么没有

21、Image$$RW$$Limit

22、捏,是因为RW和ZI是必须挨着的,RW的尾巴就是ZI的头哦 IMPORT MMU_SetAsyncBusModeIMPORT MMU_SetFastBusMode ;IMPORT Main  ;ThemainentryofmonprogramIMPORT RdNF2SDRAM ;CopyImagefromNandFlashtoSDRAM 导入了几个外部文件的函数可以goto去

23、看下,初学应该不怎么能看懂,反正我是没看懂 下面是好几个入口,意思就是从不同的地方跳到这里捏1.ENTRY2.__ENTRY3.ResetEntry;不多说 ENDIAN_CHANGE这个变量option.

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

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

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