Uboot启动流程(一)——u-boot.lds
2018-01-29 15:15
393 查看
.lds为链接脚本
我们平时写的代码也会有链接(ld)过程;x86下面输入ld -verbose可以查看链接脚本
uboot生成镜像也是需要lds的,下面为lds部分内容:
几个你需要知道的知识点:
1、elf32-littlearm:elf格式 32位arm指令,小端(反正先这么记着,对我来说也没有用)
2、ENTRY(_start)入口为_start;
3、接下来是data段 text段之类的
4、注意这里的0x00000000并不是说_stat起始在0x0处,实际查看System.map可以看到一般都不是0.比如我这里是0x88400000,还有一个uboot是0x8d400000.这个数字是由/board/hiXXXX/config.mk里面的TEXT_BASE指定的;
我们平时写的代码也会有链接(ld)过程;x86下面输入ld -verbose可以查看链接脚本
uboot生成镜像也是需要lds的,下面为lds部分内容:
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS { . = 0x00000000; . = ALIGN(4); .text : { __text_start = .; arch/arm/cpu/hi3559/start.o (.text) drivers/ddr/ddr_training_impl.o (.text) drivers/ddr/ddr_training_ctl.o (.text) drivers/ddr/ddr_training_boot.o (.text) drivers/ddr/ddr_training_custom.o (.text) __init_end = .; ASSERT(((__init_end - __text_start) < 0x16000), "init sections too big!"); *(.text) } . = ALIGN(4); .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.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 = .; }
几个你需要知道的知识点:
1、elf32-littlearm:elf格式 32位arm指令,小端(反正先这么记着,对我来说也没有用)
2、ENTRY(_start)入口为_start;
3、接下来是data段 text段之类的
4、注意这里的0x00000000并不是说_stat起始在0x0处,实际查看System.map可以看到一般都不是0.比如我这里是0x88400000,还有一个uboot是0x8d400000.这个数字是由/board/hiXXXX/config.mk里面的TEXT_BASE指定的;
相关文章推荐
- [uboot] (第五章)uboot流程——uboot启动流程
- 1.移植uboot-分析uboot启动流程(详解)
- [uboot] (第五章)uboot流程——uboot启动流程
- UBOOT启动过程及uboot.lds文件分析
- uboot启动流程分析和uboot移植(粗略分析)
- [uboot] (第五章)uboot流程——uboot启动流程
- 五、u-boot 启动流程---u-boot.lds
- UBOOT-2012-10在OK6410平台的移植(二)uboot 2012.10启动流程
- Uboot启动流程分析
- 深入理解uboot 2016 - 基础篇(处理器启动流程分析)
- u-boot-2011.06启动流程分析
- Uboot启动流程分析
- 基于ar9331 mips架构AP121 uboot分析(4) 启动流程 Stage1
- U-Boot启动流程(Linux内核)的分析(一转)
- U-BOOT的启动流程
- 移植u-boot-2012-10到tiny210v2(一)-----基本芯片介绍和启动流程介绍
- u-boot启动流程分析
- uboot流程分析--修改android启动模式按键
- uboot 启动流程
- Spring Boot启动流程详解