完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在初始化LWIP时,LWIP相关的内存申请是可以直接改成SRAMEX的,不过我的建议是直接把动态申请的这部分内存,弄成静态的数组来用,这样更稳定
|
|
|
|
改成静态数组的话,这部分内存一直得不到释放,所以这也是教程用MALLOC的原因吧,
改成外部的SRAM 作为堆的空间 我主要是想用内部的SRAM来跑应用程序 所以就把原来在内部申请的内存空间 改为了外部空间 并在启动文件中 __heap_limit EQU 0x68000000+0x00100000 做了堆空间的定义 结果就出现了这个状况 不知道问题出在哪里 |
|
|
|
改成这样难怪会出问题啊,你把启动文件都改成了使用外部SRAM,但关键是在使用外部SRAM之前都还要对相应的引脚等做初始化,这样一来程序都直接死掉了,例程改用动态申请是因为它有个退出的功能,也就是把LWIP线程给删除掉等,但实际使用中,LWIP是上电后就一直开启的,不会再退出,所以这个时候最好是做成数组来用,我之前用动态内存,LWIP会经常出现不稳定的状况
|
|
|
|
已经做了初始化的啊 ;
Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT FSMC_SRAM_Init IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =FSMC_SRAM_Init BLX R0 LDR R0, =__main BX R0 ENDP 我是在启动文件做了外部SRAM的初始化,然后用动态内存管理 来分配为外部SRAM的 |
|
|
|
另外我做的 __heap_limit EQU 0x68000000+0x00100000
只是用来说明 MALLOC申请的内存 应该在外部SRAM的吧 然后在调用的mymalloc()函数中全部改为 SRAMEX的 , 我试试不用动态管理 把数组直接申请到外部SRAM试试看 |
|
|
|
直接用原子哥的例程就可以了啊,不用改那么多吧,申请的时候不就是用mymalloc(SRAMEX,size)这样子就可以直接用了,没必要把堆栈那些都改了,改堆栈很容易出问题
|
|
|
|
|
|
|
|
|
|
|
|
我在F407探索者的55网络实验例程上直接改,没有问题,就是把lan8720.c,lwip_comm.c里面用到的内存SRAMIN都替换成SRAMEX就可以了
|
|
|
|
o 我是在LWIP扩展例程改的 就出现了这个问题 我试试那个55的那个例程
|
|
|
|
我在59那个综合实验例程上改也一样,没有出这个问题,你也可以试试
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2360 浏览 5 评论
3207 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2787 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
662浏览 1评论
898浏览 0评论
1020浏览 0评论
665浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 09:14 , Processed in 1.448683 second(s), Total 98, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号