S3C2440嵌入式Linux开发板如何启动?

描述

1,RAM的分类

RAM分为两大类,一种称为静态RAM(static RAM/SRAM),这种RAM读写速度非常快,但价格昂贵,通常在要求苛刻的地方使用,比如CPU的一级二级缓冲;

第二种为动态RAM(Dynamic RAM/DRAM),DRAM的速度比SRAM慢很多,但依然远比ROM快,且价格比SRAM便宜,计算机的内存就是DRAM;

计算机使用的内存称为DDR RAM(Date-Rate RAM),它的基本特性与DRAM相同,区别是它可以在一个时钟读写两次数据,这样数据传输速度就加倍了。(我们常说的“内存”基本等同于DRAM)

2,两种FLASH

      由于FLASH本身具备电子可擦除可编程(EEPROM)的性能,不会断电丢失数据且可以快速读取数据,因此几乎全面替代了ROM,被用于存储bootloader或者操作系统或者直接当U盘使用;

       FLASH分为Nor flash与Nand flash,Nor flash与DRAM类似,用户可以直接运行装载在nor flash中的代码,由于价格比SRAM便宜,因此可以减少SRAM容量进而节约成本;

       用户使用Nor Flash还是Nand Flash取决于成本与空间,通常,容量不大且要求读取速度的,会使用Nor Flash,而容量较大的信息则存储于Nand Flash;

举例

问:S3C2440嵌入式Linux开发板如何启动?

已知:这块开发板来自三星,它的存储包括:一块4MB NOR FLASH,一块256MB NAND Flash,64M 内存;

方法一:从NOR Flash启动

Nor Flash启动模式下,将编译完成的bin文件烧入Nor Flash,Nor Flash的基地址是0地址,片内RAM的0地址的0x40000000,Nor Flash直接与CPU传输数据,不需要通过片内RAM的中转就可以启动并运行;

方法二:从NAND Flash启动

上一种方法可以正常启动,但Nor Flash价格较高,性价比低,因此可以采用方法二,S3C2440内部自带一块容量为4K的bootSRAM(叫做起步阶石“Steppingstone”), 0地址处为bootSRAM, 启动前他里面是空的,启动后S3C2440 先通过硬件机制将NANDFLASH的前4K内容拷贝他里面去,之后从0地址处开始执行。

S3C2440的NAND控制器会自动把NAND FLASH中的前4K代码数据搬到内部SRAM中(地址为0x40000000),同时还把这块SRAM地址映射到了0x00000000地址,CPU从0x00000000位置开始运行程序。

       注:

       如果程序编译链接后大小小于4K,那么系统的启动代码中无需将程序从NANDFLASH 搬运到SDRAM 中后再去执行 ,因为所有的程序在启动时即全部由NANDFLASH 拷贝到了bootSRAM中执行了;

       如果系统中所编的程序编译后大于4K,那么系统的启动代码中需要包含一段将系统的全部程序从NAND FLASH 搬运到SDRAM的代码,系统启动时 只将NAND FLASH 的前4K 拷贝到BootSRAM中;由于程序在NAND FLASH中是无法被执行的,所以前4K被拷贝到BootSRAM中需要有能将程序拷贝到SDRAM中的代码。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分