uboot放在哪?

[复制链接]
3030|4
 楼主| areshan 发表于 2011-4-27 12:01 | 显示全部楼层 |阅读模式
刚学UBOOT,还没有搞明白UBOOT放在哪个存储设备上,是NORFLASH,还是NANDFLASH,好像不能放在NANDFLASH中吧,因为NANDFLASH里的程序不能被直接执行,CPU复位后在固定的地址取值执行!
要是这样,那么每个ARM应用方案都有两个ROM,一个NORFLASH,一个NANDFLASH.
helongdm 发表于 2011-4-27 20:05 | 显示全部楼层
在嵌入式设备中,通常将引导程序放置在不易丢失的存储器的开始地址或者是系统冷启动时PC寄存器的初始值。通常,在台式机或其他系统上,BIOS将控制移交给引导装载程序。而在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。引导程序完成自己的任务后,也将控制权移交给操作系统。(摘自嵌入式linux应用开发)
lelee007 发表于 2011-4-27 20:27 | 显示全部楼层
这要看用的是神码ARM了,嘿嘿,2410这样的如果设置成从NAND FLASH启动的话,上电CPU会先COPY            NAND前4K到小石头里边,然后从小石头运行,4K的代码,可以作很多很多事情吧,比PC的512字节强大太多啦,HOHO~~~~~

老乡现在跟哪儿上班咧?
Alex_lyf 发表于 2011-4-28 23:45 | 显示全部楼层
楼上正解
helongdm 发表于 2011-5-3 12:15 | 显示全部楼层
当从NorFlash启动时, 要把flash芯片的首地址映射到0x00000000位置, 系统启动后, 启动程序本身把自己从
flash中搬到RAM中运行. 搬移后的各段起始地址, 由以上宏来确定.
   当从NandFlash启动时, S3C2410会自动把前NandFlash的前4k搬到S3C2410的内部RAM中,并把内部
RAM的首地址设为0x00000000,CPU从0x00000000开始执行. 所以, 在nandFlash的前4k程序中,必须包含从
NandFlash把BootLoader的其余部分装入RAM的程序.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

728

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部