2440启动步骤

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2440启动步骤

S3C2440 支持两种启动方式:NAND FLASH 和NOR FLASH。网上有很多

文章分析TQ2440 的启动文件2440init.s。介绍的很详细,我这里只是把

S3C2440 上电后的程序流程描述下。不管在哪种启动方式下,ARM 上电启动

都是从0X00000000 开始运行。下面是复位程序入口。AREA

Init,CODE,READONLYENTRYResetEntryb ResetHandlerResetEntry 的值在ARM 上电运行时是0X00000000,在JTAG 仿真时是0X30000000。这个值很关键,

在拷贝程序时会用到。从NAND FLASH 启动时,在ARM 上电时,ARM 会自

动把NAND FLASH 前4K 的内容拷贝到S3C2440 内部SRAM 中,同时把SRAM 的地址映射到0X00000000。ARM 上电后会从SRAM 处开始运行。从NOR FLASH 启动时,因为NOR FLASH 接在bank0。地址映射是

0X00000000。所以ARM 上电后直接运行NOR FLASH 里的程序。此时

S3C2440 内部SRAM 地址为0X40000000。

在ARM 上电的情况下,流程如下:1、关闭看门狗,关闭所有中断。2、

设置系统工作频率,FCLK,HCLK,PCLK,UCLK。3、初始化内存控制寄存器,

初始化参数在段SMRDATA 里定义。SDRAM 初始化在这里处理。4、在开发

板上电时,按住接在EINT0 脚上的按键会清零64MSDRAM。5、初始化堆栈

6、读OM0,OM1 引脚状态,判断是从NAND FLASH 启动还是从NOR FLASH 启动。如果是从NAND FLASH 启动,把NAND FLASH 的代码拷贝到SDRAM 中,接着程序开始在SDARM 中运行。然后初始化数据段,最后跳转

到main()函数开始运行。如果是从NOR FLASH 启动,判断ResetEntry 值和BaseOfROM 值是否相等,BaseOfROM 值是在ADS 里定义的RO BASE,如果定义为0X30000000,因为ARM 上电ResetEntry 值为0,所以接下来程序会把

相关文档
最新文档