完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大神好,捣鼓了几天结合各种论坛上下载的程序,终于把lwip+ucosiii移植了,目前起码已经可以ping通,别的功能还没有弄,但是我有一个问题,因为项目上没有片外sram,而现在我的memp_memory和内核以及dm9000接收任务都是在片外sram上申请的内存,如下所示:memp_memory=mymalloc(SRAMEX,mempsize); //为memp_memory申请内存 printf("memp_memory内存大小为:%drn",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内存大小为:%drn",ramheapsize); TCPIP_THREAD_TASK_STK=mymalloc(SRAMEX,TCPIP_THREAD_STACKSIZE*4); //给内核任务申请堆栈 printf("tcpip=%drn",*TCPIP_THREAD_TASK_STK); // LWIP_DHCP_TASK_STK=mymalloc(SRAMEX,LWIP_DHCP_STK_SIZE*4); //给dhcp任务申请堆栈 LWIP_DM9000_INPUT_TASK_STK=mymalloc(SRAMEX,LWIP_DM9000_INPUT_TASK_SIZE*4); //给dm9000接收任务申请堆栈 我想要把它改成在片内申请,应该怎么做呢?是改下面这里吗? //mem1内存参数设定.mem1完全处于内部SRAM里面. #define MEM1_BLOCK_SIZE 32 //内存块大小为32字节 #define MEM1_MAX_SIZE 20*1024 //最大管理内存 20K #define MEM1_ALLOC_TABLE_SIZE MEM1_MAX_SIZE/MEM1_BLOCK_SIZE //内存表大小 我把之前最大管理内存从40K改为20K,如果在片内申请的话,内存申请会出错,lwip_comm_mem_malloc()函数返回值为1。 还有把lwipopts.h中的MEM_SIZE值改小一点,也不行。 请大神教教我怎么弄,具体应该改哪一块呢?不是很懂 实验50 网络通信实验.rar (15.58 MB ) |
|
相关推荐
3个回答
|
|
附件是我的程序
|
|
|
|
忘了说了,用的是战舰v3的板子,f103
|
|
|
|
@发烧友
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2569 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2365 浏览 5 评论
3210 浏览 3 评论
2837 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2789 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
669浏览 1评论
906浏览 0评论
1027浏览 0评论
672浏览 0评论
500浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 16:28 , Processed in 1.131536 second(s), Total 47, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号