在做实验的时候,使用正点原子的LWIP例程作为底层来进行实验,使用过程中进入HardFault_Handler内部异常,查阅资料了解到此中断原因多为内存泄露,数组溢出,空指针,硬件问题。此次遇到的问内存管理出问题进入异常。检查代码发现问题出现在内存管理部分,正点原子官方例程对内存分配进行了封装如下:
在申请内存时使用的是mymalloc函数,并未使用malloc函数原型。
在个人编程时,使用malloc函数原型来申请了内存,猜测是因此导致内存分配表出现问题,导致程序跑一段时间后会进入或异常(即分配到那块内存了,但是发现被申请过,重复申请),后面将自己的代码中malloc函数申请内存使用例程提供的mymalloc后问题解决。
后记:以此例程为例,在使用三方代码分配内存时,最好检查并使用同一种内存分配方式,否则可能导致内存泄漏,比如此文中,可以统一使用”mymalloc“或者”mylloc“来进行申请(使用完务必把内存free掉)。
初学者笔记,若有错误,欢迎指正。