首页
>
lwIP吧
>
浏览帖子
大陆简体
台灣正體
港澳繁體
马新简体
|
登录
|
注册
进入侃吧
进入个人空间
全部
仅作者
目前共有
30
篇帖子。
字体大小:
较小 - 100% (默认)▼
内容转换:
不转换▼
点击
回复
1171
29
lwip网页显示问题
kk
魔法学徒 一级
1楼
发表于:
2024-5-10 15:31
回复
最近在开发lwip,可以ping通。但是通过打印,看到单片机端已经发送成功,但是网页没有显示。三次握手成功了,网页发起请求之后,提示tcp Retransmission
巨大八爪鱼
一派掌门 二十级
2楼
发表于:
2024-5-10 15:38
回复
你的硬件用的是stm32原生的eth外设吗?如果是的话要注意,lwip默认的网页内容是存在flash里面的,eth无法通过dma访问flash里面的内容,必须要先拷贝到sram里面再用dma传出去。
插入表情
巨大八爪鱼
一派掌门 二十级
3楼
发表于:
2024-5-10 15:41
回复
还有就是,lwip里面的网页是分成几段,组合成一个链表传给ethernetif.c的low_level_output函数的。在用for循环memcpy拷贝到一个数组的时候一定要注意拷贝的目的地址的下标是不是总是0。
211.95.58.*
:您说的是对的,我看了,虽然不是总是零,但是在发送正常数据之前,会有几次乱码数据发出去
,图贴在下面了
2024-5-11 10:18
回复
插入表情
kk
魔法学徒 一级
4楼
发表于:
2024-5-11 09:25
回复
在哪里拷贝网页数据呢,还有是生成的fsdata.c中的数组是在哪里调用的呢?
巨大八爪鱼
:fsdata.c里面的数据属于应用层。lwip在前面加上tcp层,ip层和ethernet层的头部字段后,再发出去,直接printf打印这些头部字段的内容肯定会乱码。
2024-5-11 11:12
回复
巨大八爪鱼
:lwip给fsdata.c里面的数据加了头部字段,形成链表后,才传给ethernetif.c的low_level_output发送函数。
2024-5-11 11:14
回复
插入表情
kk
魔法学徒 一级
5楼
发表于:
2024-5-11 10:20
回复
巨大八爪鱼
:可以截图一下low_level_output函数的代码吗?
还有就是你用的是什么网口?是dp83848还是lan8720?还是enc28j60?
2024-5-11 11:16
回复
kk
:回复
@巨大八爪鱼
:lan8720
2024-5-11 11:25
回复
插入表情
巨大八爪鱼
一派掌门 二十级
6楼
发表于:
2024-5-11 11:17
回复
试试看这个代码行不行:
https://zh.purasbar.com/post.php?t=24569
巨大八爪鱼
:这个代码可以用不?
2024-5-11 11:56
回复
插入表情
kk
魔法学徒 一级
7楼
发表于:
2024-5-11 11:25
回复
巨大八爪鱼
:printf %p打印一下q->payload地址,如果是0x08000000开头的flash地址,那肯定发不出去,发送前必须复制到0x20000000开头的sram里面。
2024-5-11 11:29
回复
巨大八爪鱼
:你可以准备一个大数组:
static uint8_t sram_buffer[1024];
只要发现q->payload是在flash里面,马上就复制到sram_buffer的某个下标处,再传给Txbuffer[i].buffer。
2024-5-11 11:32
回复
巨大八爪鱼
:假设p链表有四个节点:
第一个节点 10字节,位于sram
第二个节点 8字节,位于flash
第三个节点 16字节,位于sram
第四个节点 20字节,位于flash
那就把第二个节点的8字节复制到sram_buffer[0~7]
第四个节点的20字节复制到sram_buffer[8-27]
然后把&sram_buffer[0]赋给Txbuffer[0].buffer
把&sram_buffer[8]赋给Txbuffer[2].buffer
2024-5-11 11:37
回复
kk
:回复
@巨大八爪鱼
:这个我看了,都是在0x20000000开头的sram里
2024-5-11 11:40
回复
巨大八爪鱼
:回复
@kk
:打印出来看看。贴出来。
2024-5-11 11:46
回复
kk
:回复
@巨大八爪鱼
:
2024-5-11 11:50
回复
巨大八爪鱼
:printf("%p: %.*s", q->payload, q->len, q->payload);
2024-5-11 11:51
回复
kk
:回复
@巨大八爪鱼
:好像不能直接回复图片,在楼下了
2024-5-11 11:51
回复
kk
:回复
@巨大八爪鱼
:这里没有打印 q->len
2024-5-11 11:53
回复
巨大八爪鱼
:一定要用%.*s打印指定长度的字符串,长度是q->len。
2024-5-11 11:54
回复
插入表情
kk
魔法学徒 一级
8楼
发表于:
2024-5-11 11:50
回复
巨大八爪鱼
:打印一下q->len
2024-5-11 11:53
回复
kk
:回复
@巨大八爪鱼
:嗯,第二位就是len
2024-5-11 11:57
回复
插入表情
kk
魔法学徒 一级
9楼
发表于:
2024-5-11 11:56
回复
巨大八爪鱼
:那这张图看起来没啥问题了。。。
试试10楼和6楼的方法呢
2024-5-11 12:13
回复
kk
:回复
@巨大八爪鱼
:好
2024-5-11 12:23
回复
插入表情
巨大八爪鱼
一派掌门 二十级
10楼
发表于:
2024-5-11 11:59
回复
实在不行,也可以试一下把p链表的所有内容复制到一个数组中,然后只用Txbuffer[0]一整个发出去,不分段。
插入表情
回复帖子
内容:
图片
视频
表情
用户名:
您目前是匿名发表
验证码:
看不清?换一张
(快捷键:Ctrl+Enter)
本帖信息
点击数:
1171
回复数:
29
评论数:
?
作者:
kk
最后回复:
kk
最后回复时间:2024-5-11 12:23
公告板
【新功能】现在手机版发帖也可以上传图片了
【公告】布拉斯侃吧(Purasbar)全站已启用HTTP/2访问以及TLS1.3加密
【新功能】楼中楼功能已上线
【公告】Purasbar http访问方式已关闭,从现在起只能通过https方式访问
【新功能】现在可以直接在发帖框中粘贴图片啦!
【新功能】搜索框提示功能上線了
【公告】第十五次補丁包安裝完畢
【公告】從現在開始,管理員將停止審批會員
【公告】阿斯兰侃吧现在开始支持简繁混合搜索
【公告】阿斯蘭侃吧啟用https訪問
【公告】从今天开始,本站实行主题编号制
【新功能】图片缩放功能上线了
©2010-2025 Purasbar Ver2.0
▲
除非另有声明,
本站
采用
知识共享署名-相同方式共享 3.0 Unported许可协议
进行许可。