栈空间带来的大问题

复杂单片机项目,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后问题解决。

相关推荐
殷忆枫26 分钟前
基于STM32的独居老人语音/一键双模紧急呼救系统设计与实现
stm32·嵌入式硬件·xcode
袁章根37 分钟前
基于瑞昱RTL8367S交换机电路设计(一)
网络·嵌入式硬件·硬件架构·硬件工程
深圳市恒锐丰科技杨生1 小时前
EG44273 20V 低压单通道低侧栅极驱动芯片|屹晶 EGmicro
嵌入式硬件·硬件工程
搁浅小泽2 小时前
通用二极管选型设计规范
单片机·嵌入式硬件·设计规范
HRTOS2 小时前
HRTOS 4.0 将长期维护:为什么版本号不再频繁变化
经验分享·git·单片机·51单片机
深圳老胡2 小时前
STM32 在 VSCode 下 -O0 与 -Os 编译条件的区别
笔记·stm32·单片机·代码规范
智感子7 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
新晨单片机设计9 小时前
S021A-基于STM32单片机自动追光系统(步进电机)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·自动追光系统
恒锐丰科技林技术员11 小时前
EG2129 带过流保护全桥驱动芯片解析
经验分享·嵌入式硬件·硬件工程
女神下凡14 小时前
芯参谋(43):DDR4_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范