uboot是什么】的更多相关文章

0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正…
uboot环境配置 通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核.这个配置主要是通过uboot内建的"set 变量名 变量值+save"设置环境变量的方式进行配置,下面是我采用的uboot的环境变量,下面是我用的环境变量设置: #pri #即printenv baudrate=115200 bootargs=root=/dev/nfs nfsroot=192.168.0.50:/n…
本次移植跟以往的不同之处是采用了spl来引导u-boot,参考了博客http://blog.csdn.net/fulinus/article/details/42738641 下载链接:http://pan.baidu.com/s/1bnlRKgn 使用方法: 1. 编译 make tq2440_defconfig make 2. 然后会在u-boot根目录下生成u-boot.bin,在spl目录下会生成u-boot-spl.bin,目前的分区是: u-boot-spl.bin (1M) u-b…
题外话: 最近一直在学习u-boot的源代码,从代码量到代码风格,都让我认识到什么才是真正的程序.以往我所学到的C语言知识和u-boot的源代码相比,实在不值一提.说到底,机器都是0和1控制的.感觉这很像我们中国<易经>里的一句话:"太极生两仪,两仪生四象."两仪指的就是阴阳.天地,对立而又相互依存的一切,它们生成了天地万物.简单的0和1就构成了我们现在所用的操作系统,各种软件.硬件也是由高低电平控制,0和1就是万物. 刚刚在读一本科幻小说,里面提到一种叫做"脑域…
Hi,大家好!我是CrazyCatJack,你们可以叫我CCJ或者疯猫.今天我给大家带来的是u-boot的源代码汇编段分析,以后还会给大家讲解后续的C代码,请持续关注哦^_^ 先简单说一下u-boot,在嵌入式开发中,u-boot起着至关重要的作用:读出嵌入式系统内核并启动内核.因此非常有必要对u-boot进行理解,了解其是如何启动内核的,这样我们才能随心所欲地初始化系统,无论基于什么架构,什么开发板,都能够轻松的去启动内核.这一点难道不是最有吸引力的吗? 如果大家有看到我的前一篇博客,就会对u…
第一次写技术博客,还有些兴奋呢.我是CrazyCatJack,大家可以叫我CCJ或者疯猫.我即将成为一名嵌入式Linux的驱动工程师,现在还是一枚大四狗,呼呼~大学期间做了一些项目和比赛,都是基于32位的MCU(例如STM32.Freescale K60),这些呢都是根据网上的视频,PDF自学的.现在想更进一步,学习一下嵌入式Linux.UCOS-II等嵌入式系统.因为给板子加系统是一个必然趋势,控制会越来越复杂,内容也越来越多的.有一个系统统筹管理是非常棒的选择.好了,废话少说,今天开始我的第…
简单介绍一下uboot的基本配置流程.和绝大多数源码编译安装一样,uboot在执行make之前需要执行make XXXconfig来配置相关信息,而且uboot本身是针对多种平台的bootloader,所以编译的过程也会有一点小麻烦,需要对它的源码结构有一点了解.移植uboot,大体上的流程是:配置uboot->编译->配置相关平台的启动程序->烧录 选平台&工具链 平台就是CPU的架构,即exynos4412的平台就是arm,所以ARCH=arm,交叉编译工具链我这里用的是ar…
make jCPU_NUM 以CPU_NUM数量同时进行编译CPU_NUM = 当前PC的处理器数量*处理器的核心数 从上电开始1.系统上电,执行固化在IROM中的代码,目的初始化基本的系统功能,已经加载BL1代码2.BL1代码继续进行初始化,初始化DRAM控制器(400000000-80000000可用)3.uboot.bin开始在0x43E00000 地址位置开始执行 common(uboot命令)556 U_BOOT_CMD( ) 这个宏函数 设置了当前命令执行以及需要执行函数 do_mo…
源码阅读方法1.源码目录结构2.配置(支持当前使用的硬件)3.编译(Makefile)4.启动流程 工具使用1.在同一文件查找 shitf+8 N n进行上下查找 2.在工程目录中 ctags uboot版本选择:2013 uboot 2010版本前 只能识别zImage 文件 uboot 2013 能够识别uImage文件 选用原则:1.适用于当前开发板2.资料问题 uboot目录结构平台相关arch(架构) board(板级结构) 平台无关common(uboot命令) disk(磁盘) d…
(环境如下:U-BOOT  S3C2440  LINUX) 记录自己的学习过程,如果分析有问题,请帮忙指正. 最近在研究U-BOOT的代码,其中的环境变量个人觉得用处非常大,所以重点学习和分析一下. U-BOOT的第一个执行的文件为start.S,可以从链接文件分析出来(u-boot.lds) 进入U-BOOT执行过程如下: 1.设置CPU进入SVC32模式(set the cpu to SVC32 mode) 2.关看门狗(turn off the watchdog ) 3.关中断(mask…
动机 设备启动时间往往是项目立项时的一项重要技术指标.快速的启动时间意味着设备宕机时间的缩短,系统的快速恢复,也能改善用户使用时的体验感受,是一项重要的市场竞争力. 准备 优化启动时间之前,我们首先要了解下我们设备的主要启动流程,如下图所述,设备启动流程主要包含:硬件.bootloader.操作系统和应用程序4个部分. 硬件部分包括: 电源.时钟.复位时序.存储介质以及其他系统启动时需要依赖的外设等: Bootloader(此处为UBoot)包括: CPU.cache.网卡.存储的复位解复位时序…
需求分析 在2014年以前,uboot没有一种类似于linux kernel的设备驱动模型,随着uboot支持的设备越来越多,其一直受到如下问题困扰: 设备初始化流程都独立实现,而且为了集成到系统,需要修改核心公共代码(如init_sequence) 很多子系统只允许一个驱动,比如无法同时支持USB2.0和USB3.0 子系统间的交互实现各异,开发难度大 没有个统一的设备视图(如linux的/sys) uboot driver model(U-Boot驱动模型,以下简写dm)的提出就是为了解决这…
******************************************day:2014/10/14**************************uboot*****************************************************1.为什么要有uboot?2.uboot是用来干嘛的?3.uboot是怎么工作的?4.uboot结束后的结果是怎么样的? 为了回答以上的问题,或许问题还不止这些,根据我个人的理解来谈谈,请观看者注意版权问题哈. 起初龙芯…
本文转自迅为4412开发板实战教程书籍:http://www.topeetboard.com 迅为是基于Ubuntu12.04.2平台做开发,所有的配置和编译脚本也是基于此平台,没有在其它平台上测试过.如果你对Linux和Android开发很熟悉,相信你会根据错误提示逐步找到原因并解决,错误提示一般是选用的平台缺少了某些库文件或者工具等原因造成的:建议初学者使用和迅为一致的平台. Uboot.Kernel以及Android等的编译环境看似复杂,其实只需要抓住以下四个要点. (1)Uboot.Ke…
Windows操作系统BIOS(设置) Windows系统 文件系统 驱动程序 应用程序 linux操作系统bootloader(引导系统) kernel(内核) 文件系统 驱动程序 应用程序 交叉编译:程序编译与执行不在同一台机器 交叉编译工具链:交叉编译需要使用的工具 gcc编译流程1.预处理 cpp test.c -o test.i2.编译 ./cc1 test.i (test.s /usr/lib/gcc/i686-linux-gnu/4.8)3.汇编 as test.s 4.链接 ld…
在我拿到开发板以后,uboot都是编译好的,但是我不知道它是如何生成uboot.bin文件的.经过一番摸索.我也会编译uboot了. #cd /home #mkdir study //创建工作目录 **首先把uboot的压缩包通过samba复制到linux中home下的study目录中. #tar xvf uboot.tar.bz2   /解压 #ls   //这时会发现ubootuboot目录 #cd uboot #ls   //查看解压后的文件 #vi Makefile 在vi中输入/210…
uboot设置环境变量之后,不能保存在EMMC中,出现错误. MX6SDL SABRESD U-Boot > saveenv Saving Environment to SPI Flash... Environment SPI flash not initialized 板子上没有flash,使用EMMC. 查找出错地方,发现uboot调用的是uboot/common/env_sf.c中的saveenv函数. 查看uboot/common/Makefile COBJS-$(CONFIG_ENV_…
编译内核的时候出现错误:"mkimage" command not found - U-Boot images will not be built 参考链接 http://blog.csdn.net/wen0605/article/details/8448907 make uImage的时候要用到uboot/tool/mkimage工具. 将mkimage放到/usr/bin等目录中即可或者将mkimage的路径添加到环境变量中. Tony Liu 2016-12-15,Shenzhe…
转自:http://www.wowotech.net/u-boot/fit_image_overview.html 1. 前言 Linux kernel在ARM架构中引入设备树device tree(全称是flattened device tree,后续将会以FDT代称)的时候[1],其实怀揣了一个Unify Kernel的梦想----同一个Image,可以支持多个不同的平台.随着新的ARM64架构将FDT列为必选项,并将和体系结构有关的代码剥离之后,这个梦想已经接近实现: 在编译linux k…
uboot是怎么启动kernel的呢? 先熟悉一下uboot的命令吧. 首先是md, 查看内存. OpenJTAG> md 000000000: ea000014 e59ff014 e59ff014 e59ff014    ................00000010: e59ff014 e59ff014 e59ff014 e59ff014    ................00000020: 33f80140 33f801a0 33f80200 33f80260    @..3...3…
延续上一篇, 烧录完成后, 串口屁毛都没有了, 运行了代码比较工具, 看看问题在哪. board/100ask24x0/   没有问题, 除了lowlevel_init.S, 不过我没在uboot中用到网卡, 不用理会先. 再次编译居然出错了: 100ask24x0.c: In function `board_init':100ask24x0.c:12: warning: unused variable `clk_power'100ask24x0.c: In function `board_fl…
下面是韦老师的uboot移植攻略: A. 开发板的相关拷贝与修改 1. 在board文件夹下面, 将原来的smdk2410复制为100ask24x0目录, 并将smdk2410.c改名为100ask24x0.c 2. 将include/configs/smdk2410.h复制为100ask24x0.h 或者直接copy下面: /* * (C) Copyright 2002 * Sysgo Real-Time Solutions, GmbH <www.elinos.com> * Marius G…
接下来分析一下韦老师的uboot补丁: ---------------------------------------------------------------------------------------------------------------------------------------------------- --- u-boot-1.1.6/board/100ask24x0/100ask24x0.c    1970-01-01 07:00:00.000000000 +…
在u-boot跟linux内核(台湾叫核心)编译过程中, 有个东西叫补丁, 其实通过某些补丁文件, 可以知道它对原始的版本做过哪些修改, 比前面那个帖子的挨个文件挨个文件的修改, 显得要高级那么一丢丢. 打开韦老师的u-boot的patch文件, 可以发现有这些东西: diff -urN u-boot-1.1.6/board/100ask24x0/100ask24x0.c u-boot-1.1.6_jz2440/board/100ask24x0/100ask24x0.c--- u-boot-1.…
基于天翔的老师的课程, 他的博客在这儿: http://blog.csdn.net/johnmcu/article/details/6561311 注明不能转载, 就重新写一下吧: 1. 安装韦东山的虚拟版的ubuntu 9, 里面交叉编译啥的都弄好了, 直接用, 然后把workstation共享目录打开, 指向uboot的压缩包所在目录. 2. 在虚拟机上, 打开ssh, 通过ssh, 进/mnt/hgfs/ 把uboot压缩包解压了. 3. 编辑Makefile, 在smdk2400下面增加…
刷入Breed BootLoader: 因为这个K1路由器可以开启telnet服务,所以此处刷Breed可以不使用编程器刷Flash芯片的方法进行. 1.打开K1路由器的Telnet服务. 电脑通过有线的方式连接路由器(为了不必要的麻烦,这里建议用有线连接),在浏览器中输入: http://192.168.2.1/goform/Diagnosis?pingAddr=192.168.2.100|echo""|telnetd 2.在电脑上打开Telnet软件,连接路由器. Password…
u-boot的环境变量用来存储一些经常使用的参数变量,uboot希望将环境变量存储在静态存储器中(如nand nor eeprom mmc). 其中有一些也是大家经常使用,有一些是使用人员自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量: bootdelay    执行自动启动的等候秒数     baudrate     串口控制台的波特率     netmask     以太网接口的掩码     ethaddr       以太网卡的网卡物理地址     bootfi…
1.U-Boot启动内核的过程可以分为两个阶段: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 启动内核 关于uboot 启动分析以下这条链接写的不错,使用的是MINI2440平台: http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 2.编译…
声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果您觉得有必要注释,希望指出.再次强调该贴的大部分功劳应该归功于那些原创者,由于粗心,我没有留意参考的出处.我的目的是想让大家共同进步.希望大家念在我微不足道的心意,能够积极回馈,以便使帖子更加完善.以后还会把整理的东西陆续公布出来,谢谢光临!! 大多数bootloader都分为stage1和stag…
1.U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目.U-Boot的作用是系统引导.U-Boot从FADSROM.8xxROM.PPCBOOT逐步发展演化而来.其源码目录.编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点. 2.U-Boot不仅仅支持嵌入式Linux系统的引导,它还支持NetBS D, VxWorks, Q…