S3C2410启动分析:NOR与NAND Flash的数据复制

需积分: 9 1 下载量 183 浏览量 更新于2024-09-15 收藏 150KB PDF 举报
"本文主要分析了S3C2410和S3C2440微处理器在启动过程中的数据复制步骤,特别是在NOR Flash和NAND Flash启动时的不同处理方式,对于理解和掌握底层代码有重要作用。" 在S3C2410和S3C2440这样的嵌入式处理器中,启动过程涉及多个关键步骤,包括初始化硬件、设置时钟、配置存储器以及数据复制。当系统从NOR Flash启动时,由于NOR Flash支持执行In-System Programming (XIP),代码可以直接在NOR Flash内运行。然而,为了提高执行效率,通常会将代码复制到SDRAM中。启动代码会首先检查BWSCON寄存器的[2:1]位,这些位反映了外部引脚OM[1:0]的状态,从而确定启动源。如果OM[1:0]不等于00,表示从NOR Flash启动。 如果系统设置为从NAND Flash启动,情况就有所不同。NAND Flash不支持直接执行代码,因此在启动时,CPU会自动将NAND Flash中的前4KB代码加载到内部SRAM(StepingStone)中,并将其映射到CPU地址空间的BANK0,即0地址处。CPU随后从这个映射的地址开始执行代码。由于大部分程序远超过4KB,因此必须将剩余的代码复制到SDRAM以便继续执行。无论启动源如何,这4KB的SRAM在复制完成后可以用于其他目的。 在NOR Flash启动的情况下,代码通常有一个预设的入口点ResetEntry,其值为0,这意味着CPU在加电后会从0x0地址开始取指执行。因此,启动代码需要在这4KB的内部SRAM中包含必要的复制逻辑,以将NOR Flash中的代码安全地迁移到SDRAM。 NAND Flash启动时,同样入口点ResetEntry也为0,但初始执行发生在StepingStone中。由于NAND Flash启动的特殊性,启动代码需要在有限的4KB SRAM空间内执行复制任务,之后也需要将StepingStone清空,以释放这部分内存供后续使用。 S3C2410和S3C2440的启动过程涉及对不同存储器类型的处理,尤其是在数据复制方面,这是理解嵌入式系统底层运作的关键部分。通过分析这两种启动方式,开发者能够更好地理解如何优化系统性能,并为自己的应用做好准备。