uboot
JINCHENG121
这个作者很懒,什么都没留下…
展开
-
uboot启动感悟
arm内部有rom,该rom有代码,上面驻留着系统真正启动的代码,和uboot没有关系。通过该段代码根据不同的启动模式进行不同的启动方式:如果是nand会自动读取uboot前4k的代码到片内sdram执行,该代码要完成cpu的初始化和ram初始化(初始化ram为外围的)等转载 2011-09-25 15:22:09 · 820 阅读 · 0 评论 -
uboot start.S分析
#include #include #if defined(CONFIG_S3C2410)#include #elif defined(CONFIG_S3C2440)//include\configs\smdk2440.h中定义。#include #e转载 2011-10-04 12:20:48 · 670 阅读 · 0 评论 -
uboot源码分析(4)
main_loop()函数main_loop()函数做的都是与具体平台无关的工作,主要包括初始化启动次数限制机制、设置软件版本号、打印启动信息、解析命令等。(1)设置启动次数有关参数。在进入main_loop()函数后,首先是根据配置加载已经保留的启动次数,并且根据配置判转载 2011-10-04 12:36:46 · 963 阅读 · 0 评论 -
uboot源码分析(3)
正式开始了第二阶段:relocate部分的代码负责把U-Boot Stage2的代码从Flash存储器加载到内存,代码如下:163 #ifndef CONFIG_SKIP_RELOCATE_UBOOT 164 relocate: 165 adr转载 2011-10-04 12:36:16 · 819 阅读 · 0 评论 -
uboot源码分析(2)
取出CPSR寄存器的值,CPSR寄存器保存当前系统状态,使用比特清除命令清空了CPSR寄存器的中断控制位,表示清除中断。设置了CPSR寄存器的处理器模式位为管理模式,然后在第117行写入 CPSR的值强制切换处理器为超级保护模式。定义看门狗控制器有关的变量,根据平转载 2011-10-04 12:35:48 · 789 阅读 · 0 评论 -
uboot源码分析(1)
1.U-Boot系统加载器U-Boot是一个规模庞大的开源Bootloader软件,最初是由denx(www.denx.de)发起。U-Boot的前身是PPCBoot,目前是SourceForge(www.sourceforge.net)的一个项目。最初的U-Boot仅支转载 2011-10-04 12:35:20 · 993 阅读 · 0 评论 -
简要分析Uboot是如何启动内核! 分类: uboot深入浅出
1.uboot启动内核的代码缩减如下:s = getenv ("bootcmd");debug ("### main_loop: bootcmd=\"%s\"\n", s ? s : "");if (bootdelay >= 0 && s && !abortboot转载 2011-10-04 12:34:15 · 962 阅读 · 0 评论 -
uboot-1.1.6 /lib_arm/board.c分析
//我们以arm为例,该文件位于lib_arm/board.c/** All attempts to come up with a "common" initialization sequence* that works for all boards and arch转载 2011-10-04 12:33:24 · 847 阅读 · 0 评论 -
2440init.s 汇编代码分析
板子上电后就会从这里开始执行,主要完成基本初始化,还有判断是从nor还是nand启动,再实现把程序搬到SDRAM当中,在搬运成功后再跳到main函数里面执行。我们现在开始来看看它的具体代码吧!GET和INCLUDE的功能是相同的,功能都是引进一些编译过的文件。 GET转载 2011-10-04 12:29:57 · 878 阅读 · 0 评论 -
ARM 的DCD指令
初学ARM,DCD指令给我留下了深刻印象,它的使用较为广泛,而且不易理解,现就对它做些小结:在中断向量表中不直接LDR PC,"异常地址".而是使用一个标号,然后再在后面使用DCD定义这个标号,其原因是:LDR 指令只能跳到当前PC 4kB 范围内,而B 指令能跳转到32转载 2011-10-04 12:28:52 · 1255 阅读 · 0 评论 -
main_loop()函数
main_loop()函数做的都是与具体平台无关的工作,主要包括初始化启动次数限制机制、设置软件版本号、打印启动信息、解析命令等。(1)设置启动次数有关参数。在进入main_loop()函数后,首先是根据配置加载已经保留的启动次数,并且根据配置判断是否超过启动次数。代码如下:转载 2011-10-04 12:22:54 · 753 阅读 · 0 评论 -
NandFlash读写过程
一、结构分析 S3C2410处理器集成了8位NandFlash控制器。目前市场上常见的8位NandFlash有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g08、k9f2g08的数据页大小分别为512Byte、2kByte、2kByte转载 2011-10-04 12:30:47 · 1400 阅读 · 0 评论 -
u-boot-2009.08在2440上的移植详解 2
二、移植步骤上接:u-boot-2009.08在2440上的移植详解(一)4)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nor Flash的支持)。通常,在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动转载 2011-10-04 12:27:24 · 507 阅读 · 0 评论 -
u-boot-2009.08在2440上的移植详解1
一、移植环境主 机:VMWare--Fedora 9开发板:Mini2440--64MB Nand,Kernel:2.6.30.4编译器:arm-linux-gcc-4.3.2.tgzu-boot:u-boot-2009.08.tar.bz2二、转载 2011-10-04 12:26:39 · 660 阅读 · 0 评论 -
ARM 汇编 伪指令 MACRO及MEND
MACRO伪操作标识 宏定义的开始,MEND标识宏定义的结束。用MACRO 及MEND定义一段代码,称为宏定义体,这样在程序中就可以通过宏指令多次调用该代码段语法格式MACRO{$label} macroname {$parameter {,$paramet转载 2011-10-04 12:24:43 · 504 阅读 · 0 评论 -
关于ARM9协处理器CP15及MCR和MRC指令
在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。访问CP15寄存器的指令MCR ARM寄存器到协处理器寄存器的数据传送MRC 协处理器寄存器到ARM寄存器的数据传转载 2011-10-04 12:24:00 · 662 阅读 · 0 评论 -
u-boot-2009.08在2440上的移植详解3
移植步骤上接:u-boot-2009.08在2440上的移植详解(二)5)准备进入u-boot的第二阶段(在u-boot中添加对我们开发板上Nand Flash的支持)。目前u-boot中还没有对2440上Nand Flash的支持,也就是说要想u-boot从转载 2011-10-04 12:28:07 · 610 阅读 · 0 评论