在sysbios调试时,在Task 中进行动态内存分配,程序运行正常,而当我将同样的模块放入软中断中调用时,程序运行到malloc (or Memory_alloc())时,程序就死了,提示:ti.sysbios.gates.GateMutex:line 97 assertion failure:A badcontext: bad calling context. See gateMutex API doc for detail 。
不知何解?麻烦专家指导一下,谢谢
这里系统默认的heap开的挺大,肯定足够一次malloc的分配
Wu Feng:
回复 Andy Yin1:
谢谢。之前测试时也就的task中可以malloc.
bios 在默认的情况下,打开 GateMutex,后来我将其设置成 NoBlocking 这样在软中断中malloc成功了。这样做的话,有啥弊端 ?
Andy Yin1:
回复 Wu Feng:
你为何一定要在swi中分配内存呢,起始完全可以在swi中触发一个任务然后在执行相应的操作。