[CH573] 关于内存的疑问

请问一下"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空间后面往后使用。


好的,感谢


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