u-boot
文章平均质量分 74
liangkaiming
这个作者很懒,什么都没留下…
展开
-
u-boot 代码中常见汇编指令
<br />在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初始化,进出中断时的环境保护,恢复等对性能有要求的地方。<br />ARM指令集可以分为六大类,分别为数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。 <br />ARM指令使用的基本格式如下: <br />〈opcode〉{〈cond〉}{S} 〈Rd〉,〈Rn〉{,〈operand2〉} <br />opcode 操作码;原创 2010-10-21 10:55:00 · 3355 阅读 · 1 评论 -
U-Boot的移植之(三)实战篇:移植U-Boot到XSBASE270开发板
1. 在U-Boot中添加XSBASE270目标板的定义<br />具体方法可参考第一节,本篇给出部分细节和要点,假定$U-BOOT为源码根目录。<br />############################################################<br /># (1)建立目标板目录<br /># 其中lowlevel_init.S采用adsvix的文件,以开启turbo mode,并注释掉<br /># 其中对pxavoltage.S文件中initPXAvolatage函数的转载 2010-10-29 10:38:00 · 1471 阅读 · 0 评论 -
U-Boot的移植之(四)调试篇:下载U-Boot到目标板进行调试
<br />编译完成之后,得到的几个重要文件是:<br />(1) u-boot.bin: 116K,原始二进制文件,用于下载到启动ROM进行系统引导;<br />(2) u-boot: 384K,ELF格式映像文件,可加载到SDRAM或SRAM中进行调试;<br />(3) u-boot.srec: Motorola S-Records格式映像。<br />(4) System.map: U-Boot映像文件的符号表,各符号的链接地址。<br /> <br />最有效的调试方法是下载到目标板的启动闪存,使转载 2010-10-29 10:47:00 · 2354 阅读 · 0 评论 -
从U-Boot源码看C语言对汇编代码中的符号引用
<br />以下内容来自笔者在中国Linux论坛Linux嵌入技术讨论区的张贴:<br />aaronwong: u-boot中代码的疑问(_armboot_start与_start)?<br />---------------------------<br />我使用的是u-boot-1.3.0-rc2。在cpu/pxa/start.S中,有如下的标号定义: <br />_TEXT_BASE: <br />.word TEXT_BASE /*uboot映像在SDRAM中的重转载 2010-10-29 14:55:00 · 2044 阅读 · 0 评论 -
U-Boot的移植之(一)基础篇:添加新的目标板定义
<br />本文使用最新的U-Boot-1.3.0-rc2。<br />U-Boot本身支持很多开发板,在其源代码中,每个板子都对应一个board/目录下的文件夹(笔者注:这并不确切,因为有的文件夹是供应商名称,下面可以有多个目标板目录,这里只考虑最简单的情况),以及include/configs/目录下的目标板配置头文件。因此,要添加U-Boot对我们的目标板的支持,首先就是要建立目标板文件夹和配置头文件,并修改相关的Makefile。<br />下面以实例说明为U-Boot添加新的目标板定义的步骤和过程转载 2010-10-29 09:55:00 · 2384 阅读 · 0 评论 -
U-Boot的移植之(二)进阶篇:从源代码看系统启动过程
<br />为什么要分析源代码?分析优秀的源代码本身就是一个学习的过程,也是进行深入研究的必经之路。不过在此我们的主要目的并非要研究U-boot或Bootloader技术本身,而仅仅是为了成功的并且恰当的将U-Boot移植到我们的开发板上。只有结合源代码了解了U-boot的系统引导过程,才能在移植和调试过程中保持清晰的思路,才能在碰到困难和问题时从根本上加以解决。<br />在动手分析之前,至少应该对U-Boot的源代码结构有基本的了解,很多参考书都有这方面的介绍,华清远见的《嵌入式Linux系统开发技术详转载 2010-10-29 10:25:00 · 1466 阅读 · 0 评论 -
u-boot向linux内核传递启动参数(详细)
<br />U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式。另外一种就是现在的 2.6内核在用的参数链表 (tagged list) 方式。这些参数主要包括,系统的根设备标志,页面大小,内存的起始地址和大小,RAMDISK的起始地址和大小,压缩的RAMDISK根文件系统的起始地址和大小,当前内核命令参数等而这些参数是通过 struct tag来传递的。U原创 2010-11-03 14:45:00 · 19027 阅读 · 2 评论 -
bootm命令中地址参数,内核加载地址以及内核入口地址
bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x30008000再运行就行,内核会自解压运行(不过内核运行需要一个tag来传递参数,而这个tag是由bootloader提供的,在u-boot下默认是由bootm命令建立的)。通过mkimage可以给内核镜像或根文件系统镜像加入一个用来记录镜像的各种信息的头。同样通过mkimage也可以将内核镜像进行一次压缩(指定-C none/gz原创 2010-11-04 10:47:00 · 14490 阅读 · 2 评论 -
u-boot环境变量的设置与使用
<br /> 看到这个标题,可能觉得这个并没有什么的,其实不然,编好了u-boot了,但是如何来使用确不是那么简单的,想当初我将uboot制作出来后以为全部都搞定了,屁颠屁颠的烧到板子上后可系统就是起不来,为什么了,折腾了很久以后才发现是u-boot的环境变量设置错误,在后来的工作中,我发现一些有一定经验的人在这方面也是模模糊糊的扯不清,所以这里要讨论一下。<br /> <br /> u-boot的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的,有转载 2011-03-10 17:15:00 · 2253 阅读 · 0 评论 -
U-BOOT全线移植分析系列之四——U-boot如何引导Linux内核启动
<br />【摘要】本节介绍了U-boot使用go或bootm启动linux内核的方法。首先介绍了mkimage的参数意义和bootm的详细执行流程。然后分析了如何利用mkimage生成内核映象的方法。对于bootm方式的内核是否压缩、-a、-e、运行地址等16种组合情况,给出了详细的测试过程,提出了6种可用方法种的三种最优解。<br /> <br />【关键字】:U-boot;AT91RM9200;bootm;mkimage;-a;-e;-c<br /> <br />四 U-boot如何引导Linux内核转载 2010-10-28 11:23:00 · 2064 阅读 · 0 评论 -
U-BOOT全线移植分析系列之一――――BOOTLOADER介绍
<br />【摘要】本节介绍了bootloader的基本概念。首先分析了为什么要针对特定的CPU和开发板移植bootloader的必要性。然后介绍了两种如何在裸板中烧写bootloader的方法以及如何确定烧写地址。其次介绍了产品发布的启动加载模式和开发使用的下载模式(更新内核文件系统及bootloader自身).最后介绍了bootloader的两个通用启动阶段的流程及代码特性和运行位置。<br /> <br />【关键词】bootloader,烧写,复位地址,固化loader原创 2010-10-27 14:13:00 · 1421 阅读 · 0 评论 -
U-Boot系列之一: S3C2410内存映射结构
这片文章主要介绍S3C2410的内存映射,主要参考2410的用户手册。 我用的板子是基于三星的2410,三星的内存片选有8个bank,这里所谓的bank我开始也不是很清楚,在网上搜了一通也不知所云,但是当我看了2410的用户手册后才有点明白,这里的bank就是片选(nGCSx),一个片选就表示选中一个bank,在U-Boot中,配制的时候要配制SDRAM和FLASH的bank数,那么如果你的SDRAM或者FLASH就接了一个片选的时候,就定义为1就可以了,其他的类推。 下面是2转载 2010-10-22 14:53:00 · 2171 阅读 · 0 评论 -
U-Boot系列之三:u-boot整体结构及启动代码分析(有加入一些新东西)
<br />一、U-BOOT的目录结构<br />u-boot目录下有18个子目录,分别存放管理不同的源程序。这些目录中所要存放的文件有其规则,可以分成三类。<br /> 第一类目录与处理器体系结构或者开发板硬件直接相关;<br /> 第二类目录是一些通用的函数或者驱动程序;<br /> 第三类目录是u-boot的应用程序、工具或者文档。<br />Board:和一些已有开发板相关的文件,比如Makefile和u-boot.lds等都和具体开发板的硬件和地址分配有关,主要包含SDRA原创 2010-10-22 17:01:00 · 2318 阅读 · 0 评论 -
U-Boot系列之四: start_armboot()函数分析
在上一篇文章中,我们介绍了u-boot启动的时候汇编语言的部分,当时我们进行了一些简单的初始化,并且为C语言的执行建立的环境(堆栈),现在我们看看当从汇编语言转到C语言的时候执行的第一个函数( start_armboot (),在lib_arm/board.c中),该函数进行了一系列的外设初始化,然后调用main_loop (),根据配置来选择是直接加载Linux内核还是进入等待命令模式。 在介绍该函数之前,我们需要看一看几个数据结构,这些是u-boot中几个重要的数据结构:1转载 2010-10-22 17:30:00 · 3137 阅读 · 0 评论 -
U-Boot系列之二: Flash和SDRAM中的布局
<br />本篇文章主要讨论u-boot,Linux内核以及文件系统在Flash以及SDRAM中的布局,我用的板子是华恒的爱好者学习板,基于S3C2410,所参考的也是华恒所给的文档。<br /> 通过u-boot命令flinfo,可以看出,所用的flash是intel TE28F640J3C120,flash一共有64个块,每个块有128K大小,其中u-boot就放在最前面的块中,下面是其中的分配布局,第二个是对应的当把内核以及文件系统搬到内存中时内存的布局。<br /><br />原创 2010-10-22 15:50:00 · 2191 阅读 · 1 评论 -
U-BOOT全线移植分析系列之三 ――U-BOOT在AT91RM9200上的移植
<br />【摘要】本节介绍了U-boot在AT91RM9200上移植的详细过程。首先分析AT91RM9200片内片外启动的详细流程,接着介绍了AT91RM9200启动所需几个文件的执行流程。针对片内片外存储器的映射情况,介绍了bootloader、内核及文件系统的内存分布。最后介绍了uboot在AT91RM9200上移植所需要的基本文件,并根据开发板的配置情况介绍了详细的移植过程。<br /> <br />【关键词】AT91RM9200,U-boot,片内启转载 2010-10-27 14:19:00 · 1391 阅读 · 0 评论 -
U- BOOT源码分析及移植(非常详细)
<br />本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:<br />1、u-boot工程的总体结构<br />2、u-boot的流程、主要的数据结构、内存分配。<br />3、u-boot的重要细节,主要分析流程中各函数的功能。<br />4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 <br />这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以smdk2410为分转载 2010-10-26 11:39:00 · 6275 阅读 · 4 评论 -
U-BOOT全线移植分析系列之二――U-boot基础
<br />【摘要】本节介绍了U-boot的基本概念。首先介绍了U-boot源代码的目录结构,并给出了一个实例。接着简单介绍了U-boot支持的基本功能、常见命令和环境变量。最后详细分析了U-boot启动的两个阶段,重点介绍了加载拷贝代码至RAM中的过程。<br /> <br />【关键词】bootloader,U-boot,环境变量, stage1,位置无关,代码搬移<br /> <br />二U-boot基础<br />现在为Linux开放源代码Boo转载 2010-10-27 14:16:00 · 1524 阅读 · 0 评论 -
u-boot系列分析网址
http://www.onlyblog.com/blog2/enchen/cmd.html?uid=1075&do=blogs&id=1067&page=1原创 2010-10-26 11:41:00 · 1185 阅读 · 0 评论 -
uboot环境变量与内核MTD分区关系
<br />uboot 与系统内核中MTD分区的关系:<br />分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。<br />1:在内核MTD中可以定义分区A~B,C~D。。。。。。并予以绝对的地址赋值给每个分区。我们可以来看看在内核中是怎样来对MTD进行分区的:arch/arm/plat-s3c24xx/common-smdk.c<br />static struct mtd_partition smdk_default_nand_par原创 2011-03-19 15:17:00 · 9753 阅读 · 3 评论