- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 【u-boot-2018.11】tool之mkimage
mkimage是u-boot下的一个工具,该工具是用来制作不压缩或压缩的多种可启动映像文件。一般情况下,使用mkimage制作映像文件的时候,是在原来的可执行映像文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样u-boot才能识别这个映像是针对哪个CPU体系架构的,哪个OS的,哪种类型,加载到内存中的哪个位置,入口地址在内存中的哪个位置及映像文件名是什么。它的使用方式如下:...
2019-10-28 22:21:27 878
原创 【u-boot-2018.11】编译工具链常用命令
编译工具链常用命令:命令1:arm-linux-gcc用于编译过程,常用的选项包括:-g:产生调试信息,用于GDB调试 -c:编译源文件,但是不链接命令2:arm-linux-ld用于链接过程,常用的选项包括:-Ttext:指定链接地址命令3:arm-linux-objcopy用于格式转换,可以将elf文件转换为bin文件,常用选项包括:-O:指定以什么格式输出,...
2019-10-28 21:50:35 348
原创 【u-boot-2018.11】源码分析之board_init_f
1.board_init_f:(common/board_f.c)// 该函数在crt0.S中被调用,boot_flags=0void board_init_f(ulong boot_flags){ // 标志为0 gd->flags = boot_flags; // 终端标志为0 gd->have_console = 0; // 执行初始化链表...
2019-10-05 14:38:40 589
原创 【u-boot-2018.11】源码分析之gd_t(struct golobal_data)
一、global_data功能global_data又称为GD,顾名思义,global_data就是用来存储u-boot的全局数据的。二、global_data结构体介绍typedef struct global_data { bd_t *bd; /* bd_info结构体定义,位于include/asm-generic/u-boot.h中,用于保存开发板相关参数 */ u...
2019-10-04 22:45:05 828
原创 【u-boot-2018.11】源码分析之lowlevel_init.S
arch/arm/cpu/armv7/lowlevel_init.S:#include <asm-offsets.h>#include <config.h>#include <linux/linkage.h>.pushsection .text.s_init, "ax"WEAK(s_init) bx lrENDPROC(s_init).po...
2019-10-02 19:35:08 489
原创 【u-boot-2018.11】源码分析之start.S
arch/arm/cpu/armv7/start.S:#include <asm-offsets.h>#include <config.h>#include <asm/system.h>#include <linux/linkage.h>#include <asm/armv7.h>/*******************...
2019-10-02 19:23:20 533
原创 【u-boot-2018.11】源码分析之vectors.S
arch/arm/lib/vectors.S#include <config.h>/* * A macro to allow insertion of an ARM exception vector either * for the non-boot0 case or by a boot0-header. *//* 宏,定义了异常向量表,用来插入boot的头部 */...
2019-10-02 17:21:56 1343
原创 【u-boot-2018.11】源码分析之crt0.S
arch/arm/lib/crt0.S:/*此文件处理U-Boot启动的与目标无关的阶段,其中需要C运行时环境。它的入口点是_main,并从目标的start.S文件跳转到它。_main执行顺序为:1.为调用board_init_f()设置初始环境。该环境只提供一个堆栈和一个存储GD(“全局数据”)结构的位置,两者都位于一些可用的RAM (SRAM、锁定的缓存……)中。在这种情况...
2019-10-02 16:56:23 1130
原创 【u-boot-2018.11】源码分析之sections.c
arch/arm/lib/sections.c:/*这两个符号在一个C文件中声明,因此链接器使用R_ARM_RELATIVE重定位,而不是在链接器文件中定义符号时使用的R_ARM_ABS32。仅使用R_ARM_RELATIVE重新定位可确保对符号的引用在重新定位之后和之前都是正确的。对于这些符号,我们需要一个0字节大小的类型,而编译器不允许定义C类型的对象“void”。编译器允许使用...
2019-10-02 12:19:25 264
uboot顶层config.mk分析
2018-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人