S3C2410-2440启动代码数据复制过程解析
需积分: 9 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处理器的启动涉及复杂的硬件交互和代码迁移,对于理解嵌入式系统的启动过程至关重要。理解这一过程有助于优化系统性能,特别是在资源有限的嵌入式设备中。
2011-09-13 上传
2010-06-11 上传
2009-08-11 上传
点击了解资源详情
201 浏览量
2010-10-19 上传
2021-05-20 上传
2008-12-18 上传
2010-04-19 上传
GTYlove
- 粉丝: 11
- 资源: 27
最新资源
- Canteen-Automation-App:一个食堂自动化应用程序,用于使手动食堂管理系统自动化
- zxing-cpp:ZXing的C ++端口
- Windows server2008R2 补丁kb4474419-v3-x64
- CognitiveRocket:此存储库主要用于Bot,Power Platform,Dynamics 365,Cognitive Services和ML.NET的研发。
- pouchdb-all-dbs:PouchDB的allDbs()插件
- FromJson
- Dahouet-Repository
- Cyclist
- endlessArrayPromise
- GEO82_5_HE
- workberch-tolopogy:由 Taverna Workbench 上的工作流文件创建的动态 Apache Storm 拓扑
- Surface-Crack-Detection-CNN:使用CNN对Kaggle上可用的图像数据进行表面裂纹检测。 该存储库将在Streamlit中同时具有“模型实现”和“ Web应用程序”,用于检测裂缝
- AppiumTest
- COMP397-W2021-Lesson8a
- 使用TensorFlow.js进行AI聊天机器人:训练Trivia Expert AI
- bdmap