2440启动代码分析.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2440启动代码分析

功能:作为C程序启动代码,配置内存、中断向量、栈,初始化C语言环境变量????大概流程:??????1.定义处理器模式及各模式的堆栈指针常量用于初始化堆栈sp(R13)??2.设置处理器模式??3.宏定义MOV_PC_LR,作用:子程序返回??4.第一次查表实现中断向量的重定向??5.代码入口??6.大小端判断与转换??7.中断的第二次查表??8.禁止看门狗,屏蔽所有中断??9.设置系统时钟频率??10.初始化内存控制器????;================================================================????;?NAME:?2440INIT.S????;?DESC:?C?start?up?codes????;???????Configure?memory,?ISR?,stacks????;???Initialize?C-variables????;?HISTORY:????;?2002.02.25:kwtark:?ver?0.0????;?2002.03.20:purnnamu:?Add?some?functions?for?testing?STOP,Sleep?mode????;?2003.03.14:DonGo:?Modified?for?2440.????;?2009?06.24:Tinko?Modified????;================================================================????????;================================================================????;GET和INCLUDE的功能是相同的,功能都是引进一些编译过的文件????;汇编不能使用include包含头文件,所以用Get????;汇编也不认识*.h?文件,所有只能用*.inc????;================================================================????????GET?option.inc??;定义芯片相关的配置,包含选项说明,如pll等??????????GET?memcfg.inc??;定义存储器配置,包含MMU配置说明???????????GET?2440addr.inc?;定义了寄存器符号,包含各寄存器地址说明????????;================================================================???????;定义SDRAM工作在Reflesh模式下,SDRAM有两种刷新模式:selfreflesh,autoreflesh。????;后者是在其使用过程当中设置的。????;REFRESH寄存器[22]bit?:?0-?auto?refresh;?1?-?self?refresh??????;?MMU自刷新????;?EQU相当于C语言中的#define????;================================================================????BIT_SELFREFRESH?EQU?(122)?;用于节电模式中,SDRAM自动刷新????????;处理器模式常量:?CPSR寄存器的后5位决定目前处理器模式?M[4:0]????;Pre-defined?constants?;系统的工作模式设定????USERMODE????EQU?????0x10?;用户模式????FIQMODE?????EQU?????0x11?;快速中断模式????IRQMODE?????EQU?????0x12?;中断模式????SVCMODE?????EQU?????0x13?;监管模式????ABORTMODE???EQU?????0x17?;异常中断模式????UNDEFMODE???EQU?????0x1b?;未定义模式????MODEMASK????EQU?????0x1f?;模式掩码????NOINT???????EQU?????0xc0?;取消中断????????;================================================================????;定义各模式的堆栈指针常量用于初始化堆栈sp(R13)????;用于下面对各个模式中堆栈的设置????;如何确保堆栈不会溢出?????;在ADS环境下ARM堆栈为只能为递减堆栈(SP向低地址方向伸张)????;堆栈参考:/share/detail/5538633????????;The?location

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档