- 博客(8)
- 收藏
- 关注
原创 ESP-IDF中的FreeRTOS与原生FreeRTOS的区别分析
避免跨核上下文切换的开销ESP32的每个核心(Core 0和Core 1)拥有独立的缓存和硬件资源(如FPU)。若任务允许跨核迁移(tskNO_AFFINITY),可能会导致以下问题:FPU状态同步失败:浮点任务跨核运行时,FPU寄存器状态无法自动同步,可能导致计算错误。缓存一致性开销:跨核切换时需刷新缓存,增加延迟。资源隔离与冲突规避部分硬件外设(如WiFi/BT射频模块)的驱动和中断默认绑定到Core 0。若任务随意跨核运行,可能导致核间资源竞争(如SPI总线访问冲突)。注意事项。
2025-04-08 00:55:19
1221
1
原创 FreeRTOS任务栈查看与运行时间统计(ESP-IDF框架为例)
本文针对ESP-IDF框架下的FreeRTOS任务资源优化问题,系统讲解任务栈使用监控与运行时统计的实现方法。通过`uxTaskGetStackHighWaterMark`函数实时检测栈水位,结合`vTaskList`和`vTaskGetRunTimeStats`实现全任务状态可视化。
2025-03-31 03:53:04
979
原创 stm32 keil hardfault 定位方法和步骤
对于Cortex-M内核,架构采用错误异常的机制来检测问题,当核心检测到一个错误时,异常中断会被触发,并且核心会跳转到相应的异常终端处理函数执行,错误异常的终端分为以下四种:HardFaultMemManageBusFaultUsageFault从软件角度,产生hardfault的可能原因有:(1)数组越界(2)野指针(3)未初始化硬件却开始操作,或无中断服务函数(4)任务堆栈溢出。
2025-03-29 04:30:05
451
原创 STM32 ADC原理介绍&电压电流采集原理
STM32内置逐次逼近型(SAR)ADC采用12位分辨率,通过DAC和比较器逐位逼近输入电压实现模数转换,量程默认0-3.3V(由VREF+决定),支持外接调理电路扩展测量范围。其核心参数包含0.8mV理论精度、受Nyquist定理约束的采样频率(≥2倍信号频率),以及由采样时间(可编程)和12.5时钟周期组成的转换时间。实际应用中需注意参考电压稳定性问题,可通过内部VREFINT校准或外接高精度基准源优化精度,配合电阻分压/采样电阻电路可实现宽范围电压/电流测量,建议采用RC滤波和软件校准消除噪声干扰。
2025-03-28 23:00:50
2154
原创 使用keil AC6 编译器(关于一次数组越界的记录)
之前一直是用v5编译,编译速度慢,换成V6编译速度快两倍以上 ,而且 arm 后期只维护v6编译器不再更新v5编译器Keil MDK自 V5.36 版本之后,默认就不带 Arm Compiler V5版本编译器。如果需要使用 V5 版本编译器,就需要自己下载并安装使用v6编译器需要注意以下:配置优化选项使用V6编译器有时候不能跳转到定义具体分析如下:模拟栈溢出问题使用V5编译器开启等级优化出现bug停止运行后,黄色光标正常定位: debug 栈调用窗口正常显示使用V6编译器且开启。
2024-07-18 14:34:29
1946
原创 树莓派开机自动发送自己的ip到邮箱
由于我的树莓派刷了ubuntu20 LTS,每次使用又都是不插网线的,连接手机热点,电脑ssh来登录使用(因为没有便携显示屏)大家都知道使用ssh连接需要知道树莓派的ip,如果是连接自己手机热点还好,部分品牌手机可以直接看到连接设备的ip但是我的MIUI13不支持,这里大家可以手机下载终端模拟器,输入ip neight命令就可以看到连接设备的ip了如果以后连接其他网络,又进不去路由器后台页面,又没有办法查看ip(或者觉得手动查看ip太麻烦),就可以树莓派开机自动发送自己的ip到邮箱。
2024-03-18 15:32:38
2217
1
原创 二轮平衡机器人数学模型分析以及Simuscape下的LQR仿真
这是我2023年参与研发的二轮平衡机器人(比赛需要),当时一边编写控制代码一边写文档记录学习过程,现在有空整理一下将其中部分内容摘录出来
2024-03-08 18:03:13
2699
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人