請問一下"tmos_memory_allocate"/"tmos_msg_allocate"這個函數是從BLE_LibInit初始化時傳入的cfg.MEMAddr這一塊內存中申請的還是從heap中申請的?
以及運行時棧的大小是否確定?在使用malloc時,heap可能會和棧的區(qū)域重合。
熱門產品 :
CH397: 高集成度、低功耗USB網卡芯片
請問一下"tmos_memory_allocate"/"tmos_msg_allocate"這個函數是從BLE_LibInit初始化時傳入的cfg.MEMAddr這一塊內存中申請的還是從heap中申請的?
以及運行時棧的大小是否確定?在使用malloc時,heap可能會和棧的區(qū)域重合。
tmos_msg_allocate函數為從藍牙內存緩沖區(qū)(即BLE_LibInit初始化時傳入的cfg.MEMAdd)分配出一塊可用內存。
不建議使用標準庫的malloc,堆和棧加起來的大小默認為:18kb - 代碼占用的ram空間。當ram剩余空間少時,堆極容易侵犯棧的內存,導致錯誤。
stack從ram末端往前使用,heap從代碼占用的ram空間后面往后使用。
好的,感謝