![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uboot
文章平均质量分 68
生活需要深度
这个作者很懒,什么都没留下…
展开
-
U-Boot内存管理
如《Linux内核内存管理架构》一文中提到,linux内核中的内存管理支持内存地址映射、内存分配、内存回收、内存碎片管理、页面缓存等众多功能。但U-Boot做为启动引导程序,其核心功能就是引导内核镜像,所以其内存管理功能并不用像Linux内核中的内存管理一样功能齐全。U-Boot中没有内存分配、回收、缓存等功能,内存管理其实只做一件事:虚实地址映射,而且是固定映射。为了提高效率,现代处理器的内存管理都由MMU(Memory Management Unit)硬件单元实现(示意图如下),其核心模块主要有..原创 2022-04-09 20:50:15 · 1602 阅读 · 0 评论 -
u-boot启动内核文件
在uboot命令行print查看系统的启动命令结果是:bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0。这条命令的意思是,从nandflash上面的kernel分区把内核读到SDRAM的ox30007FC0地址,然后从这个地址启动。在我们的PC上,每个硬盘前面会有一个分区表,但是在嵌入式Linux里面,Flash是没有分区表的,那我们的flash里面的boot env kernel 跟文件系统这些分区只能在源码中写死,所以我们不关心f原创 2022-03-25 21:20:04 · 994 阅读 · 0 评论 -
u-boot-1.1.6编译脚本分析
在顶层目录下执行完"make smdk2410_config"命令后,就把u-boot给配置好了,接着就可以在执行"make all"或者"make"命令去编译u-boot了,完成后就可以烧写到开发板去运行了。(在Makefile中的all目标是第一个目标,因为Makefile将第一个目标设为默认目标,make命令后如果不加目标就默认是Makefile中的默认目标,所以执行"make all"命令是执行all目标,执行"make"其实也是执行all目标)。分析顶层Makefile文件1、incl.原创 2022-03-25 15:48:37 · 231 阅读 · 0 评论 -
u-boot引导Linux内核启动
1、分析(1)u-boot要启动内核,把内核从flash读到SDRAM ,要调到SDRAM执行,u-boot执行时内核还没执行,内核执行时,u-boot已完结。u-boot传参数给内核(双方约定一个位置),u-boot在那位置存数据,数据格式也要 双方约定好(2)0x30000000是内存的起始地址,0x30008000地址开始用于存放内核,参数存储双方约定的地址是0x30000100,2、结构分析(参数称为tag ,标志的意思)//表参数设置的开始setup_start_tag();原创 2022-03-25 15:46:58 · 540 阅读 · 0 评论 -
uboot.lds链接脚本分析
LDFLAGS += -Bstatic -T /board/smdk2410/u-boot.lds -Ttext 0x33F80000中-Ttext 0x33F80000是指定代码段text的首地址是0x33F800001、链接脚本格式<SECTIONS>基本命令SECTIONS描述输出文件的映射图:->输出文件各段、各文件怎么放置一个SECTIONS命令内部包含一个或多个段,段是连接脚本的基本单元,它表示输入文件某部分怎么放置;格式:SECTIO...原创 2022-03-25 15:43:11 · 369 阅读 · 0 评论 -
u-boot内存分布
uboot最新的内存分布结果如下原创 2022-03-25 15:41:40 · 1081 阅读 · 0 评论 -
U_BOOT_CMD命令注册宏分析
其中U_BOOT_CMD命令格式如下:U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help") 各个参数的意义如下: name:命令名,非字符串,但在U_BOOT_CMD中用“#”符号转化为字符串 maxargs:命令的最大参数个数 repeatable:是否自动重复(按Enter键是否会重复执行) command:该命令对应的响应函数指针 usage:简短的使用说明(字符串) help:较详细的使用说...原创 2022-03-25 15:29:39 · 1024 阅读 · 0 评论 -
uboot 内核反汇编
uboot的反汇编arm-linux-gnueabi-objdump -d u-boot > u-boot.asm反汇编uboot的二进制文件:arm-linux-objdump -D -b binary -m arm xxx.bin > xxx.asmuImage的反汇编1.因为uImage是64K数据头 + zImage镜像,所以需要先去掉64K的数据头,得到zImage镜像使用文本工具,十六进制打开uImage,找到“1f 8b”位置,将这个位置以上的部分全部去掉,得到zI原创 2022-03-22 13:19:25 · 1436 阅读 · 2 评论 -
u-boot-1.1.6 JZ2440补丁与编译
1. uboot说明uboot(bootloader)的终极目标就是启动内核读flash(读出内核)读到SDRAM 初始化SDRAM,初始化时钟,关闭看门狗 启动内核2. JZ2440编译u-boot-1.1.6打补丁与编译,具体流程减压u-boot-1.1.6.tar.bz2,打补丁以后进行配置和编译即可,成功后即可在u-boot-1.1.6/看到生成的u-boot.bin。具体的命令流程如下:tar -jxvf u-boot-1.1.6.tar.bz2cd u-boot-1.1原创 2022-03-19 10:28:43 · 445 阅读 · 0 评论