S3C2410启动程序分析:2410Init.s

需积分: 13 1 下载量 126 浏览量 更新于2024-11-01 收藏 219KB PDF 举报
"S3C2410启动程序设计——2410Init.s详细分析" S3C2410是一款基于ARM920T内核的微处理器,常用于嵌入式系统设计。本文档主要讨论的是该处理器的启动程序设计,特别是2410Init.s汇编源代码的详细注释分析。这个启动程序是嵌入式系统上电后执行的第一部分代码,负责初始化硬件环境,以便后续的C语言代码能够顺利运行。 启动程序的主要步骤如下: 1. **屏蔽所有中断**:在系统启动初期,为了防止不必要的中断干扰,会通过设置CPSR(Current Program Status Register)寄存器来关闭中断,确保初始化过程的顺序性和安全性。 2. **关闭看门狗定时器**:看门狗定时器通常用于检测系统是否死机,但在启动阶段不需要其功能,因此需要关闭。 3. **设置PLL(Phase Locked Loop)寄存器**:PLL用于调节系统时钟频率,根据系统配置设定合适的值,以达到预期的工作频率。 4. **初始化存储控制器**:S3C2410包含多种类型的内存接口,如SDRAM、NAND Flash等,需要初始化相应的控制寄存器以正确配置存储设备。 5. **初始化各模式下的栈指针**:ARM处理器有多种工作模式,每种模式都有自己的栈指针,需要根据不同的模式设置相应的SP(Stack Pointer)寄存器。 6. **设置缺省中断处理函数**:在启动过程中,需要为每个中断向量指定一个默认的处理函数,以便在中断发生时有预定的行为。 7. **数据段迁移与初始化**:将程序中的数据段从ROM复制到RAM,并清零BSS段(未初始化的数据段)。 8. **跳转到C语言Main入口函数**:完成以上初始化后,启动程序会跳转到C语言的主入口点,即`main()`函数,开始执行高级语言编写的应用程序。 在2410Init.s中,可以看到一些关键的定义,如USERMODE、FIQMODE等,这些都是ARM处理器模式的常量,它们标识了处理器当前正在执行的任务类型。文件还包括了对内存映射、地址空间等的配置,如INCLUDE的`option.inc`、`memcfg.inc`和`2410addr.inc`,这些文件通常包含了芯片相关的配置信息和地址定义。 通过分析这些注释,我们可以了解到S3C2410启动流程的细节,这对于理解嵌入式系统的底层运行机制以及调试启动问题至关重要。尽管注释可能存在一些不准确之处,但它仍为开发者提供了宝贵的参考信息。