logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

一次由 C 位域非原子写入引发的状态上报异常

摘要: 嵌入式控制固件中出现传感器状态持续触发但心跳报文长期上报为0的异常,排查发现根源在于C语言位域写入的非原子性。多个执行上下文并发写入同一心跳报文对象时,位域的读改写操作导致状态位被覆盖。具体表现为:传感器状态位被错误覆盖后,因滤波逻辑未检测到变化而不再更新,使错误状态持续。解决方案包括避免多上下文直接写入共享位域对象、建立单写者模型或保护写入与快照操作。该案例警示:packed位域不适合作

文章图片
#c语言#java#网络
RT-Thread调试利器:get_irq_priority——像Keil一样在MSH中查看和设置中断优先级

摘要:RT-Thread软件包get_irq_priority提供了一种无需硬件调试器即可实时查询和设置中断优先级的方法。它通过MSH命令实现中断状态全景展示、多维排序和动态优先级调整,解决了嵌入式开发中中断调试的痛点问题。该工具基于CMSIS标准API,支持主流Cortex-M内核MCU,显著提升了调试效率、增强了系统透明度,特别适合现场设备维护和RTOS学习。项目地址:https://gith

文章图片
#单片机#嵌入式硬件
MAX14830 可移植 C 驱动实现分析:一个适合多串口扩展场景的开源基础版本

本文分析了开源项目wdfk-prog/max14830实现的MAX14830多串口扩展芯片的C语言驱动。该驱动采用平台无关设计,通过HAL抽象层实现可移植性,适合嵌入式系统中串口资源扩展需求。目前支持SPI模式下4路UART的基础配置、FIFO收发及16路GPIO控制,但尚未实现中断和I2C功能。项目结构清晰,边界明确,接入方式简单,可作为多串口扩展方案的开发起点,尤其适用于硬件调试和驱动封装的基

文章图片
#c语言#开源#开发语言
M104BPCSX-5024 RFID 驱动与应用层开源实现分析

本文分析了开源项目 wdfk-prog/m104bpcsx_5024 实现的 RFID 驱动与应用层方案。该项目围绕 M104BPCSX-5024 RFID 模块,构建了完整的嵌入式实现框架,主要特点包括: 采用分层架构设计,将协议处理、驱动实现和应用逻辑分离; 通过统一接口抽象支持 SPI 和 UART 两种通信方式; 实现基于 RTOS 的多通道轮询管理; 采用软件模拟空闲检测机制处理桥接芯片

文章图片
#开源
Qboot V2:让 Bootloader 从“能升级”走向“可持续演进”

Qboot V2:构建可持续演进的Bootloader框架 Qboot V2标志着Bootloader设计从基础功能实现向可持续架构演进的重要转变。相比注重快速落地的V1版本,V2通过五大核心升级构建了更完善的升级框架体系: 可插拔存储架构:实现多后端存储支持,突破单一介质限制 算法注册机制:将压缩/加密算法从功能选项升级为可扩展框架 流式处理模型:优化资源受限环境下的升级流程 状态管理系统:强化

文章图片
#数据库
[Linux][PR]使用B4向linux内核提交补丁

本文介绍了使用b4工具向Linux内核提交补丁的完整流程:从安装b4、创建补丁分支、撰写提交信息,到签名验证、邮件发送和后续审核。重点包括使用b4 prep创建补丁分支,通过patatt genkey生成签名密钥,进行dry-run检查,使用web端点验证身份,以及最终通过b4 send发送补丁。最后还展示了如何查看已提交的补丁并响应审核意见,例如当维护者建议改用static_assert进行编译

文章图片
#linux#学习#嵌入式硬件 +1
PotPlayer采集卡选麦克风会导致黑屏及音频修复方案

摘要: 本文分析了使用PotPlayer连接HDMI采集卡时出现黑屏和无声问题的原因及解决方案。核心错误在于误选音频设备(麦克风)作为视频源导致黑屏,正确操作应分别选择视频和音频设备。解决无声问题需点击“打开设备”重置驱动连接,并检查Windows隐私设置中的麦克风权限。完整配置流程包括正确选择视频/音频设备、激活设置及系统权限调整,最终实现画面与声音同步。

文章图片
#音视频#单片机#stm32
[Linux]学习笔记系列 -- lib/maple_tree.c 高性能B树实现(High-Performance B-Tree Implementation) VMA管理的核心数据结构

文章摘要 Maple Tree是Linux内核为优化VMA管理设计的高性能B树变体,取代传统红黑树以解决多核环境下的锁争用和缓存效率问题。其核心采用缓存优化的B树结构,支持RCU无锁读取,显著提升并发性能,适用于大规模VMA管理(如数据库、科学计算)。自Linux 5.14引入后,Maple Tree逐步成为VMA默认数据结构,并扩展至其他范围映射场景。与红黑树相比,它在高并发和范围操作上优势明显

文章图片
#数据结构#linux#学习 +2
[hpatch]差分算法学习笔记 -- patch解压补丁

文章摘要 HPatch的patch.c实现了一种高效的可变长度整数编码方案,类似LEB128/VLQ。该方案通过将整数拆分为7位数据块,利用最高位作为连续标志位,实现对小数值的压缩存储。核心函数hpatch_packUIntWithTag支持在首个字节嵌入自定义标志位(kTagBit),采用大端序输出。编码过程分为三步:1)循环分解数值到临时缓冲区;2)组合高位、标签和标志位生成首字节;3)逆序处

文章图片
#算法#学习#elasticsearch +2
[hpatch]差分算法学习笔记 -- hdiffi差分压缩

hdiffpatch: 内存模式补丁生成核心解析 本文介绍了HDiffPatch工具集中负责补丁生成的核心模块hdiffi,重点分析了其内存模式实现hdiffi_in_mem的工作原理。 核心特点: 采用完全内存模式操作,将新旧文件全部加载到内存进行比较,提升访问速度 通过TDiffiSets结构体和compressPlugin接口实现高度模块化设计 支持两种差分模式:标准lite格式和原地更新(

文章图片
#算法#学习#elasticsearch +3
    共 35 条
  • 1
  • 2
  • 3
  • 4
  • 请选择