uboot的官网可以通过谷歌搜索得到,显示结果第一个链接就是. 官网:: http://www.denx.de/wiki/U-Boot ftp下载: ftp://ftp.denx.de/pub/u-boot/ 本文以uboot 2014.07为例,一般第一步总是类似这样: make smdkc100_config 然后执行make 先看Makefile第481 行 %_config:: outputmakefile @$(MKCONFIG) -A $(@:_config=) 当输入make sm…
前言: 之前半年一直在嵌入式Linux移植中挣扎,不知道该从哪个方面开始入手,也失败了很多次,苦思了很久最终决定先从uboot开始. uboot版本的不同会导致添加板子的时候的配置方法会不一样.由于手头已经有了一套开发板供应商提供的uboot/kernel/rootfs,现成的学习应该会比较方便. 为什么有现成的uboot放着不用,硬是要自己移植呢,不是自己的,没有掌握就意味着靠不住. 准备移植 s5p6818,采取 2014.07 版本的uboot.作为嵌入式移植学习的第一步. 参考文档: <…
一.概述 u-boot的子目录Makefile是整个Makefile体系的重要组成部分,决定了对应子目录的编译过程. 二.分析 以cpu/arm920t/Makefile为例进行说明 (1)首先,调用顶层目录定义的编译规则config.mk include $(TOPDIR)/config.mk (2)然后,定义生成的所有目标,例如下边定义的代码的所有目标是 $(obj).depend $(START) $(LIB) LIB = $(obj)lib$(CPU).a START = start.o…
1.编译uboot前需要三次make make distcleanmake x210_sd_configmake -j4 make distclean为清楚dist文件. make x210_sd_config  跳转执行mkconfig用来配置并生成config.mk(board/samsung/x210目录下为指定链接地址的与主uboot目录的config.mk不同) autuconfig.mk 2.框图 3.uboot主Makefile分析 3.1.uboot version确定(Make…
VERSION = 1 PATCHLEVEL = 3 SUBLEVEL = 4 EXTRAVERSION = U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) VERSION_FILE = $(obj)include/version_autogenerated.h (1)uboot的版本号分3个级别:VERSION:主板本号PATCHLEVEL:次版本号SUBLEVEL:再次版本号EXTRAVERSION:另…
由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我们今天以三星的s3c2440来分析Makefile.我们今天通过对u-boot的分析要得到以下内容: 1.        U-boot的入口 2.        链接地址 l  U-boot配置过程分析 我们在编译u-boot之前首先要进行u-boot的配置,以三星的s3c2440为例我们的配置命令是make smdk2440_config,所以我们在u-…
1.u-boot制作命令 make forlinx_nand_ram256_config: make all; 2.顶层mkconfig分析,参考 U-BOOT顶层目录mkconfig分析 mkconfig脚本执行后会生成以下3个文件,这些文件中提供的变量会在Makefile中其它地方使用. MKCONFIG := $(SRCTREE)/mkconfig forlinx_nand_ram256_config : unconfig @$(MKCONFIG) smdk6410 arm s3c64xx…
一. Makefile 配置 1.1. make xxx_config 1.1.1. 笔者实验时是make x210_sd_config a. x210_sd_config是Makefile下的一个目标 1.2.1. x210_sd_config 相关代码分析 a. @表示静默执行 b. MKCONFIG是Makefile的一个变量,它所表示的是一个mkconfig脚本文件 MKCONFIG := $(SRCTREE)/mkconfig c. $(@:_config=)其结果是x210_sd,它…
一. UBoot配置编译初步分析 1. UBoot源码结构 (1)UBoot工程项目中的文件可以分为3类 ① 第1类目录:与处理器体系结构或开发板硬件直接相关 ② 第2类目录:一些通用的函数或驱动程序 ③ 第3类目录:UBoot的应用程序.工具或文档 2. UBoot的配置编译 make <board_name>_config make 3. UBoot的配置编译初步分析 (1)顶层目下的Makefile:每一种开发板在顶层Makefile中都有自己的配置规则 mini2440_config…
U-Boot启动过程完全分析 1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 (2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 调用内核 1.1.1             U-Boot启动第一阶段代码分析 第一阶段对应的文件是cpu/arm920t/s…
转载自:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 (2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 调用内核 1.1.1   …
2.1       U-Boot Makefile分析 2.1.1             U-Boot编译命令 对于mini2440开发板,编译U-Boot需要执行如下的命令: $  make  mini2440_config $  make  all 使用上面的命令编译U-Boot,编译生成的所有文件都保存在源代码目录中.为了保持源代码目录的干净,可以使用如下命令将编译生成的文件输出到一个外部目录,而不是在源代码目录中,下面的2种方法都将编译生成的文件输出到 /tmp/build目录: $ …
Android发展的一个重要方面Makefile分析 随着移动互联网的发展,移动开发也越来越吃香了.眼下最火的莫过于android.android是什么就不用说了,android自从开源以来,就受到非常多人的追捧.当然.一部人追捧它是由于它是Google开发的.对一个程序 员来说,一个系统值不值得追捧得要拿代码来说话.我这里并不打算分析android的代码.而是android的makefile.或许大家已经知道了在android源代码里,我们能够看见非常多makefile文件,起初我也不明确.经…
上一篇博文:<mini2440移植uboot 2014.04(五)> 代码已经上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 (十)添加nand 启动代码 nand启动是uboot中最让人困惑的东西,它用到SPL(secondary program loader),对SPL进行讲解的文档比较少,初次接触有点无所适从的感觉. 主要参考文档可以查看当前版本uboot下的doc/README.SPL和doc/README…
最新版的uboot添加了很多新功能,我决定在最新版代码基础上重新移植一遍加深理解. 我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) 参考我的两篇博文: <mini2440移植uboot 2011.03(上)> <mini2440移植uboot 2011.03(下)> 还有其他几篇文章: <…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文章: <u-boot-2011.09在ST2410上的移植-启用CS8900网卡功能> 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) SST39VF1601芯片手册(下载地址) 前一篇博文:<mini2440移植uboot 2014.04(一)> (四)添加nor flash支持 我的m…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文档: s3c2440手册(下载地址) mini2440电路图(下载地址) K9F1G08数据手册(下载地址) 参考文章:<mini2440移植uboot 2011.03(下)> 前两篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> (…
makefile 分析1  -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于--debug=a,  b(basic),v(verbose),i(implicity),j(innvocation of command),m(remake files)  这里着重解释一下 -p make -p -f /dev/null 可以打印出内置变量和内置规则 变量可以分为3类, 第一类: 环境变量, 比较重要的是PATH, PW…
基于S3C2440的U-BOOT的start.S分析 在了解了ARM相关的汇编指令后,同时结合网上各位大虾的提点开始阅读u-boot的启动代码,现将分析过程记录如下 可执行文件及内存映射 我们可以把可执行文件分为2种情况:存放态和运行态 .存放态:可执行文件经过烧到存储介质上(flash或磁盘)的分布,此时可执行文件通常有2部分组成,代码段和数据段, 代码段又分为可执行代码段 (.text)和只读数据段(.rodata),数据段可以分为初始化数据段(.data)和未初始化代码段(.bss),如下…
上一篇博文:<mini2440移植uboot 2014.04(六)> 代码已经上传到github上: https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 (十一)将环境变量放入到nand flash并屏蔽DEBUG宏 虽然nand flash已经基本上可用了,但是现在环境变量仍然是放在Nor flash,需要修改成放入Nand flash内. 修改include/configs/mini2440.h: /* #define DEBUG */…
代码上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 前几篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> <mini2440移植uboot 2014.04(三)> <mini2440移植uboot 2014.04(四)> (九)修改nand flash代码错误(代码中一些错误修正): 用tftp将uboo…
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文章: <mini2440移植uboot 2011.03(上)> 前几篇博文: <mini2440移植uboot 2014.04(一)> <mini2440移植uboot 2014.04(二)> <mini2440移植uboot 2014.04(三)> 后一篇博文: <mini2440移植ub…
本文转载自:http://blog.csdn.net/lw2011cg/article/details/68954707 uboot的GPIO驱动分析--基于全志的A10芯片 转载至:http://blog.sina.com.cn/s/blog_b5020b670101ft49.html (2013-12-28 10:47:31) 转载▼ 标签: it 分类:uboot的驱动分析 uboot的GPIO相当简单,其就是三层结构.分别为: 1.顶层接口层,其只定义了通用的接口,并不负责实现,实现是我…
海思uboot启动流程详细分析(一) 海思uboot启动流程详细分析(二) 海思uboot启动流程详细分析(三)  …
目录 LibOpenCM3(一) Linux下命令行开发环境配置 LibOpenCM3(二) 项目模板 Makefile分析 LibOpenCM3 项目模板 项目模板地址: https://github.com/libopencm3/libopencm3-template 如果仅仅用IDE开发, 并不需要了解 Makefile 结构. 对于需要实现自动化发布和测试的项目, Makefile 几乎是默认的选项, 了解 Makefile 工作机制对项目长期的开发和维护都是很有帮助的. 文件结构 ├─…
转自:http://blog.csdn.net/wqx521/article/details/52469759 # (C) Copyright 2000-2008 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. # # See file CREDITS for list of people who contributed to this # project. # # This program is free software; yo…
这次分析源码根目录下的Makefile,它负责读入配置过的信息,通过OBJS.LIBS等变量设置能够参与镜像链接的目标文件,设定编译的目标等等. HOSTARCH := $(shell uname -m | \ sed -e s/i./x86/ \ -e s/sun4u/sparc64/ \ -e s/arm.*/arm/ \ -e s/sa110/arm/ \ -e s/ppc64/powerpc/ \ -e s/ppc/powerpc/ \ -e s/macppc/powerpc/\ -e…
说明:文件位置:在uboot的目录下,文件名为:Makefile 从文件的头部开始分析 1.24-29行,配置uboot的版本信息. VERSION = PATCHLEVEL = SUBLEVEL = EXTRAVERSION = U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) VERSION_FILE = $(obj)include/version_autogenerated.h 2.主机的环境信息(比如…
浏览一下U-Boot各个子目录下的Makefile可以看到,几乎他们都会包含$(TOPDIR)/config.mk,那么这个文件进行了什么操作呢?简单概括:读入include/config.mk.include/autoconf.mk,指定ARCH CPU SoC Board等重要信息,并且加入各个层次上的编译选项:初始化编译处理选项.链接选项:最后有一个很重要的变量定义: cmd_link_o_target = $(if $(strip $1),\ $(LD) $(LDFLAGS) -r -o…
我们在编译U-Boot之前,需要根据当前使用的板子进行配置,例如make s5p_goni_config,接着才能进行编译make.下面首先分析配置阶段U-Boot做了哪些事情. 由于执行这些命令是在源码根目录下,所以需要到主Makefile中找一下s5p_goni_config这个目标,搜索结果显示没有匹配的信息,后来发现其实U-Boot设计者已经将配置选项设计成通用模式了: %_config:: unconfig @$(MKCONFIG) -A $(@:_config=) 上面的写法比较通用…