openLuat / LuatOS

LuatOS -- Powerful embedded Lua Engine for IoT devices, with many components and low memory requirements (16K RAM, 128K Flash)
https://wiki.luatos.com
MIT License
452 stars 102 forks source link

memheap爆magic错误,原因和触发条件待查 #37

Closed wendal closed 4 years ago

wendal commented 4 years ago

使用playit脚本, 一段时间后(期间操作过串口, 发free/list_thread/list_memheap), 报以下错误

((header_ptr->magic & RT_MEMHEAP_MASK) == RT_MEMHEAP_MAGIC) assertion failed at function:rt_memheap_free, line number:515 
wendal commented 4 years ago

可能的推测: 在某个W60x文档中提到, 128k内存是供hspi/uart使用的缓冲空间,但没有说明具体的地址和方式, 也没有使用条件

wendal commented 4 years ago

还有一个附带问题: wdt似乎没有发挥作用

wendal commented 4 years ago

抓到一次

merge: right node 0x2003bd4c, next_free 0x2003bfc4, prev_free 0x200026b0
insert to free list: next_free 0x2003bfc4, prev_free 0x200026b0
free memory: memory[0x2003bcf4], block[0x2003bcdc]
merge: right node 0x2003bd14, next_free 0x2003bfc4, prev_free 0x200026b0
insert to free list: next_free 0x2003bfc4, prev_free 0x200026b0
free memory: memory[0x2003bc80], block[0x2003bc68]
insert to free list: next_free 0x2003bcdc, prev_free 0x200026b0
free memory: memory[0x2003bc50], block[0x2003bc38]
merge: right node 0x2003bc68, next_free 0x2003bcdc, prev_free 0x200026b0
insert to free list: next_free 0x2003bcdc, prev_free 0x200026b0
free memory: memory[0x2003bc24], block[0x2003bc0c]
merge: left node 0x2003589c
merge: right node 0x2003bc38, next_free 0x2003bcdc, prev_free 0x200026b0
free memory: memory[0x2003c1b4], block[0x2003c19c]
((header_ptr->next->magic & RT_MEMHEAP_MASK) == RT_MEMHEAP_MAGIC) assertion failed at function:rt_memheap_free, line number:518 
wendal commented 4 years ago

已使用rtt_mem.c替换memheap