linker_lists.h
1 | // 声明一个链接生成的条目,以__u_boot_list_2_XXX_2_YYY命名 |
文章作者: Liya Huang
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wdfk-prog的个人博客!
相关推荐

2025-10-03
kconfig
linux/kconfig.h__count_args 计算可变参数宏的参数数123456/* * 计算可变参数宏的参数数。目前只需要 * 它用于 1、2 或 3 个参数。 */#define __arg6(a1, a2, a3, a4, a5, a6, ...) a6#define __count_args(...) __arg6(dummy, ##__VA_ARGS__, 4, 3, 2, 1, 0) 传递一个虚拟参数 dummy和参数传入,并返回第6个参数; 例如传入 __count_args(a, b, c),则展开为 __arg6(dummy, a, b, c, 4, 3, 2, 1, 0),则返回3 dummy 是一个虚拟参数,用于确保宏展开时参数列表的长度一致。在 __count_args 宏中,dummy 被用作第一个参数,以确保即使没有传递任何参数,参数列表的长度也至少为 1。 ##__VA_ARGS__ 是一个预处理器技巧,用于处理可变参数宏。VA_ARGS 是一个特殊的宏参数,表示传递给宏的所有可变参数。## 是预处理器的连接运算符,用于将两个...

2025-10-03
杂项
system-constants.h 定义系统堆栈指针地址 定义了系统初始化的堆栈指针地址 其配置在include/generated/autoconf.h,由include/config.h->include/linux/kconfig.h->include/generated/autoconf.h include/generated/autoconf.h为自动生成的文件,包含了系统的配置信息,原始配置在configs/stm32h750-art-pi_defconfig 12345678/* * The most common case for our initial stack pointer address is to * say that we have defined a static intiial ram address location and * size and from that we subtract the generated global...

2025-10-03
arch
[TOC] arch 架构介绍ARC (Argonaut RISC Core) ARC 是一种基于 RISC(精简指令集计算机)原理的处理器架构,广泛应用于嵌入式系统中。 ARC 处理器由 Synopsys 公司开发和推广,广泛应用于嵌入式系统中,因其高性能和低功耗特性而受到欢迎。 ARM ARM M68K M68K,也称为 68K 或 Motorola 68000,是一种由摩托罗拉公司(Motorola)开发的16/32位微处理器架构。M68K 系列处理器在20世纪80年代和90年代广泛应用于计算机、嵌入式系统和游戏机中。 MICROBLAZE MicroBlaze 是由 Xilinx 公司开发的一种软处理器核心,专门用于其 FPGA(现场可编程门阵列)产品。MicroBlaze 处理器可以通过硬件描述语言(如 VHDL 或 Verilog)在 FPGA 中实现,并根据具体应用需求进行定制。 MIPS MIPS(Microprocessor without Interlocked Pipeline Stages)是一种由 MIPS Technologies 开...

2025-10-03
cmd
[TOC] boot 命令 bootm 是一个通用的引导命令,支持多种镜像格式和加载方式. bootz 专门用于引导压缩的 Linux zImage 内核。 booti 专门用于引导 AArch64 Linux 内核映像。 bootm 从内存中引导应用程序映像 bootm bootz 启动 Linux zImage bootz booti 从内存中引导 AArch64 Linux 内核映像

2025-10-03
bootm
cmd/bootm.c 从内存中的映像引导应用程序映像do_bootm1234567891011121314151617181920212223242526//bootm 90080000//cmdtp:命令表,flag:标志位,argc:参数个数,argv:参数列表int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]){ struct bootm_info bmi; int ret; //执行子命令 //默认命令执行默认参数初始化 bootm_init(&bmi); if (argc) bmi.addr_img = argv[0]; //设置镜像地址 字符串"90080000" if (argc > 1) bmi.conf_ramdisk = argv[1]; if (argc > 2) bmi.conf_fdt = argv[2]; /* set up argc and argv[] since some OSes ...

2025-10-03
bootretry
[TOC] BOOT_RETRY 允许 U-Boot 命令提示符超时并尝试以再次启动。 如果找到环境变量 “bootretry”,则使用其值,否则重试超时为CONFIG_BOOT_RETRY_TIME。 CONFIG_BOOT_RETRY_MIN 是可选的,并且默认为 CONFIG_BOOT_RETRY_TIME。所有时间均以秒为单位。 如果重试超时为负数,则 U-Boot 命令提示符永不超时。否则,它将被强制为至少CONFIG_BOOT_RETRY_MIN 秒。如果没有有效的 U-Boot 命令在指定时间之前输入,则引导延迟序列为重新启动。U-Boot 执行的每个命令都会重新启动超时。 如果CONFIG_BOOT_RETRY_TIME < 0,则该功能存在,但除非环境变量 “bootretry” >= 0,否则不会执行任何操作。 bootretry_init_cmd_timeout 从env中获取bootretry的值,如果没有配置,则使用CONFIG_BOOT_RETRY_TIME的值 如果0 < CONFIG_BOOT_RETRY_TIME &...
评论
公告
欢迎光临!有任何问题或想法,欢迎在文章下留言交流,或者通过 关于页面 联系我。


