Mini2440启动代码解析:从NOR到NAND

需积分: 9 5 下载量 154 浏览量 更新于2024-10-29 收藏 503KB PDF 举报
"这篇文档主要介绍了Mini2440开发板的启动代码分析,强调了启动代码在硬件理解和系统初始化中的重要性。作者冯伟提到,启动代码是系统上电或复位后运行的第一个程序,负责初始化硬件环境并跳转到用户程序。文档特别讨论了S3C2440处理器的两种启动方式:NORFLASH启动和NANDFLASH启动。" Mini2440启动代码分析涉及的关键知识点如下: 1. **启动代码**:启动代码是系统启动时执行的第一段程序,它的主要任务是对硬件环境进行初始化,包括设置内存、外设、中断控制器等,并将控制权交给操作系统或用户程序。启动代码通常需要直接与处理器内核和硬件控制器交互,因此对硬件理解要求较高。 2. **S3C2440启动方式**:S3C2440处理器有两种启动方式。一是通过NORFLASH启动,NORFLASH的内容会被映射到0x00000000地址,程序可以直接在其中运行。二是通过NANDFLASH启动,此时4K BootSRAM("Steppingstone")被映射到0x00000000,NANDFLASH的前4K内容会被复制到这块SRAM中执行。 3. **NORFLASH和NANDFLASH的区别**:NORFLASH支持芯片内执行,可以直接运行,但成本较高。而NANDFLASH采用非线性存储,不适合直接执行,常用于存储程序和数据。由于其成本较低,许多系统选择NANDFLASH启动。 4. **NANDFLASH启动流程**:当选择NANDFLASH启动时,启动代码必须放在NANDFLASH的前4K位置。启动时,S3C2440硬件会自动将这4K内容复制到BootSRAM中,然后从0x00000000地址开始执行。 5. **启动代码编写注意事项**:由于程序从0地址开始执行,因此启动代码需确保在这个地址可找到。在NANDFLASH启动代码中,需要包含加载更复杂内存映射和初始化的步骤,比如加载操作系统映像到RAM并跳转执行。 6. **硬件基础的重要性**:理解启动代码有助于深入掌握硬件基础,因为它涉及到处理器、内存、外设的初始化,这些都是构建嵌入式系统的基础。 通过对这些知识点的深入理解和实践,开发者可以更好地掌握Mini2440开发板的系统启动过程,以及如何编写和优化启动代码,以适应不同的应用需求。