您的位置 首页 制造

2440发动过程

S3C2440支持两种启动方式:NANDFLASH和NORFLASH。网上有很多文章分析TQ2440的启动文件2440inits。介绍的很详细,我这里只是把S3C2440

S3C2440支撑两种发动方法:NAND FLASH和NOR FLASH。

网上有许多文章剖析TQ2440的发动文件2440init.s。介绍的很具体,我这儿仅仅把S3C2440上电后的程序流程描绘下。
不论在哪种发动方法下,ARM上电发动都是从0X00000000开端运转。下面是复位程序进口。
AREA Init,CODE,READONLY
ENTRY
ResetEntry
b ResetHandler
……
ResetEntry的值在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,所以接下来程序会把NOR FLASH里的程序复制到SDRAM中。假如RO BASE界说为0,将直接在NOR FLASH里运转。然后初始化数据段,最终跳转到main()函数开端运转。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/262921.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部