- 博客(15)
- 收藏
- 关注
原创 算法/技术
内存屏障(memory barrier),也称为内存栅栏或同步屏障,是操作系统和硬件层面的关键,用于控制内存操作的执行顺序,解决多核/多线程环境下由处理器乱序执行和编译器优化导致的内存访问一致性的问题。
2025-07-11 09:41:32
249
原创 【BitsButton-master】- 位域结构体
BitsButton是一款针对嵌入式系统优化的按键检测框架。通过创新的二进制位序列技术,它能高效处理单键、组合键(如Ctrl+C)和复杂按键序列(如单击→长按→双击),提供从按键按下到释放的全生命周期跟踪。独特的无锁环形缓冲设计确保多线程环境下事件不丢失,显著简化了传统按键逻辑的实现复杂度,特别适用于资源受限的嵌入式设备和复杂人机交互场景。
2025-07-10 17:47:02
604
原创 不可重入函数
不可重入 的本质在于其依赖的共享全局状态在并发执行时会被破坏,导致计算结果不可靠甚至程序崩溃。所以不可重入的意思是:因为资源共享,所以重入会导致错误发生,而不是资源锁死,第二次无法占用资源。但上面的说法不够专业化,准啊也说法如下:“不可重入”的核心含义是:函数或操作因依赖共享资源(如全局变量、静态数据),在并发或中断场景下被重入时会导致数据错误或逻辑混乱,而非资源被永久锁死导致第二次调用完全无法执行。
2025-06-20 16:18:59
149
原创 RT-Thread操作系统的移植
RT-Thread操作系统的移植接口文件主要用cpuport.c,context_rvds.scontext_rvds.s是一个汇编文件,也需要加进工程里面,这个文件实现了任务切换,触发软件中断,硬件异常错误处理等操作,是系统移植时要实现的最重要的功能。
2024-06-22 18:23:10
394
原创 C++核心编程
*作用:**函数名可以相同,提高复用性同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同函数的返回值不可以作为函数重载的条件//函数重载需要函数都在同一个作用域下cout
2024-04-10 15:52:53
551
1
原创 C++基础入门
所谓数组,就是一个集合,里面存放了相同类型的数据元素**特点1:**数组中的每个数据元素都是相同的数据类型**特点2:**数组是由连续的内存位置组成的数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例//定义方式1//数据类型 数组名[元素个数];//利用下标赋值//利用下标输出//第二种定义方式//数据类型 数组名[元素个数] = {值1,值2 ,值3 ...};
2024-04-10 14:05:33
1012
1
原创 通信协议
现在大体上网络通讯分为5层和7层的,7层的OSI是理论型,5层的TCP/IP是实践型。现在几乎所有厂商用到的都是TCP/IP协议。
2023-11-26 17:56:46
1040
1
原创 驱动开发-杂项设备注册和模块解释
Makefile中,obj-m是编译成模块,形成.ko的文件,用insmod指令进行加载模块。obj-y是编译进内核,这无疑会加大内核的体积,所以我们练习的时候用的都是obj-m,随时裁剪内核,方便快捷。如果用的是编译进内核,那需要重新把内核烧进SD卡或eMMC上,再重新启动开发板。
2023-11-26 17:41:16
400
1
原创 内核配置和文件系统制作
内核和文件系统很大至少要50G硬盘,如果当下虚拟机的硬盘空间不够大,扩展硬盘需要的操作太麻烦,至少得一个下午,甚至还会有遗留问题,建议直接重新创建一个新的虚拟机。创建新的虚拟机后需要下载的工具:1.vim 2.gcc 3.交叉编译工具。
2023-11-21 20:44:04
134
原创 内核文件系统移植
内核和文件系统很大至少要50G硬盘,如果当下虚拟机的硬盘空间不够大,扩展硬盘需要的操作太麻烦,至少得一个下午,甚至还会有遗留问题,建议直接重新创建一个新的虚拟机。1.vim 2.gcc 3.交叉编译工具。
2023-11-21 19:38:34
47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人