深入解析Uboot start.S源码:S3C2410 ARM上电启动细节

2星 需积分: 33 31 下载量 50 浏览量 更新于2024-09-21 1 收藏 1.86MB PDF 举报
本文是一篇深入解析Uboot中start.S源码的详尽教程,主要针对基于S3C2410的ARM架构。作者通过对start.S汇编文件的逐行剖析,帮助读者理解ARM上电启动过程中的每一个细节。文章的主要目标是提升读者对CPU启动流程的宏观认知,并通过具体实例解释do what(做什么)、why do(为什么做)以及how do(如何做)这三个层面。 首先,文章从设置CPU模式开始,介绍了为什么要将CPU设置为SVC模式,这是一种特权模式,为后续的初始化操作提供安全环境。接下来,文章解释了看门狗(Watchdog)的作用以及为什么在系统初始化阶段需要将其关闭,以防止系统陷入死循环。同时,讨论了ARM7和ARM9中PC=PC+8的特殊指令含义,这涉及到指令指针的更新策略。 文章还深入讲解了ARM寄存器的别名和APCS(Application Program Counter Save Area)的概念,强调了C语言函数调用使用堆栈的原因,以及为何在汇编语言中使用adr伪指令而非简单的mov指令。此外,还探讨了mov指令操作数的取值范围问题,帮助读者理解汇编语言的细节。 为了便于理解,文中穿插了多个图表,如全局变量的语法、LDR指令的语法等,展示了特定指令的用法。作者还提供了重要的寄存器位域结构图,如CPSR/SPSR和INT相关寄存器的配置,这些对于理解硬件与软件交互至关重要。 通过本文,读者不仅能够掌握start.S源码的指令操作,还能提高对ARM系统启动过程的理解,为阅读其他类似源码打下坚实的基础,达到触类旁通的效果。
2011-05-01 上传