
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
最近使用了一款芯片是STM32F030F4(Cortex-M0内核),在编写把ootloader → pp 跳转代码时,发现它中断向量表的重映射方法与常见的F10x4(Cortex-M3内核)/F40x4(Cortex-M4内核)不同,遇到了新的现象,记录一下结论:Cortex-M0 没有 VTOR 寄存器,不能像 M3/M4 那样用 SCB->VTOR 改中断向量基址。

几个核心概念:总线(Bus): 总线可以理解为一种公共的通信通道,在总线型网络中,所有设备都共享同一条物理线路。这种架构非常适合多点通信,即一个设备可以在一条线路上与多个设备进行通信差分信号: 差分信号是一种通过两根线之间的电压差来传输信息的信号。这两根线通常被称为A和B(或H和L)与此相对的是单端信号,它只使用一根信号线和地线间的电压差来传输信息为什么要差分传输?差分信号最大的优点在于其强大的抗

避免跨核上下文切换的开销ESP32的每个核心(Core 0和Core 1)拥有独立的缓存和硬件资源(如FPU)。若任务允许跨核迁移(tskNO_AFFINITY),可能会导致以下问题:FPU状态同步失败:浮点任务跨核运行时,FPU寄存器状态无法自动同步,可能导致计算错误。缓存一致性开销:跨核切换时需刷新缓存,增加延迟。资源隔离与冲突规避部分硬件外设(如WiFi/BT射频模块)的驱动和中断默认绑定到

本文针对ESP-IDF框架下的FreeRTOS任务资源优化问题,系统讲解任务栈使用监控与运行时统计的实现方法。通过`uxTaskGetStackHighWaterMark`函数实时检测栈水位,结合`vTaskList`和`vTaskGetRunTimeStats`实现全任务状态可视化。

STM32内置逐次逼近型(SAR)ADC采用12位分辨率,通过DAC和比较器逐位逼近输入电压实现模数转换,量程默认0-3.3V(由VREF+决定),支持外接调理电路扩展测量范围。其核心参数包含0.8mV理论精度、受Nyquist定理约束的采样频率(≥2倍信号频率),以及由采样时间(可编程)和12.5时钟周期组成的转换时间。实际应用中需注意参考电压稳定性问题,可通过内部VREFINT校准或外接高精度

对于Cortex-M内核,架构采用错误异常的机制来检测问题,当核心检测到一个错误时,异常中断会被触发,并且核心会跳转到相应的异常终端处理函数执行,错误异常的终端分为以下四种:HardFaultMemManageBusFaultUsageFault从软件角度,产生hardfault的可能原因有:(1)数组越界(2)野指针(3)未初始化硬件却开始操作,或无中断服务函数(4)任务堆栈溢出。

STM32内置逐次逼近型(SAR)ADC采用12位分辨率,通过DAC和比较器逐位逼近输入电压实现模数转换,量程默认0-3.3V(由VREF+决定),支持外接调理电路扩展测量范围。其核心参数包含0.8mV理论精度、受Nyquist定理约束的采样频率(≥2倍信号频率),以及由采样时间(可编程)和12.5时钟周期组成的转换时间。实际应用中需注意参考电压稳定性问题,可通过内部VREFINT校准或外接高精度

这是我2023年参与研发的二轮平衡机器人(比赛需要),当时一边编写控制代码一边写文档记录学习过程,现在有空整理一下将其中部分内容摘录出来

这是我2023年参与研发的二轮平衡机器人(比赛需要),当时一边编写控制代码一边写文档记录学习过程,现在有空整理一下将其中部分内容摘录出来








