AM1808的RBL UBL
源地址:http://blog.csdn.net/chlputi/archive/2011/05/11/6411004.aspx ? RBL?(?ARM ROM Boot Loader?)在芯片出厂的时候就已经烧写到?ROM?里了,这不需要大家关心,上电后,?RBL?会自动从?EMIFA EM_CS2 memory space (0x0200 0000).?执行指令,这个地址就是?NAND FLASH?或?NOR FLASH?的片选起始地址。当你的系统设置为?NAND BOOT?的时候,?UBL?(?User Boot Loader?)是必不可少的,否则?RBL?不能直接把?UBOOT?给?BOOT?起来,因为?RBL?只支持?14K NAND FLASH?的?BOOT?程序,而?UBOOT?编译出来后的?bin?文件一般都大于?80K?,特别是版本越高,?UBOOT?的代码越大,所以这时候就需要写一个?UBL?。?UBL?从?NAND FLASH?读取?UBOOT?,然后把?UBOOT COPY?到?DDR2(RAM)?的相关地址上,然后把?UBOOT?给?BOOT?起来。根据?TI DAVIN RBL?的规定,不同型号的?NAND FLASH?,?UBL?保存的地址是不同的,?512?字节?PAGE?的?NAND?(即?SMALL PAGE?),保存的地址是:?0x00004000(16K,32页)?;?2048?字节?PAGE?的?NAND?(即?LARGE PAGE?)保存的地址是:?0x20000?(128K,64页)。 ? ? ------------------------------------------------------我想说的话----------------------------------------------------------------------- 看来TI的片子与三星的有所不同。 据我了解,三星的片子上电后会自动从nandflash中搬移4kb到RAM,然后这4K的程序会完成后面的搬移工作。 而TI的片子,说RBL会从nand里执行指令,所以先nand的头上要放个ubl来帮助uboot boot起来。 不知道我这样理解是否正确。 —————————————————————————————————————————————— 2011-8-11 添加 RBL,UBL,Uboot的关系:RBL=ROM Bootloader,UBL=user Bootloader。RBL为TI固化在芯片ROM中的bootloader,OMAP上电启动过后首先将运行RBL,然后通过RBL加载UBL,再通过UBL加载uboot,而uboot就是用来加载Linux内核的。如果在具体应用过程中不需要使用到Linux(实际上一般都会用到的),uboot甚至是UBL都可以省去。UBL为一级Bootloader,uboot为二级Bootloader,一级Bootloader的大小是有限制的(应该是64KB以下,没查到具体数值),这也是为什么会有二级Bootloader的原因。如果一个应用程序小于这个大小,那么我们可以不需要烧写UBL,而只用烧写该应用程序相应的bin文件(下面第3点将阐述如何得到这个文件)就行了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在 cocos2d-x 中获取纹理的像素值
- virtualbox安装oracle linux后找不到eth0
- react-native – 使用hashtag将React Native Post图像发送到
- 如何在startElement中使用SAX解析器从XML获取元素的值?
- react生命周期分享,无论你是否看过!!!
- EXE打包机/ EXE压缩机应用于C#/ VB.net
- 王立平--EditText中在xml中设置Text,可以获取到。但是自己
- Flex编译器参数中-swf-version与-target-player之关系
- 如何使用AJAX----计算机世界报
- react-native – 参数panHandlers处理多个PanResponder?