问题:单片机开发中一般不会直接调用编译器提供的malloc和free,但是要封装库,需要动态内存的地方又避不开这俩函数,所以需要重定向一下这俩函数。现在以使用FreeRTOS为例说明
1.IAR中的处理,特别简单如下图所示
2.MDK中
#pragma import(__use_no_heap_region) //AC5
__asm(".global __use_no_heap_region\n\t") //AC6
void *malloc( size_t size ) {
return pvPortMalloc(size);
}
void free(void* pv) {
vPortFree(pv);
}