栈空间带来的大问题

复杂单片机项目,rtt-nano框架,5路串口,1路spi,2路iic,usb,tmr,adc,大量dma,导致中断服务函数包含了大量内容,比如串口中串口+dma+idle中断,比如串口的tdc中断负责定位发送完毕,比如几乎每个dma都有对应中断,iic中断,spi中断,比如systick中断,比如用tmr实现的微秒级延时+链表组成微秒级定时任务等等,大量的ISR代码导致默认的栈空间被快速占满,结果导致一个极其奇怪的问题:

使用seggerRTT搞定了rtt-nano的msh功能,然后,使用msh指令测试flashdb的tsdb的写入过程中,如果注释掉iic的ISR中断服务函数,就能正常测试;如果不注释保留,那么当反复多次测试写入、打印过程,或者是先执行list_thread指令再执行打印测试,mcu 就死机。删掉iic服务函数就不死机。

最终定位为栈空间不足,扩大16倍到64kB后问题解决。

相关推荐
zhangrelay8 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
comyccccc9 小时前
STM32F103C8T6最小系统板设计全解析学习笔记
单片机·1024程序员节
Industio_触觉智能9 小时前
把NPU检测直接嵌进采集终端|RK3576 AI采集终端全链路拆解教程-下
嵌入式硬件·ai·硬件架构·npu·ai视觉·rk3576·采集终端
en.en..9 小时前
STM32 GPIO ODR 与 BSRR 寄存器完整对比详解
单片机·嵌入式硬件
HQB202612 小时前
EG1182|屹晶微电子 60V 内置高压管异步降压 DC‑DC
嵌入式硬件·硬件工程
LCG米14 小时前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
深圳老胡14 小时前
STM32C5A3ZG 网络调试总结:从启动失败到连续 Ping 稳定
笔记·stm32·单片机·代码规范
硅基造物主15 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm
简单电磁炮15 小时前
关于adc采集
stm32·单片机
HQB202616 小时前
EG1163 (S)|屹晶微电子 600V 高压同步降压半桥控制器
嵌入式硬件·硬件工程