事情来由:一个客户打算在KE02Z64VQH2上使用MQXLite,但是由于该MCU的RAM只有4K,于是我在做实验时,就考虑通过降低每个任务的task stack size 来增加任务数目。当我把stack的size设置为128时,程序进入到PE_ISR(Cpu_ivINT_Hard_Fault) 这里,当我把size再调大一点到145,就没有问题,于是我很困惑:1.为什么会进到这个中断里?2、每个task的size最小值是多少?有没有限制?
带着这个问题,我开始从网上找资料,在community网站上发现别人也遇到过类似的问题,看到其中一点对我提示很大:就是要搞清楚程序是在什么地方进入到这个中断的?于是我单步执行去调试,后来找到这个问题所在。
在程序中会有一个stack size的最小值判断,通过调试知道必须设置stack size值必须大于140.