- 博客(12)
- 收藏
- 关注
原创 UBOOT如何启动内核
定义了很多个struct tag, 排列在一起,每个tag的值表示 不同类型的tag, 由tag == ATAG_CORE 开始,到tag == ATAG_NONE 结束。ATAG_CMDLINE: 启动命令行参数,即uboot环境变量中的 bootargs. 告诉kernel如何启动。当前这里使用的是legacy 格式的kernel, 将来传参的方式,叫做tag传参。uboot中是否支持zImage格式,根据CONFIG_ZIMAGE_BOOT 来配置。通过LD工具生成的elf格式的。
2025-06-21 14:36:38
430
原创 UBOOT启动第二阶段分析
摘要:uboot1.3.4代码分析显示DDR整体布局设置过程。主要包括:(1)初始化全局数据结构gd和bd;(2)执行init_sequence序列,涵盖网卡、定时器、环境变量等初始化;(3)内存管理设置和MMC卡初始化;(4)根据启动介质设置环境变量bootcmd;(5)环境变量重定位过程。其中,MMC初始化涉及两个通道(inand和SD卡),环境变量从inand读取并校验。启动时读取INF_REG3寄存器确定启动项,整个初始化过程涉及硬件配置和基础服务建立。
2025-06-17 02:39:06
532
原创 UBOOT 启动第一阶段分析
设置到CFG_UBOOT_BASE + CFG_UBOOT_SIZE - 0x1000 的位置,即33e0'0000 + 2*1024*1024 - 0x1000的位置。应该是OMPIN,用来确定启动介质,每个启动介质确定一个不同的值,然后写到寄存 INF_REG3中。s5pv210中若未显示初始化SP_abt,其复位值为0,触发abort后,hw会尝试向0x0写入,引发二级数据异常(死锁)。需要设置栈以后,才可以在子函数中 再次调用子函数,因为LR寄存器只有一个,要将每一级的LR信息放到栈中。
2025-06-16 00:37:04
469
原创 UBOOT Makefile分析
-------- configs/x210_sd.h 是一些配置宏要不要打开的设置。mkconfig使用: (1)生成include/config.mk,(2)根据ARCH, BOARD, 等信息生成相应的软链接 (3)生成include/config.h。config.mk作用: 生成一些编译规则,eg: .c ---> .o, .s ---> .o, 选择链接脚本,编译时相关的头文件包含等。----- board/x210/u-boot.lds 链接脚本。
2025-06-15 01:23:29
483
原创 在vscode上调试c/c++
1. 当前环境(1) windows 下安装了vscode(2) c/c++代码放在linux上、在linux上运行程序2.配置步骤(1) 在vscode上安装 c/c++插件 (2) 点击 运行-启动调试,选择 Node.js (3) 再次点击 运行-启动调试,选择合适的编译器 (4) 将工作目录下 .vscode/task.json进行配置修改 (5) 在./vscode目录下创建launch.json (6) 配置完成后,运行-启动调试,就能正常调试啦,可
2022-06-27 12:09:06
4641
3
原创 linux中运行tmux时,自动保存日志
1.为什么需要自动保存日志(1) 运行tmux的时候,向上查看日志比较麻烦,要执行ctrl b + [ 的操作,并且查看的日志范围有限(2) 如果在tmux窗口内,每次手动使用script命令保存日志,又太麻烦2. 原理 • 使用linux中的script命令,可以实现将会话信息保存到指定文件中,使用方法:(如果没有这个命令,需要安装一下)script -f a.log 将当前会话打印信息输出到a.log文件中exit 结束保存日志 3.具体方法
2022-06-24 15:36:30
6615
2
原创 移植tslib后,运行报错 Couldnt load module linear
运行ts_calibrate时报以下错误:fopen: No such file or directoryCouldnt load module linearts_config: No such file or directoryts_setup: No such file or directory解决方法:将ts.conf中的module linear那行直接注释掉即可...
2022-05-19 22:42:32
658
原创 cat一个文件并grep,遇到结果为空的现象
今天需要用到cat+grep的方式得到文件中的一些特定内容,文件中明明是有这些内容的,但无论怎样操作,结果都为空。 vi 2.log:然后cat 2.log | grep usb,结果居然是空的。后来在windows下,把文本中的内容拷贝出来,再创建一个新文件,cat+grep能得到结果。这个时候就想到原因了,是由于编码格式的问题导致的。这个文件是在xshell中生成的日志文件,编码格式设置的不是utf-8,导致了这个问...
2021-08-14 11:05:27
2084
原创 解决linux kernel进入不了命令行,提示can‘t run ‘/bin/的问题
1.现象: kernel进入不了命令行,一直提示can't run '/bin/。 所有文件也都是777的权限。 更换过两个busybox,但都会有同样的问题。2.解决思路: 后来想到,busybox应该不会有问题,也进行过更换,只有inittab是一直从windows下复制而来的。 所以可能由于window和linux下有些格式不同,busybox中的init.c在解析命令时,解析出现了问题,导致找不到。3.解决方法: ...
2021-05-09 19:41:39
799
原创 解决linux kernel使用nfs启动失败的问题
解决uboot使用nfs启动失败的问题1.1 当前情况说明:(1) kernel相应的网络和文件系统的配置设置都是正确的、ubuntu中的nfs搭建也没有问题。(2) uboot与ubuntu能够互相ping通。(3) boot_args设置为: set bootargs ...
2021-05-09 11:43:17
2352
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人