//lwip内核部分,内存申请 //返回值:0,成功; // 其他,失败 u8 lwip_comm_mem_malloc(void) { u32 mempsize; u32 ramheapsize; mempsize=memp_get_memorysize(); //得到memp_memory数组大小 memp_memory=mymalloc(SRAMIN,mempsize); //为memp_memory申请内存 ramheapsize=LWIP_MEM_ALIGN_SIZE(MEM_SIZE)+2*LWIP_MEM_ALIGN_SIZE(4*3)+MEM_ALIGNMENT;//得到ram heap大小 ram_heap=mymalloc(SRAMIN,ramheapsize); //为ram_heap申请内存 TCPIP_THREAD_TASK_STK=mymalloc(SRAMIN,TCPIP_THREAD_STACKSIZE*4);//给内核任务申请堆栈 LWIP_DHCP_TASK_STK=mymalloc(SRAMIN,LWIP_DHCP_STK_SIZE*4); //给dhcp任务堆栈申请内存空间 if(!memp_memory||!ram_heap||!TCPIP_THREAD_TASK_STK||!LWIP_DHCP_TASK_STK)//有申请失败的 { lwip_comm_mem_free(); return 1; } return 0; }
//lwip内核部分,内存申请 //返回值:0,成功; // 其他,失败 uint8_t lwip_comm_mem_malloc(void) { uint32_t mempsize; uint32_t ramheapsize; mempsize=memp_get_memorysize(); //得到memp_memory数组大小 memp_memory=mymalloc(SRAMEX,mempsize); //为memp_memory申请内存 printf("memp_memory内存大小为:%d\r\n",mempsize); ramheapsize=LWIP_MEM_ALIGN_SIZE(MEM_SIZE)+2*LWIP_MEM_ALIGN_SIZE(4*3)+MEM_ALIGNMENT;//得到ram heap大小 ram_heap=mymalloc(SRAMEX,ramheapsize); //为ram_heap申请内存 printf("ram_heap内存大小为:%d\r\n",ramheapsize); TCPIP_THREAD_TASK_STK=mymalloc(SRAMEX,TCPIP_THREAD_STACKSIZE*4); //给内核任务申请堆栈 //LWIP_DHCP_TASK_STK=mymalloc(SRAMEX,LWIP_DHCP_STK_SIZE*4); //给dhcp任务申请堆栈 if(!memp_memory) { lwip_comm_mem_free(); return 1; } if(!ram_heap) { lwip_comm_mem_free(); return 1; } if(!TCPIP_THREAD_TASK_STK) { lwip_comm_mem_free(); return 1; } // if((!memp_memory)||(!ram_heap)||(!TCPIP_THREAD_TASK_STK));//||!LWIP_DHCP_TASK_STK) //有申请失败的 // { // lwip_comm_mem_free(); // return 1; // } return 0; }