- 博客(8)
- 收藏
- 关注
原创 外设数据传输之FIFO和DMA
DMA 传输不依赖 FIFO当外设与 DMA 速度匹配、数据量小且稳定时,DMA 可直接传输,无需 FIFO;当存在速度波动、突发传输或数据对齐问题时,FIFO 是提升传输可靠性和效率的关键补充。
2025-09-11 17:20:45
1010
原创 蓝牙协议中的L2CAP(逻辑链路控制与适配协议)详解
L2CAP 通过分段重组、信道复用、格式适配三大核心功能,解决了 “上层协议多样性” 与 “底层链路统一性” 之间的矛盾,让上层协议无需关心底层细节,专注于自身服务逻辑,最终实现了蓝牙设备间 “逻辑上的端到端通信”。它是蓝牙协议栈中实现 “灵活复用物理链路、支持多服务并行通信” 的关键协议。
2025-08-22 15:24:55
451
原创 I2S,PCM,PDM之间的关系
具体来说,I²S 的串行数据线(SD)上传输的就是 PCM 编码的二进制数据:每个音频采样点的量化值(如 16bit、24bit 数据)会按位串行传输,配合位时钟(SCK)和声道选择(WS)信号,确保接收方准确解析出每个声道的 PCM 采样数据。PDM 脉冲的高频成分(超过音频带宽,如 >20kHz)是 “冗余信息”,需通过低通滤波器过滤,保留音频范围内的信号(20Hz~20kHz),得到平滑的模拟信号(或等效的低频数字信号)。(而非直接的量化值),其脉冲密度对应模拟信号的幅度(密度越高,幅度越大)。
2025-08-12 15:31:01
1089
原创 RTOS中的压栈和出栈操作详解
压栈是栈数据结构的核心操作,通过 “后进先出” 的特性,在函数调用、中断处理、任务切换等场景中实现数据的临时存储与恢复,是计算机硬件和操作系统协同工作的基础机制。其操作简单高效,由硬件直接支持(如专用指令和栈指针寄存器),确保了系统的稳定运行。出栈(Pop)是栈操作中与压栈(Push)对应的逆过程,用于从栈顶取出数据并移除。它严格遵循栈的 “后进先出(LIFO)” 原则,即最后压入栈的数据会被最先取出。出栈操作的核心是 “读取栈顶数据→调整栈指针。
2025-08-07 10:25:38
943
原创 操作系统是如何实现任务切换的?
操作系统中任务切换的基本概念,也就是上下文切换,是多任务操作系统的核心功能,让多个个任务能共享 CPU 资源。首先,得明确任务切换的目的:在多个任务之间快速切换,让每个任务看起来像是在独占 CPU。这涉及到保存当前任务的状态,加载下一个任务的状态。接下来,需要分解任务切换的步骤。首先是触发机制,比如时钟中断、任务主动放弃 CPU(如调用 sleep)、高优先级任务抢占等。
2025-08-06 17:58:10
904
原创 NXP MCXN947平台双核中的CPU1无法控制GPIO
这个案例展示了在支持多核MCU平台时需要考虑的安全架构问题。Zephyr作为跨平台RTOS,需要妥善处理不同厂商芯片的特殊配置要求。对于NXP MCXN947这样的平台,开发者必须理解其TrustZone安全机制,并在系统初始化阶段正确配置外设访问权限,才能充分发挥多核处理器的能力。Zephyr项目NXP MCXN947平台CPU1无法控制GPIO问题分析 - GitCode博客下面说一下代码应该如何修改在使用双核demo工程的情况下,需要在主核core0进行GPIO初始化,具体接口如下。
2025-08-05 17:23:38
963
原创 LVGL 渲染分析
LVGL渲染引擎是轻量级图形库的核心模块,负责将界面对象转换为屏幕像素数据。其核心功能包括:1)视觉属性到像素的转换,处理几何形状计算和颜色混合;2)区域裁剪机制减少无效渲染,仅刷新界面变化区域;3)支持抗锯齿、渐变等视觉效果提升质感;4)采用双缓冲区避免画面闪烁。该引擎通过对象系统监听变化、与硬件抽象层协同工作,实现了在资源有限的嵌入式设备上高效渲染复杂界面,即使在STM32F4等中低端MCU上也能流畅运行。
2025-07-29 17:22:02
723
原创 LVGL 分层架构及功能实现
LVGL分层架构解析:硬件抽象、核心与应用层协同实现高效嵌入式GUI开发 LVGL采用三层架构设计,通过硬件抽象层(HAL)、核心层和应用层的协同配合,实现灵活高效的嵌入式GUI开发。硬件抽象层包含显示接口、输入设备接口和系统接口,负责屏蔽底层硬件差异;核心层提供对象系统、渲染引擎、事件系统和样式系统等基础功能;应用层则支持开发者通过API快速构建界面或进行自定义扩展。三层通过标准化接口衔接,形成"底层稳定、上层灵活"的架构特点,既保证了硬件兼容性,又简化了界面开发流程。
2025-07-29 15:17:45
1048
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅