u-boot学习笔记一(makefile)
来源:互联网 发布:香港理工大学就业知乎 编辑:程序博客网 时间:2024/05/25 12:22
最近两天在看U-boot的源码,现对u-boot流程和部分源码做个分析,备忘!还没有进行实践,有什么错误的地方还请指正!
1.Makefile分析
将顶层的config.mk包含进来,如果include目录下右config.mk也包含进来!include/config.mk将在后面的脚本中配置board的时候自动生成!
这是配置板子!./mkconfig调用当前目录下的shell脚本mkconfig。后面就是需要为这个脚本传递的参数!
此脚本的主要作用就是根据传入的参数,生成两个文件!一个是上面提到的include/config.mk另一个是include/config.h!执行完#make ***_config 后就可以生成这两个文件!有了这两个文件下一步就可以make
生成我们所需要的bin,map等文件!
make all生成三个文件.bin .srec .map!唯一需要注意的就是LDFLAGS这个在config.mk有定义
LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
注意两点一:TEXT_BASE为uboot在SDRAM中放置的位置,二:u-boot.lds链接脚本,这个在board中有定义!
打开文件有这两句
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
board/yl2410/lowlevel_init.o (.text) /* Ali + */
board/yl2410/nand_boot.o (.text) /* Ali + locate nand boot code at first 4k*/
*(.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是在TEXT_BASE为基址的基础上的偏移(可以这样理解)
根据这个链接脚本就可以知道我们应该从什么地方分析源代码!这个脚本还要注意的就是__u_boot_cmd_start = 和 .got 段!__u_boot_cmd_start 段为用户自定义的段,可以查看comand.h文件,你大概就清楚!
makefile大概就是这个样子!分三步走1.make distclean 清理垃圾文件 2.make ***—config配置目标板,这步将通过shell脚本生成两个下步必须的文件include/config.mk和include/config.h 3.make all生成.bin文件!
下篇将对u-boot中的脚本做一个简单的分析!
- u-boot学习笔记一(makefile)
- U-boot学习笔记(一)
- U-Boot学习笔记(一):基本概念
- U-Boot学习笔记(三):顶层Makefile分析
- u-boot笔记(一)
- u-boot学习(一):u-boot概述
- u-Boot 顶层Makefile解析(一)
- u-boot分析(一)-----makefile分析
- U-Boot中Makefile的学习
- [uboot学习笔记(一)]u-boot.lds文件分析
- U-boot初级学习笔记
- U-boot初级学习笔记
- U-boot学习笔记(二)
- U-boot学习笔记(三)
- u-boot 第一阶段学习笔记
- u-boot-1.1.6 学习笔记——顶层目录 Makefile
- “第09课第2节 u-boot分析之Makefile结构分析”之学习笔记
- U-boot Makefile 分析
- 连接池、ORA-00020以及编码习惯的问题
- IP和子网掩码实例分析
- 屏蔽任意网址又一法!, 比 Adblock 更彻底,比 hosts 更灵活,无需重启浏览器
- 8i中的noarchivelog和archivelog
- ORACLE回滚段管理
- u-boot学习笔记一(makefile)
- CSRF——攻击与防御
- [转]core dump是什么
- 愚人节看到的两则IT界的玩笑
- 字符串移动
- sns列强分析
- 重返CSDN
- Linux动态库搜索路径
- 福州地震了,突然有一种灵感,如何用C#编写测试地震的程序.