u-boot分析之Makefile
来源:互联网 发布:个人数据交易平台 编辑:程序博客网 时间:2024/05/17 11:58
上电–PC–BIOS–引导操作系统(windows)–识别C盘、D盘–运行应用程序(qq)
嵌入式系统–bootloader–Linux内核–挂载根文件系统–应用程序
起动内核的方式
BIOS:从硬盘上启动内核 嵌入式linux:从Flash读出内核--放到SDRAM--启动内核
u-boot要实现的功能 1、读flash(+写flash,为开发方便①写flash、②网卡、③USB)2、初始化SDRAM(初始化时钟、初始化串口) 3、启动内核
硬件相关的初始化:关看门狗、初始化时钟、初始化SDRAM 满足开发加入功能:烧写Flash (网卡、USB)、串口(输入命令)
…………………………………………………………………………………………………………………..
1.分析make 100ask24x0_config
u-boot-1.1.6 打好补丁,制作压缩文件,拷贝到win下供使用
打开u-boot的Makefile,分析 搜索 100ask24x0_config
执行make 100ask24x0_config 就相当于执行
mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 (
打开 mkconfig
板子没有命名将其命名为$1,即100ask24x0。
在Makefile里面搜索SRCTREE
SRCTREE=CURDIR,if定义了BUILD_DIR,那么OBJTREE为BUILD_DIR
if没有定义了BUILD_DIR,那么OBJTREE为CURDIR。
并没有定义,所以SRCTREE=OBJTREE。
执行else,建立连接文件 ln -s asm-arm asm ,asm指向arm
In -s arch-s3c24x0 asm-arm/arch 在asm-arm下建立arch,指向s3c24x0
In -s proc-armv asm-arm/proc 在 asm-arm下建立proc,指向armv
内容:
ARCH =arm
CPU =arm920t
BOARD =100ask24x0
SOC =s3c24x0
创建单板相关的头文件
APPEND=no执行 > config.h # Create new config file
“>”新建文件 “>>”追加过去
config.h的内容
2.分析make
包含的文件就是上面配置过程生成的config.mk
定义了ARCH 、CPU、BOARD、SOC的变量值为arm、arm920t、smdk2410、s3c24x0
根据上面的4个变量确定编译器、编译选项等
可以看看执行make后的文件,如下
链接脚本
第一个start.o与Makefile对应
接下来是lib库
与Makefile对应
打开链接脚本u-boot-1.1.6\board\100ask24x0\u-boot.lds,查看链接
SECTIONS{ . = 0x00000000;//uboot开始运行的地址0x33f80000 . = ALIGN(4); .text : { cpu/arm920t/start.o (.text) //第一个文件的代码段 board/100ask24x0/boot_init.o (.text) *(.text) //其他所有文件的代码段 } . = ALIGN(4); .rodata : { *(.rodata) } //所有文件只读数据段 . = ALIGN(4); .data : { *(.data) } //所有文件的数据段 . = ALIGN(4); .got : { *(.got) } . = .; __u_boot_cmd_start = .; .u_boot_cmd : { *(.u_boot_cmd) } __u_boot_cmd_end = .; . = ALIGN(4); __bss_start = .; .bss : { *(.bss) } _end = .;}
接下来分析start.o,了解uboot启动内核的整个流程。
分析Makefile:
①第一个文件 cpu/arm920t/start.o
②链接地址 board\100ask24x0\u-boot.lds +0x33f80000
- u-boot之Makefile分析
- u-boot分析之Makefile
- u-boot分析之Makefile结构分析
- U-Boot源码分析之Makefile
- U-boot Makefile 分析
- u-boot Makefile分析
- U-Boot Makefile分析
- u-boot makefile分析
- U-Boot Makefile分析
- U-Boot Makefile分析
- U-Boot Makefile分析
- u-boot Makefile分析
- U-Boot Makefile分析
- U-boot--Makefile分析
- u-boot Makefile分析
- u-boot分析之Makefile结构分析----配置
- u-boot分析之Makefile结构分析---编译
- u-boot分析之顶层Makefile、mkconfig结构分析
- maven的jstl-api的jar包与Tomcat的jar包依赖冲突
- 2.简单工厂
- Hi3536 Mount NFS root filesystem tips
- 将数据转成JSON
- oracle常用命令--更新/修改表数据之alter命令
- u-boot分析之Makefile
- PAT_1063. Set Similarity(1个case超时)
- validateform在提交form表单时,手动触发validateform校验
- spring cloud eureka
- STL algorithm -2
- 美国地质调查局DEM,需账户密码
- 简单的hash
- 学习的本质
- Ubuntu14 安装mysqlclient (MySQLdb)python3