S3C2410-2440启动代码数据复制过程解析

需积分: 9 0 下载量 71 浏览量 更新于2024-09-16 收藏 150KB PDF 举报
"本文主要分析了S3C2410-2440处理器在启动过程中的数据复制步骤,特别是在NOR Flash和NAND Flash两种启动模式下的不同。" 在S3C2410-2440处理器的启动过程中,数据复制是一个关键环节,确保代码能够从非易失性存储器转移到RAM中执行,以提高运行效率。首先,处理器在启动时会进行一系列初始化操作,包括关闭WatchDog定时器、设置主时钟(PLL)和时钟频率、配置SDRAM以及初始化堆栈等。这些基本设置在多数启动代码分析文章中都有所提及,但本文将重点放在数据复制过程。 1. **NOR Flash启动**: 当系统从NOR Flash启动时,由于NOR Flash支持执行原地(XIP, eXecute In Place),代码可以直接在NOR Flash上运行。然而,出于性能考虑,通常会将代码复制到SDRAM中执行。启动过程中,会有一段小的代码(通常4KB)在NOR Flash中执行,这部分代码负责将剩余的代码从NOR Flash复制到SDRAM。 2. **NAND Flash启动**: NAND Flash不支持XIP,因此,当系统设置为从NAND Flash启动时,CPU会自动读取NAND Flash的前4KB代码到内部SRAM(StepingStone)中,并将其映射到BANK0的0地址,使得CPU可以从中取指令执行。同样,为了执行整个程序,这4KB之外的代码需要被复制到SDRAM。 在两种启动模式下,无论从NOR Flash还是NAND Flash,最终都需要将代码复制到SDRAM以便高效执行。这个复制过程必须在最初的4KB代码(即StepingStone)中完成。程序的入口点ResetEntry都设定为0x0,这意味着CPU会在加电后尝试从这个地址开始执行代码。 代码分析部分提到了通过检查BWSCON寄存器的[2:1]位来确定启动源。如果OM[1:0]引脚配置为非00,表明从NOR Flash启动;如果OM[1:0]为00,则表示从NAND Flash启动。这一判断是决定后续数据复制流程的关键。 S3C2410-2440处理器的启动涉及复杂的硬件交互和代码迁移,对于理解嵌入式系统的启动过程至关重要。理解这一过程有助于优化系统性能,特别是在资源有限的嵌入式设备中。