嵌入式

en.en..2 天前
stm32·嵌入式·位运算·i2c·底层驱动
第一篇:位域打包:看懂 I2C 地址左移的底层逻辑写 I2C 驱动时,几乎所有人都会碰到一行代码:7bit地址 << 1。很多人只记住这是 I2C 的固定写法,却不知道这是一套通用的位域打包思想,I2C 寻址字节只是其中一个特例。
youcans_2 天前
stm32·单片机·嵌入式·ai编程
【嵌入式软件AI编程】21. 整理通用提示词模板欢迎关注 youcans@xidian【嵌入式软件AI编程】专栏 【嵌入式软件AI编程】15. VS Code 插件安装 Claude Code 【嵌入式软件AI编程】17. 第一个AI协同开发项目 【嵌入式软件AI编程】20. AI协同开发STM32程序的流程 【嵌入式软件AI编程】21. 整理通用提示词模板
番茄灭世神2 天前
c语言·单片机·嵌入式
PN学堂GD32课程第15篇——HardFault异常增加一个空指针bug如下:下载之后按键失效,RS485串口也死了,代码卡死在了HardFault:先复习一下这个知识点:
LCG米2 天前
stm32·单片机·嵌入式硬件·串口·嵌入式
STM32串口接收卡死根因排查:ORE溢出标志陷阱、错误标志清除顺序与中断恢复实测STM32 串口接收在长时间运行后突然无响应、只有复位才能恢复,是现场设备最顽固的故障之一,其根因大多指向 ORE 溢出标志的处理缺陷。本文以 STM32F103C8T6 与 STM32F407VET6 为平台,从接收通路硬件机制入手,剖析 ORE 置位后的三条典型"死路":标志清不掉、中断空转、HAL 库自动关闭接收中断导致永久假死,并给出符合参考手册清除序列的恢复实现。压力测试在 115200bps 下注入 1000 次高优先级阻塞:无恢复机制时首轮灌包 8.7 万字节后接收永久失效,有效接收率仅 1
阿源-2 天前
嵌入式·uefi·edk2·固件
从 INF、DSC、DEC 到 FDF:理解 EDK II 的 UEFI 编译与固件生成流程在 EDK II 工程中,INF、DSC、DEC 和 FDF 是有关模块,平台和包的重要配置文件。关于他们之间的关系,可能会容易混淆
2035去旅行3 天前
嵌入式·arm·soc
SOC 里的 CPU 处理器 和 L1/L2 Cache视觉 SoC,CPU 核一般是 Cortex‑A55 四核簇我们以 A55 为基准讲解,同时区分清楚CPU 核心、L1、L2 缓存的归属、工作机制、访问链路、Cache 一致性
优信电子3 天前
单片机·嵌入式
STM32 驱动 SHT35 温湿度传感器:从 I²C 通信到 CRC 校验的完整实战SHT35 是一款高精度数字式温湿度传感器,采用 I²C 通信接口,可测量环境温度和相对湿度,温度测量范围为 −40~125℃,湿度测量范围为 0~100%RH,具有测量精度高、功耗低、体积小和稳定性好等特点。通过单片机发送测量命令并读取传感器数据,广泛应用于环境监测、智能家居及工业温湿度检测等领域
Hotpot3 天前
嵌入式
3 线程管理和调度项目地址:https://github.com/leoduu/mimiRTOS专栏地址:mimiOS上一章线程切换中,我们通过 PendSV 实现了两个线程的简单切换,但切换依赖线程主动让出 CPU。这一章我们将实现一个调度器,在全局的角度来管理线程。
一直C3 天前
驱动开发·嵌入式·arm·dt
嵌入式 Linux 驱动开发学习笔记:设备树、pinctrl 与 GPIO 驱动开发在嵌入式 Linux 驱动开发中,驱动程序不仅需要实现相应的控制逻辑,还需要获取硬件资源信息。例如,LED 连接在哪个 GPIO 引脚、引脚应该配置成什么功能,以及设备使用了哪些寄存器等。
blueSatchel3 天前
linux·嵌入式
framebuffer注册源码解读framebuffer主要是填充fb_info然后调用register_framebuffer()函数
2035去旅行3 天前
嵌入式·arm·soc
两核 CPU:CPU1 和 CPU2 是如何协同工作的?ARMv8 A55 多核簇,硬件层面:CPU1、CPU2 是对等的,没有硬件上的主 / 从之分。所谓 “主次”,是软件(Linux 内核)赋予的逻辑角色,不是硬件天生固定。
blueSatchel3 天前
linux·嵌入式
imx6ull显示控制器设备驱动解读在imx6ull这块soc上,通过厂家提供的设备树将显示控制器注册为了platform_device对于lcd显示屏接口,其也是MIPI接口规定中的一类
Zwawa5 天前
c语言·单片机·嵌入式
让电机走到指定位置:编码器位置环 PIDQ: 位置环是什么? A: 位置环用累计编码器脉冲表示当前位置,并根据目标位置误差产生运动输出。Q: 为什么位置控制需要停止条件? A: 到达目标后若仍持续输出,电机就会在误差和噪声作用下抖动或越过机械限位。
LCG米5 天前
stm32·单片机·嵌入式硬件·嵌入式
STM32时钟树配置实测:HSE起振失败回退HSI、PLL分频倍频计算与Flash等待周期陷阱STM32 上电默认运行在内部 HSI 8MHz,要跑到标称 72MHz 必须完成 HSE 起振等待、PLL 分频倍频、总线分频、Flash 等待周期这一整条配置链,任何一环出错都会表现为串口乱码、延时失准甚至偶发 HardFault。本文基于 STM32F103C8T6,从 RCC_CR、RCC_CFGR、FLASH_ACR 寄存器层面梳理完整配置顺序,实现带超时回退 HSI 的 HSE+PLL 初始化与时钟安全系统(CSS)监控,并用 MCO 引脚输出、串口误码率、GPIO 翻转频率三路手段完成实测。
嵌入式分享5 天前
嵌入式
嵌入式分享#34:浅谈U-Boot (1)除了芯片原厂以及少数方案厂商,目前大部分的产品开发几乎都不需要修改或移植U-Boot 源码,但是了解U-Boot对我们深刻理解Linux知识体系以及系统级问题排查都有极大的帮助。
LCG米5 天前
前端·javascript·stm32·单片机·嵌入式
STM32 HardFault故障定位实测:压栈帧寄存器解析、CFSR故障源判读与出错地址回溯STM32 程序一旦跑飞进入 HardFault,多数开发者只能对着 while(1) 死循环束手无策,现场信息稍纵即逝。本文基于 STM32F407VET6 + ST-Link V2,从 Cortex-M4 异常响应机制入手,完整实现一套 Fault Handler 寄存器转储方案:自动识别 MSP/PSP 压栈帧、逐位解析 CFSR/HFSR/BFAR 故障源、把故障现场固化到 SRAM 并支持复位后回读。通过 4 类故障注入实测,压栈帧 PC 偏移 0x18 与理论值完全一致,BFAR 实测地址与访
不会C语言的男孩6 天前
xml·c语言·嵌入式
libxml2 源码编译与 XML 读取验证(x86 / ARM)目标:在 Ubuntu 虚拟机用源码编译 libxml2,先做 x86(gcc) 验证,再复用同一份源码交叉编译 ARM 版本。 安装目录:x86 → /home/jp/Desktop/xml/lib/x86,ARM → /home/jp/Desktop/xml/lib/arm
Zwawa7 天前
c语言·单片机·嵌入式
先把轮子转稳,才不会烧心:编码器速度环 PID 怎么接回 PWMQ: 速度环是什么? A: 速度环用编码器测得的实际转速与目标转速比较,再调整 PWM 输出。Q: 为什么先做速度环? A: 速度稳定后,位置控制和循迹控制才有可预测的执行基础,左右轮差异也更容易补偿。
云中双月7 天前
linux·嵌入式·uboot·u-boot·emmc·rockchip·烧录·rv1106·瑞芯微
瑞芯微rv1106进入Loader模式转储emmc数据最近遇到个问题,设备在用户手里变砖了。我们把设备拿回来,接上调试串口,打印如下输出看起来是有分区数据损坏,肯定是需要把emmc数据读取出来看看。
Zwawa7 天前
人工智能·嵌入式
黑盒与白盒:人是怎么把世界装进口袋的“黑盒”这个词,前面已经出现过几次了——屏幕先当成黑盒用起来,定时器配置“当成一个边界清楚的黑盒就好”。当时都没展开讲。这篇专门聊聊这个被用滥的词,以及它的另一半:白盒。