在避开蓝牙协议栈设定的RAM地址的情况下,使用堆。但是堆里面设定的定值改变了。是否蓝牙会使用规定地址之外的RAM,出现过问题,但是难以复现。求教。
热门产品 :
CH634: 4端口USB3.0 HUB控制器芯片
在避开蓝牙协议栈设定的RAM地址的情况下,使用堆。但是堆里面设定的定值改变了。是否蓝牙会使用规定地址之外的RAM,出现过问题,但是难以复现。求教。
您好,协议栈正常运行时不会申请到协议栈预先划分好的ram之外的地址。代码异常跑飞的话,后果无法预计。
您可以监控一下什么时候会出现指定ram地址中的数值被改变,排查一下在什么样的情况下会复现问题,可以通过PC指针进行代码监控。CH582 CH592 CH573 PC指针打印(排查程序运行+死循环指示) - debugdabiaoge - 博客园 (cnblogs.com)
使用TMOS系统时,您注意几点:①中断服务函数中不要直接调用tmos_start_task等安排TMOS事件的接口;②安排TMOS事件时,不要传递不存在的taskID参数;③ram的使用率不要占用太多,协议栈外的堆栈范围是编译后,32Kram剩下的部分;当剩余ram很少时,可能会出现应用层堆栈挤用协议栈ram的情况。