硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1107|回复: 7
收起左侧

[以太网] H743 tftp 服务器例程的问题

[复制链接]

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2022-1-12 10:31:51 | 显示全部楼层 |阅读模式
用 Cube MX 生成 LWIP 工程,然后从例程中复制 tftp 服务器代码到工程。例程路径如下:
\STM32Cube\Repository\STM32Cube_FW_H7_V1.9.1\Projects\STM32H743I-EVAL\Applications\LwIP\LwIP_TFTP_Server
微信图片_20220112102010.png

图中代码从文件中读取数据时必定会读取不成功。  跟踪进去看到读数是调用的如下代码(sd_diskio.c, 277行):
/* Fast path cause destination buffer is correctly aligned */
    ret = BSP_SD_ReadBlocks_DMA((uint32_t*)buff, (uint32_t)(sector), count);



失败原因是函数里面等待 DMA 完成回调函数中给出的一个消息时一直等不到,最终超时。


例程中使用的数据接收缓存是结构体的一部分,由 LWIP 在 0x30044000 之后的 16KB 中分配的。
如果把代码改为下面的一行,接收缓存使用另外定义的全局变量,则读取成功。

DMA 方式读取 SD 卡时,不能使用网络的内存区吗?

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107414
QQ
发表于 2022-1-12 11:05:00 | 显示全部楼层
帮顶。lwip的tftp没玩过,只用过tcpnet的,简单好用。
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2022-1-12 11:22:13 | 显示全部楼层
eric2013 发表于 2022-1-12 11:05
帮顶。lwip的tftp没玩过,只用过tcpnet的,简单好用。

根本问题不在于是不是 LWIP,而是 SD 卡的 DMA 操作,能不能访问 0x30044000 这块内存。
要么就是 MPU 设置出错了。
回复

使用道具 举报

10

主题

130

回帖

160

积分

初级会员

积分
160
发表于 2022-1-12 11:24:04 | 显示全部楼层
我用下来好像并没有发现问题,不如上传一下你的工程和ioc文件?!
回复

使用道具 举报

10

主题

130

回帖

160

积分

初级会员

积分
160
发表于 2022-1-12 11:24:45 | 显示全部楼层
eric2013 发表于 2022-1-12 11:05
帮顶。lwip的tftp没玩过,只用过tcpnet的,简单好用。

tftp基于udp
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107414
QQ
发表于 2022-1-12 11:27:24 | 显示全部楼层

tcpnet全称是RL-TCPnet V7.X,支持各种通信组件

回复

使用道具 举报

10

主题

130

回帖

160

积分

初级会员

积分
160
发表于 2022-1-12 11:37:04 | 显示全部楼层
eric2013 发表于 2022-1-12 11:27
tcpnet全称是RL-TCPnet V7.X,支持各种通信组件

原来如此
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
 楼主| 发表于 2022-1-12 19:33:22 | 显示全部楼层
本帖最后由 ihavedone 于 2022-1-12 19:39 编辑
oneV 发表于 2022-1-12 11:24
我用下来好像并没有发现问题,不如上传一下你的工程和ioc文件?!

能看下你的 MPU 配置吗? 我这边是公司代码,不能上传。
但是我看了公司其他工程,也是重新定义了缓存区,估计也是自带的例程读不到文件。

我们的板子跟 ST 官方的 H743 板子是一样的,所以配置也是跟他们的官方例程一样的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-30 09:57 , Processed in 0.294422 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表