CH582蓝牙栈在规定的RAM地址外运行

在避开蓝牙协议栈设定的RAM地址的情况下,使用堆。但是堆里面设定的定值改变了。是否蓝牙会使用规定地址之外的RAM,出现过问题,但是难以复现。求教。

您好,协议栈正常运行时不会申请到协议栈预先划分好的ram之外的地址。代码异常跑飞的话,后果无法预计。

您可以监控一下什么时候会出现指定ram地址中的数值被改变,排查一下在什么样的情况下会复现问题,可以通过PC指针进行代码监控。CH582 CH592 CH573 PC指针打印(排查程序运行+死循环指示) - debugdabiaoge - 博客园 (cnblogs.com)

使用TMOS系统时,您注意几点:①中断服务函数中不要直接调用tmos_start_task等安排TMOS事件的接口;②安排TMOS事件时,不要传递不存在的taskID参数;③ram的使用率不要占用太多,协议栈外的堆栈范围是编译后,32Kram剩下的部分;当剩余ram很少时,可能会出现应用层堆栈挤用协议栈ram的情况。


只有登录才能回复,可以选择微信账号登录