完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在配套给的ETH-GMA例程中,我在上面添加了UIP协议栈,出现了接收的时候内容是准确的,但是多了几个字节。发送的时候内容是完全错误。判定发送完和接收完的标志位在哪里可以定义呢?看了贵公司提供的子程序库,好像没有明确相关定义。
|
|
相关推荐
6个回答
|
|
您好,
收数据多几个字节可以看一下是否是MAC帧的校验,单片实际收到数据可能会和wireshark中抓包有几个字节的差距 代码中两个判断寄存器的标志位是底层完成发送,实际代码业务逻辑上层收发是根据enable_send来控制的,是一个比较简单的发送逻辑。 发送数据的DMA地址必须是在RAMX范围内的数据,目前代码实际控制缓冲区建议修改发送和接收描述符数量宏定义来实现: |
|
|
|
感谢贵公司的回复。问一下例程里边的接收完成中断,是接收完一帧数据还是接收完全部数据才把enable_send置0x03。
|
|
|
|
还有想问一下,CH565的RAMX是可以配置成32/64/96KB的,我配置了相关寄存器#define SZ_RAMX 0x00018000,但编译窗口显示RAMX还是32KB。
|
|
|
|
我看了下驱动例程中的enable_send这个全局变量仅仅只是为了让主循环中的发送能进行下去的一个,可以认为是用户自定义的标志位,实际使用中可以删去的。你可以一直调用发送函数发送数据,因为处理器所做的也只是把你的数据挂到发送队列上,当R32_ETH_DMACHTBAR这个寄存器的值等于你刚才写数据的缓冲区时,才表示MAC正在发送这帧数据。一般情况下你不用管发送完成中断,你的发送频率一般不会超过MAC的发送能力。
RAMX的大小确实是可以配的,不过是在LD文件里配的。记得下载时在ISP工具上勾选对应的硬件配置。 |
|
|
|
感谢回复,RAMX大小以及改成96KB。有个问题想请假一下,CH565demo板上的以太网接口芯灯,要怎么去配置,才会在有数据收发的时候亮起来。
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
445 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2861 浏览 2 评论
2347 浏览 1 评论
793浏览 2评论
CH565W以太网,是必须有SKCKET中断才能发送数据吗?
423浏览 1评论
328浏览 1评论
用DVP采集图像,用UDP传给PC端,采集两帧后图像报错是什么原因?
464浏览 1评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
615浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 05:37 , Processed in 1.080325 second(s), Total 89, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号