![](https://img-blog.csdnimg.cn/20200223120244987.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
uboot
文章平均质量分 78
uboot
朝搴夕揽
这个作者很懒,什么都没留下…
展开
-
学习笔记-移植U-boot 2012 04 01 到JZ2440(3.1)——新建单板
将board 目录和 configs 中的一个头文件拷贝一份,如下:cp /board/samsung/smdk2410 /board/samsung/smdk2440cp include/configs/smdk2410.h smdk2440.h修改 board.cfg(uboot201901里好像已经没有这个文件了),仿照2410复制一行。就可以make XXX_defconfig...原创 2020-02-28 10:37:02 · 124 阅读 · 0 评论 -
使用openJTAG调试uboot
这里只是简单记录几个openJTAG 的调试命令。首先将源码反汇编,查看需要调试的位置,比如在lowlevel_init 的地址为0X00000000080000d0 (我编译出的uboot是64位的,所以地址是8个字节):bp 0x80000d0 4 hw 打断点命令halt 暂停运行resume 继续运行mdw 0x0000000030000000 读地址mww 0x000000...原创 2020-02-28 10:23:17 · 674 阅读 · 0 评论 -
学习笔记-移植U-boot 2012 04 01 到JZ2440(2.3)——重定位的实现
relocate_code(addr_sp, id, addr) 实现的功能:1. 将uboot 从flash复制到SDRAM将位于flash 中的uboot 复制到 SDRAM 的sddr处。包括uboot的代码段,数据段。bss段在二进制文件中是不存在的,只需要将SDRAM 中bss段所在位置清零即可。具体汇编程序如下:/* * void relocate_code (addr_s...原创 2020-02-27 22:16:31 · 137 阅读 · 0 评论 -
学习笔记-移植U-boot 2012 04 01 到JZ2440(2.2)——启动过程分析 对重定位必要性的理解
从nand flash启动和nor flash 启动:nor flash 启动时,直接从nor flash运行,0地址指向 nor flash 0地址。nand flash 启动时,nand flash 上前4k代码会被复制到片内内存上,然后从片内内存的0地址运行。当程序比较大的时候,需要将程序从nand flash 复制到 SDRAM(外挂)上链接地址位置。链接地址就是程序运行时应位于的地...原创 2020-02-27 21:17:41 · 98 阅读 · 0 评论 -
学习笔记-移植U-boot 2012 04 01 到JZ2440(2.1)——启动过程概述
从最终的链接命令查看查看.lds,可以看到确实可以从0地址开始运行uboot 应该做的事情:start_code设置管理模式关看门狗关中断设置时钟分频系数cpu_init_crit 底层初始化 flush caches 禁止mmu lowlevel_init 底层初始化 初始化内存(memory control configuration)设置栈 ldr sp, ...原创 2020-02-27 20:33:03 · 138 阅读 · 0 评论 -
学习笔记-移植U-boot 2012 04 01 到JZ2440(1)
1. 新建SI工程board目录中找到一个类似的board,smdk2410arch目录下 arm920t/s3c24x0include 中通用的添加,config中值关系 smdk2102. 配置注意使用交心版本的交叉编译器。make smdk2410_defconfig3. start.sstart_code设置管理模式关看门狗关中断设置时钟分频系数cpu_init_...原创 2020-02-27 16:35:01 · 104 阅读 · 0 评论 -
(转)vmlinux uImage与zImage的区别
从下面的内核编译过程,可以看出vmlinux,arch/arm/boot/compressed/vmlinux, arch/arm/boot/Image, arch/arm/boot/zImage之间的区别LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map OBJCOPY arch/arm/boot/Image ...转载 2020-02-25 16:41:34 · 288 阅读 · 0 评论 -
记一次uboot1901下载、编译过程
下载从这里选择一个版本下载:ftp://ftp.denx.de/pub/u-boot/浏览器直接下载一般很慢,还有可能失败,建议复制下载链接,到迅雷下载,是真的快。我选的是u-boot-2019.01.tar.bz2,同时下载了签名文件u-boot-2019.01.tar.bz2.sig。校验完整性校验完整性,更多细节参考这里:book@www.100ask.org:/work/syst...原创 2020-02-24 18:34:27 · 295 阅读 · 0 评论 -
韦东山 jz2440 学习笔记 —— uboot(一)——BootLoader 简介
Bootloader 的作用Bootloader在系统上电时运行,初始化硬件(关看门狗,配置时钟等等),最终将内核读入SDRAM,并启动内核。Bootloader 启动方式cpu上电后会从某个固定地址开始执行。如ARM结构的cpu从0x00000000开始运行嵌入式开发板中,需要把ROM或者Flash映射到该地址。Bootloader 就存储在该地址。嵌入式Linux 系统软件结构...原创 2020-02-03 12:17:47 · 424 阅读 · 0 评论 -
韦东山 jz2440 学习笔记 —— uboot(二)——功能简述,解压,patch,配置,编译过程
1. uboot 解压缩压缩命令详细方法点这里。tar -jxv -f u-boot-1.1.6.tar.bz2 u-boot-1.1.6/关于tar命令可以直接记住以下三个常用压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称查 询:tar -jtv -f filename.tar.bz2解压缩:tar -jxv -f filename.tar...原创 2020-02-02 19:10:31 · 725 阅读 · 1 评论 -
韦东山 jz2440 学习笔记 —— uboot(三)—— uboot源码分析之 start.S
uboot 的工作流程上篇文章可以看出,start.S 是uboot的第一段程序。因此可以从start.S 开始分析uboot 的工作流程。1. uboot 第一阶段:硬件相关初始化该阶段基本都是用汇编实现的,主要流程在start.S 中实现。对于jz2440,有如下配置过程:设置cpu为管理模式,svc模式关看门狗屏蔽中断初始化SDRAM设置栈配置时钟将代码从flash 拷...原创 2020-02-03 22:00:30 · 295 阅读 · 0 评论 -
韦东山 jz2440 学习笔记 —— uboot(四)—— uboot源码分析之命令实现
调用关系结构分析// uboot 主循环main_loop() run_command() // 解析输入命令 argc = parse_line (finaltoken, argv) // 根据argv[0] 这个字符串找到对应的结构体cmdtp cmdtp = find_cmd(argv[0]) // 所有的cmd 结构体都存在一介于__u_boot_cmd_sta...原创 2020-02-04 22:01:47 · 345 阅读 · 0 评论 -
韦东山 jz2440 学习笔记 —— uboot(五)—— uboot启动内核过程
读出并运行启动命令uboot 在main.c下图432行的位置, main_loop() 函数,读取了环境变量"bootcmd" ,也就是启动命令。并 run_command(),即执行bootcmd。这个环境变量可以在uboot 中使用print命令查看:分析启动命令启动命令如下:nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0...原创 2020-02-07 13:11:19 · 623 阅读 · 0 评论 -
记一次 uboot 编译时 GCC 版本问题
问题描述在编译 uboot 时,有如下报错:*** Your GCC is older than 6.0 and is not supportedarch/arm/config.mk:66: recipe for target ‘checkgcc6’ failed我是ubuntu16.04:Linux book-virtual-machine 4.15.0-76-generic #86~...原创 2020-02-23 11:50:16 · 1746 阅读 · 0 评论