WCH沁恒单片机
直播中

王尚岱

8年用户 1483经验值
擅长:电源/新能源
私信 关注
[问答]

CH573运行时栈的大小如何确定?

请问一下"tmos_memory_allocate"/"tmos_msg_allocate"这个函数是从BLE_LibInit初始化时传入的cfg.MEMAddr这一块内存中申请的还是从heap中申请的?

以及运行时栈的大小是否确定?在使用malloc时,heap可能会和栈的区域重合。
  

回帖(1)

李子邯

2022-8-19 09:24:06
tmos_msg_allocate函数为从蓝牙内存缓冲区(即BLE_LibInit初始化时传入的cfg.MEMAdd)分配出一块可用内存。
不建议使用标准库的malloc,堆和栈加起来的大小默认为:18kb - 代码占用的ram空间。当ram剩余空间少时,堆极容易侵犯栈的内存,导致错误。
stack从ram末端往前使用,heap从代码占用的ram空间后面往后使用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分