- 博客(116)
- 资源 (26)
- 收藏
- 关注

原创 rtthread学习笔记系列
文章目录RTT 学习1. 宏2. 链接文件3. FINSH模块4. 杂项5. 预编译命令6. map文件分析7.汇编.s文件8.RTT系统初始化9. 内存管理10. 系统定时器11 数据结构12 调度13 线程14 内核对象15 ARM指针寄存器16 IDLE线程17 IPC18 信号 SIGNAL19 ringbuffer20 completion21 工作队列22 dataqueue23 环形缓冲块 ringblock24 waitqueue25 condvar26 pipe27 串口驱动28 I2C驱
2025-01-16 11:56:57
858
原创 [Linux][ARM][decompress]decompress使用的malloc函数分析
之所以写这个文章,是因为阅读linux源码时被坑了.直接F12跳转到了其他地方.分析了半天都看不明白.晕头转向的.跳回来在分析了一遍才发现有个坑的地方.特除记录说明.所以decompress.c在boot阶段还未进入内核时,调用的malloc是简单版本,并不是linux内核中的kmalloc函数.
2025-03-24 19:52:24
232
原创 [Linux][ARM][asm bug]BUG宏的理解
这里就需要根据ARM手册与thumb的手册进行理解了。.这其实是机器码操作码.通过汇编指令转换后的机器码。,即未知的指令,进而触发bug异常。需要注意由于arm是小端架构,所以。可以得知该操作码的指令为。工具进行快速解析既可。
2025-03-15 10:59:28
349
原创 [linux][stm32]早期调试启用(DEBUG_LL)教程
# 这些选项仅适用于想要亲自动手的真正内核黑客。config DEBUG_LL bool "Kernel low-level debugging functions (read help!)" depends on DEBUG_KERNEL help在此处说 Y 以包括 printascii、 printch、 printhex 的定义 在内核中。 如果您正在调试 在控制台初始化之前执行。请注意,选择此选项会将内核限制为单个 UART 定义,如下所述。尝试引导内核 图像
2025-03-09 15:07:56
402
原创 u-boot学习笔记系列(29) --
定义了系统初始化的堆栈指针地址其配置在include/generated/autoconf.h,由include/config.h->include/linux/kconfig.h->include/generated/autoconf.hinclude/generated/autoconf.h为自动生成的文件,包含了系统的配置信息,原始配置在configs/stm32h750-art-pi_defconfig/*
2025-03-01 09:25:46
197
原创 u-boot学习笔记系列(27) -- env
在创建、覆盖或删除环境变量时调用此函数。当设置了(标志和H_FORCE)时,不要打印出任何错误消息并强制覆盖一次性写入变量。: 在新建环境变量时调用此函数。如果环境变量具有标志,则调用。变化时,通过callback函数调用;函数将标志转换为二进制值。将字符串转换为标志位。
2025-02-28 14:33:20
866
原创 u-boot学习笔记系列(26) -- DTS
一个驱动的大类的注册定义;例如serial驱动类,包括多个不同平台的串口设备驱动//debug查看用//所以相同驱动类设备的ID都一样//设备绑定后的回调(device_bind_common调用)//设备绑定前的回调(device_bind_common调用)//设备探测后的回调函数(device_probe函数中调用)//设备探测前的回调函数(device_probe函数中调用)//设备删除前的回调函数//这个类的成员用别名对自己进行排序;
2025-02-28 14:31:10
842
原创 u-boot学习笔记系列(21) -- dlmalloc
当内存池中的空闲块不足以满足请求时,dlmalloc 可以向操作系统请求更多的内存(扩展)。合并:当释放一个块时,dlmalloc 会检查相邻的块是否也是空闲的。如果是,它们会被合并成一个更大的空闲块。每个空闲块的头部包含指向前一个和后一个空闲块的指针。分割:当请求的内存大小小于某个空闲块的大小时,dlmalloc 会将这个空闲块分割成两个块,一个满足请求大小,另一个继续作为空闲块。内存池被分割成多个块,每个块可以是空闲的或已分配的。每个块都有一个头部(header),包含块的大小和状态(空闲或已分配)。
2025-02-28 14:27:35
401
原创 u-boot学习笔记系列(17) -- CMD
[TOC]# boot 命令- bootm 是一个通用的引导命令,支持多种镜像格式和加载方式.- bootz 专门用于引导压缩的 Linux zImage 内核。- booti 专门用于引导 AArch64 Linux 内核映像。## bootm 从内存中引导应用程序映像- [bootm](../boot/bootm.md)## bootz 启动 Linux zImage- [bootz](../boot/bootz.md)## booti 从内存中引导 AArch64 Linux
2025-02-28 14:20:21
144
原创 u-boot学习笔记系列(16) -- image
FIT(Flattened Image Tree)是一种用于嵌入式系统的镜像格式,主要用于 U-Boot 引导加载程序中。FIT 镜像可以包含多个不同类型的镜像文件(如内核、设备树、RAM 磁盘等),并且可以通过配置节点来定义这些镜像文件的加载和启动方式。
2025-02-28 14:19:17
564
原创 u-boot学习笔记系列(12) -- assembly
指令指定reset是一个函数类型的符号通过使用 .section 指令,开发者可以明确地指定代码和数据在内存中的布局,从而更好地控制程序的结构和行为。pushsection 指令用于定义一个新的代码段,并且可以设置段属性。它的语法如下:pushsection section_name, flags是新的代码段的名称。flags是段属性,可以是以下值之一:awx:表示代码段,可读、可写、可执行。a:表示代码段,可读。w:表示代码段,可写。x:表示代码段,可执行。.macro。
2025-02-27 10:24:34
616
原创 u-boot学习笔记系列(11) -- ARM
链接脚本定义了ENTRY(_start),即开始入口为_startcrt0 是 “C runtime zero” 的缩写,通常指的是 C 程序的启动代码。它是一个汇编语言文件,负责在操作系统加载程序后进行一些初始化工作,然后调用程序的 main 函数。crt0 是 C 运行时库的一部分,通常由编译器或链接器自动包含在最终生成的可执行文件中。重新设置堆栈指针,并调用board_init_f_init_reserve初始化保留空间ABI(应用二进制接口)是指应用程序与操作系统或其他程序之间的接口标准。
2025-02-27 10:23:39
855
原创 u-boot学习笔记系列(10) -- ARCH
ARC 是一种基于 RISC(精简指令集计算机)原理的处理器架构,广泛应用于嵌入式系统中。ARC 处理器由 Synopsys 公司开发和推广,广泛应用于嵌入式系统中,因其高性能和低功耗特性而受到欢迎。定义系统是否支持 ioremap 功能ioremap 是一种内存映射函数,常用于将物理内存地址映射到虚拟地址空间,从而允许内核访问设备的寄存器或内存区域。对于U-Boot中的大多数体系结构,虚拟地址是直接的映射到物理地址。
2025-02-27 10:22:52
755
原创 u-boot学习笔记系列(9) -- api
用于外部应用程序的 U-Boot 机器/独立于架构的 API主要假设API 只有一个入口点 (syscall)根据当前的设计,syscall 是 U-Boot 中的 C 语言可调用函数text,它可能会演变成一个真正的 syscall using machine exception 陷阱,一旦此初始版本证明有效使用者应用程序负责生成适当的上下文(调用 number 和参数)进入后,系统调用将调用分派给其他(现有的)U-Boot功能区域,如网络或存储操作。
2025-02-27 10:21:59
286
原创 u-boot学习笔记系列(8) -- u-boot config
在menuconfig中配置时填写字符串允许自定义系统栈指针地址例如stm32h7的系统栈指针地址为0x24040000最开始的代码的地址。
2025-02-27 10:19:26
594
原创 u-boot学习笔记系列(6) -- Bison_Flex
Bison 是一个广泛使用的解析器生成器工具,用于从上下文无关文法(Context-Free Grammar,CFG)生成语法解析器。它通常用于编译器和解释器的开发中,用来解析编程语言的语法。Bison 是 GNU 项目的一部分,是 Yacc(Yet Another Compiler Compiler)的一个兼容实现。为扩展名,包含语法规则和动作代码。Bison 文件通常以。
2025-02-27 10:02:01
919
原创 u-boot学习笔记系列(5) -- GNU_C
函数接受一个字符串参数,并将该字符串作为前缀输出到标准错误流(),后面跟随一个冒号和一个空格,然后是与当前。
2025-02-27 10:01:17
735
原创 u-boot学习笔记系列(4) -- shell 命令
一种参数替换语法,用于检查变量是否已设置并根据结果返回不同的值。以下是对这种语法的详细解释:如果 parameter 已设置且不为空,则结果为 word。如果 parameter 未设置或为空,则结果为空字符串。
2025-02-27 09:50:34
708
原创 u-boot学习笔记系列(3) -- u-boot_make
顶层 makefile# 将这些路径中的built-in.o文件路径添加到libs-y变量中,配置使能的一同添加endif# 如果有板特定的目录,则添加它# 排序目标# 将 libs-y 中的目录路径转换为相应的 built-in.o 文件路径# 将$(libs-y 中匹配以 / 结尾的字符串,这通常表示目录路径, 将匹配的目录路径转换为以 built-in.o 结尾的文件路径。
2025-02-27 09:49:49
945
CUBE+STM32F7+FREEMODBUSV1.5 多从机
2022-01-21
LM324四重运算放大器TI数据手册中文版
2020-09-20
STM32F1必备参考书
2018-07-25
RoboMaster M3508直流无刷减速电机
2018-07-25
液晶显示板revc-20141009-sch-r
2018-07-25
e-LinkS使用方法-3.1 (1)
2018-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人