
X-load
delphi308
自己动手,丰衣足食!
展开
-
嵌入式Linux引导过程之1.4——Xloader的ddr_init
<br />--by FeCen<br />这里我们来看XLOADER_ENTRY中调用的第二个标号ddr_init处的代码,这部分代码的作用是对外部内存SDRAM进行初始化,在我spearplus开发板中,使用的是DDR SDRAM。在调用ddr_init之前,外部内存是不能用的,因为外部内存的时钟以及控制寄存器都还没有初始化,因此此时只有芯片内部的SRAM以及在sys_init的时候已经初始化了的Serial Flash、UART以及gmac是可用的。<br />而ddr_init的作用就是根据板子使用转载 2011-05-30 15:11:00 · 1631 阅读 · 0 评论 -
嵌入式Linux引导过程之1.5——从BootRom到Xloader
<br />--by FeCen<br />在开始看Xloader_Entry的代码之前,我想先总结一下从芯片上电到开始运行Xloader的代码的过程,这是我目前理解的一个过程,可能有所出入,待以后继续完善。<br />当系统上电之后,首先会将PC寄存器设置成BootRom里面的代码对应的一个地址。BootRom是芯片内部集成的一块很小的存储区,里面一般会固化一段启动代码。至于BootRom所占用的地址空间,每个芯片的定义可能会有所不同,具体的可以参考芯片的用户手册中的Memory Map部分的说明。在sp转载 2011-05-30 15:07:00 · 1544 阅读 · 0 评论 -
嵌入式Linux引导过程之1.1——Xloader的xloader.lds
<br />--by FeCen <br />本文中的所有代码版本都是基于ST的SpearPlus开发板的。<br />xloader是在系统上电之后,执行完ROM中的frimware后最先开始执行的用户程序,它的体积很小,执行的功能也很简单,主要是对系统时钟以及外部SDRAM进行初始化,初始化完成之后就检查Flash中的uboot image是否准备好,如果准备好了就将Flash中的uboot image根据image header中指定的load address加载到外部SDRAM中,然后就跳转到ubo转载 2011-05-30 14:57:00 · 995 阅读 · 0 评论 -
嵌入式Linux引导过程之1.6——Xloader的Xloader_Entry
<br />--by FeCen <br />我们已经看完了XLOADER_ENTRY里调用的前两个标号的代码,分别是sys_init和ddr_init。对于一个嵌入式系统来说,这两个部分的代码是在一开始就执行的,至少是在从bootrom里面的firmware出来之后最初执行的代码,也是我们自己能够控制的最初的代码(在bootrom里面的firmware是在芯片出厂的时候就固化在芯片里面的了,一般情况下,我们是无法改变里面的代码的)。<br />正因为如此,对于sys_init和ddr_init来说,需要做原创 2011-05-30 15:09:00 · 2786 阅读 · 0 评论 -
关于xloader和uboot的几个初级问题
<br />在看代码的过程中遇到的几个问题,发邮件问了xf,得到了满意的回答,对xf表示感谢。<br />这里将问题及答案记录下来,作为参考,蓝色的字体为xf给我的回答。<br /> 一、为什么需要xloader,xloader所做的工作为什么不直接就让uboot做,而要单独的分出来呢?<br /><br />我看了xloader的代码,非常短小,所做的工作也很简单,我说说我对代码的理解,不知道正不正确:<br />在最初始的时候xloader首先对系统进行了初始化(sys_init和ddr_init),然转载 2011-05-30 15:49:00 · 1310 阅读 · 0 评论 -
编译x-load
1,下载x-load-v2(以此版本为例)2,编译步骤: make distclean make 名字_config(如:make omap3evm_config) make 生成x-load.bin3,下载signGP.c , gcc signGP.c -o signGP4,把signGP拷到x-load-v2文件去5,./signGP x-load.bin生成x-load.bin.ift原创 2011-05-31 16:04:00 · 2340 阅读 · 2 评论