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

需积分: 9 4 下载量 107 浏览量 更新于2024-09-17 收藏 150KB PDF 举报
"本文主要分析了S3C2410和S3C2440微处理器在从NOR Flash和NAND Flash启动时的数据复制过程,涉及到嵌入式系统的启动流程、XIP技术、NAND Flash的特性以及SRAM的作用。" S3C2410和S3C2440是基于ARM架构的微处理器,常用于嵌入式系统设计。在系统启动时,理解启动代码如何执行和数据如何复制到主存对于开发者至关重要。本文由东莞权智集团的范伟撰写,探讨了这两种情况下的启动过程。 首先,NOR Flash支持执行在片(XIP,Execute-In-Place)功能,这意味着代码可以直接从NOR Flash中运行。然而,为了提高执行效率,通常会将代码复制到SDRAM中执行。如果系统配置为从NOR Flash启动,启动代码首先会在NOR Flash中执行,并负责将自身复制到SDRAM。 另一方面,NAND Flash不支持XIP,因此当系统设置为从NAND Flash启动时,最初的4KB代码会被加载到CPU的内部SRAM,即"StepingStone"。这个区域随后映射到地址空间的BANK0(0x0地址),CPU从此处开始执行。因为大部分程序超过4KB,必须将剩余的代码也复制到SDRAM以继续执行。 无论是从NOR还是NAND启动,代码最终都需要被复制到SDRAM中,这个过程需要在那最初的4KB代码中完成。启动后的4KB SRAM可以被用于其他目的。 启动过程的一个关键点是,无论哪种启动方式,程序的入口点ResetEntry都是0x0地址,这是因为在系统加电后,CPU会默认从这个地址开始取指令执行。文章通过检查BWSCON寄存器的位[2:1]来确定启动介质,根据OM[1:0]引脚的状态来判断是NOR Flash还是NAND Flash启动,从而采取相应的复制策略。 总结来说,本文深入解析了S3C2410和S3C2440在不同启动条件下的工作流程,特别是代码如何从非易失性存储器转移到易失性内存的过程,这对于理解嵌入式系统的启动过程及其优化具有重要的参考价值。