uboot分析——makefile】的更多相关文章

1.makefile分析 $(TOPDIR)/makefile | |-----> include $(obj)/include/config.mk  确定板子环境 | || | V |---------->  136 确定 CROSS_COMPILE | |---------->  186 include $(TOPDIR)/config.mk | | | |------------------------------>  112 include $(OBJTREE)/inclu…
uboot的源文件众多,学习庞然大物首先找到脊椎--顶层的makfile,逐一破解.但是,uboot的makefile同样是一个庞然大物,所以也要找到它的主线.倘若过分专注部分细节,很难做到把握全局,实际上也不可能很好理解细节. 介于此,笔者已经写了一篇uboot makefile整体解析,可以先从主体上把握makefile.然后,再读这篇makefile强大功能实现的细节,才能做到循序渐进. 说明:uboot顶层makefile的注释机会全部源码都搬上来了,而注释都是黑体加粗以与源码有强烈的区…
这东西已经写,我们没有时间发布,如今,终于有时间稍微长送记录汇总uboot学习过程.具体了.以后忘了也能够再温习回来嘛有些特殊字符显示得乱掉了 Makefile追踪技巧: 技巧1:能够先从编译目标開始顺藤摸瓜地分析,先不要关注详细细节,着重关注基本的代码结构和编译过程 技巧2:追踪分析时要通过文本或者其它途径临时记录重要的线索 技巧3:将基本的Makefile文件里export出来的变量以及include的文件提取出来,看看include的文件大致是些什么文件,当看到一些来历不明的变量或者操作时…
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:另…
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…
说一下uboot分析与移植: 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因 tar xjf u-boot-2012.04.01.tar.bz2 cd u-boot-2012.04.01 make smdk2410_config make 2. 分析u-boot: 通过链接命令分析组成文件.阅读代码分析启动过程 a. 初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND FLASH b. 如果bootloader比较大,要把它重定位到SDRAM c. 把…
U-Boot是一个通用的Boootloader,它是在系统上电后执行的第一段程序,先初始化硬件设备,再准备软件环境,最后引导系统内核. 一般来说Bootloader的启动过程来说一般分两个阶段: 第一阶段: - 硬件设备初始化(关闭看门狗,关闭中断,设置CPU的速度,时钟频率,RAM初始化) - 为加载Bootloader的第二阶段代码准备RAM空间 - 复制Bootloader第二阶段代码到RAM空间中. - 设置好栈 - 转到第二阶段代码的C语言入口 第二阶段: - 初始化本阶段要使用到的硬…
18.13.1 使用JLink烧写Nor Flash JLink只支持烧写NOR Flash,不支持烧写Nand Flash. 1.准备工作:JLink的USB口接到电脑上,JLink的JTAG口用排线和开发板的JTAG口相连,开发板设为NorFlash启动并上电 2.启动J-Flash. 3.File>Open Project,找到s3c2440.jflash 4.Target>Connect:显示连接成功 5. File>Open data file:选择需要烧写的Uboot.bin…
/******************************************************************* * I.MX6 新版u-boot分析 * 说明: * 因为一些原因,需要去分析最新版的u-boot,但是跟老版的u-boot * 在架构上已经有很大区别,已经和Linux kernel很接近了. * * 2016-8-22 深圳 南山平山村 曾剑锋 ********************************************************…
目录 u-boot(二)makefile 引入 目录结构(1.1.6) 配置文件 目标 配置具体的单板 编译阶段 过程 链接入口 配置链接地址 附录 附录A:mkconfig解析 附录B 链接脚本 title: u-boot(二)makefile tags: linux date: 2018-09-22 20:56:05 --- u-boot(二)makefile 引入 我们是怎么编译的?先执行配置make 100ask24x0_config,然后编译make.所以在顶层目录下的Makefile…
u-boot分析(十一) 通过前面十篇博文,我们已经完成了对BL1阶段的分析,通过这些分析相信我们对u-boot已经有了一个比较深入的认识,在BL2阶段大部分是对外设的初始化,并且有的我们已经分析过,在这篇博文我打算对BL1阶段没有分析到的重要外设进行简单分析,并结束对u-boot的分析,同时对后面自己的博文进行简单的规划,希望有兴趣的朋友跟我一块学习和研究嵌入式. 今天我们会分析到以下内容: 1.      MMU分析(内容出自我以前的博客) 2.      裸机开发总结 3.      后期…
u-boot分析(十) 上篇博文我们按照210的启动流程,分析到了初始化nand flash,由于接下来的关闭ABB比较简单所以跳过,所以我们今天按照u-boot的启动流程继续进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.       …
u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.      …
u-boot分析(八) 上篇博文我们按照210的启动流程,分析到了内存初始化,今天我们继续按照u-boot的启动流程对串口的初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.        210芯片手册:S5PV210_UM_REV1…
u-boot分析(七) 上篇博文我们按照210的启动流程,分析到了时钟初始化,今天我们继续按照u-boot的启动流程对内存的初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.        210芯片手册:S5PV210_UM_REV1…
u-boot分析(六) 上篇博文我们按照210的启动流程,分析到了关闭看门狗,今天我们继续按照u-boot的启动流程进行分析,今天我们会主要分析时钟的初始化. 今天我们会用到的文档: 1.        Arm9内核手册:http://download.csdn.net/detail/wrjvszq/8358867 2.        Arm11内核手册:http://download.csdn.net/detail/wrjvszq/8358877 3.        Arm a8内核手册:ht…
u-boot分析(五) 上篇博文我们按照210的启动流程,对u-boot启动中的设置异常向量表,设置SVC模式进行了分析,今天我们继续按照u-boot的启动流程对以下内容进行分析. 今天我们会用到的文档: Arm9内核手册:http://download.csdn.net/detail/wrjvszq/8358867 Arm11内核手册:http://download.csdn.net/detail/wrjvszq/8358877 Arm a8内核手册:http://download.csdn.…
u-boot分析(四) 通过前三篇的分析,我们对u-boot已经有了整体的认识和掌握,但是我们仍然对于其部分硬件是如何初始化的不太清楚,所以接下来几篇博文我将会对我们在http://www.cnblogs.com/wrjvszq/archive/2015/01/10/4215627.html一文中总结出的u-boot的工作流程中的重要环节,结合文档加以分析. 今天我们会用到的文档: 1.        ARM Architecture Reference Manual:http://downlo…
u-boot分析(二) 由于这两天家里有点事,所以耽误了点时间,没有按时更新,今天我首先要跟大家说说我对于u-boot分析的整体的思路,然后呢我以后的博客会按照这个内容更新,希望大家关注. 言归正传,我首先说一说我以后的思路,对于u-boot呢,我会结合2440.6410.210这三款主流的学习芯片进行分析,首先会结合u-boot的源码以及我以前的arm启动流程一文http://www.cnblogs.com/wrjvszq/p/4204703.html 总结出u-boot的工作流程,然后以后的…
u-boot(2014.04)是通过顶层makefile调用各子目录中的makefile来实现整个工程的编译的,实际上子目录的makefile是include进来的.这里仿照这种结构写个模板测试一下. 目录结构: mytest: add: mul: Makefile mul.c mul.h add.c add.h Makefile main: main.c Makefile scripts: Makefile.build Makefile.clean Makefile.lib sub: div…
一.概述 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…
转自: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…
本文以uboot_1.1.6 对应的CPU是S3C2440 为例 uboot_1.1.6 根目录下的主Makefile开头: VERSION = PATCHLEVEL = SUBLEVEL = EXTRAVERSION = U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) VERSION_FILE = $(obj)include/version_autogenerated.h 1.uboot的版本号分3个级别…
一. 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,它…
通过make 100ask24x0_config 指令配置好芯片选型后,使用make指令来生成uboot.bin文件 本文学习目标: 对Makefile文件进行基本了解,掌握make指令是怎么实现生成uboot.bin的过程 1.接下来开始分析make指令,首先打开u-boot-1.1.6/Makefile文件: 117 include $(OBJTREE)/include/config.mk        //调用config.mk这个文件 118 ... 124 ifeq ($(ARCH),…
4.Bootloader:u-boot.2009.08分析与移植4.1:分析u-boot根文件夹下的Makefile,能够看到uboot编译的顺序例如以下,由此可知编译运行的第一个文件是cpu/$(CPU)/start.o,又因为是基于 arm920t架构的,所以去分析cpu/arm920t/start.S源文件. # U-Boot objects....order is important (i.e. start must be first)OBJS  = cpu/$(CPU)/start.o…
参考Friendlyarm的文档,编译uboot的流程为 make tiny4412_config make 这个过程主要涉及到两个文件,顶层的Makefile文件和mkconfig文件,makeconfig文件是一个脚本,通过文件的注释可以了解到它的作用 # Script to create header files and links to configure # U-Boot for a specific board. # # Parameters: Target Architecture…
上片博文总结出了u-boot的工作流程,今天我们来分析,u-boot的两个比较重要的内容 1.        U-boot命令的实现 2.        U-boot如何启动内核 l  命令实现 我们的u-boot可以解析输入的命令,比如print.setenv.saveenv等命令,我们下来对其的实现进行分析. 我们昨天分析到BL2最后停在了main_loop处,那么我们输入的命令肯定也是在这个函数中实现的,我们找到该函数,在main_loop函数中run_command函数很容易引起我们的关…
VERSION = 2009PATCHLEVEL = 08SUBLEVEL =EXTRAVERSION =ifneq "$(SUBLEVEL)" ""U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)elseU_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)endifTIMESTAMP_FILE = $(obj)incl…