请问一下"tmos_memory_allocate"/"tmos_msg_allocate"这个函数是从BLE_LibInit初始化时传入的cfg.MEMAddr这一块内存中申请的还是从heap中申请的?
以及运行时栈的大小是否确定?在使用malloc时,heap可能会和栈的区域重合。
热门产品 :
CH182: 以太网PHY收发器芯片
请问一下"tmos_memory_allocate"/"tmos_msg_allocate"这个函数是从BLE_LibInit初始化时传入的cfg.MEMAddr这一块内存中申请的还是从heap中申请的?
以及运行时栈的大小是否确定?在使用malloc时,heap可能会和栈的区域重合。
tmos_msg_allocate函数为从蓝牙内存缓冲区(即BLE_LibInit初始化时传入的cfg.MEMAdd)分配出一块可用内存。
不建议使用标准库的malloc,堆和栈加起来的大小默认为:18kb - 代码占用的ram空间。当ram剩余空间少时,堆极容易侵犯栈的内存,导致错误。
stack从ram末端往前使用,heap从代码占用的ram空间后面往后使用。
好的,感谢