硬汉嵌入式论坛

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

[USB] freertos中 usb host 中f_read报错

[复制链接]

16

主题

37

回帖

85

积分

初级会员

积分
85
发表于 2021-8-4 20:11:17 来自手机 | 显示全部楼层 |阅读模式
调用f_read就硬件报错。查了资料说是f_read那个结构体包含一个大数字。导致栈溢出了。后边改成全局变量依旧报错。请教下是哪里的问题呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-5 08:35:44 | 显示全部楼层
报的什么错误? 底层硬件出错?
回复

使用道具 举报

16

主题

37

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2021-8-5 11:19:48 | 显示全部楼层

在freertos中usb otg中断触发f_read 中断言失败疑惑

usb host -> f_read() ->configASSERT( ucCurrentPriority >= ucMaxSysCallPriority ); 此次断言失败 。

请教为什么呢,应该如何处理
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-6 08:03:03 | 显示全部楼层
zeroall 发表于 2021-8-5 11:19
usb host -> f_read() ->configASSERT( ucCurrentPriority >= ucMaxSysCallPriority ); 此次断言失败 。

...

要在受FreeRTOS控制的中断里面调用其以FromISR结尾的API
ps:帮你把昨天发的问题贴合并到这个里面来了。
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
发表于 2021-8-6 22:31:27 | 显示全部楼层
eric2013 发表于 2021-8-5 08:35
报的什么错误? 底层硬件出错?

是如果是通过bin文件的话。就是在同一个地址read时候报hardfault。前边的内容都可以read然后保存在nand。
到了指定的文件地址,read 就hardfault了。查了二天还没有找到原因
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
发表于 2021-8-6 22:33:43 | 显示全部楼层
使用mx配置的usb host。需要修改里边的malloc函数吗。会不会是这个原因导致的?
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
发表于 2021-8-6 22:35:13 | 显示全部楼层
eric2013 发表于 2021-8-6 08:03
要在受FreeRTOS控制的中断里面调用其以FromISR结尾的API
ps:帮你把昨天发的问题贴合并到这个里面来了。 ...

我现在换到了裸机下,就会存在上边答复的现象。
/* Memory management macros */   
#define USBH_malloc               malloc
#define USBH_free                 free
#define USBH_memset               memset
#define USBH_memcpy               memcpy

这里的malloc是否需要改成自己的malloc文件。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-7 10:05:39 | 显示全部楼层
upto 发表于 2021-8-6 22:33
使用mx配置的usb host。需要修改里边的malloc函数吗。会不会是这个原因导致的?

不行的话,直接参考我的吧

http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

另外你当前是不是就没有枚举成功啊,如果没有枚举成功,建议看下你的USB时钟是48MHz不,
回复

使用道具 举报

16

主题

37

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2021-8-7 12:22:03 | 显示全部楼层
eric2013 发表于 2021-8-7 10:05
不行的话,直接参考我的吧

http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

有成功的枚举。因为我的bin文件是8m大小。可以读取到6m的位置,然后再偏移地址读就报错了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-7 12:34:32 | 显示全部楼层
zeroall 发表于 2021-8-7 12:22
有成功的枚举。因为我的bin文件是8m大小。可以读取到6m的位置,然后再偏移地址读就报错了

直接在我的工程基础上搞得了,你这个问题解决的时间有点长了。
回复

使用道具 举报

16

主题

37

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2021-8-7 17:52:55 来自手机 | 显示全部楼层
eric2013 发表于 2021-8-7 12:34
直接在我的工程基础上搞得了,你这个问题解决的时间有点长了。

在哪一个工程可以直接搞呀
回复

使用道具 举报

16

主题

37

回帖

85

积分

初级会员

积分
85
 楼主| 发表于 2021-8-7 18:19:36 来自手机 | 显示全部楼层
请问一下,晶振会不会存在在读usb过程中不准
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-8 08:17:54 | 显示全部楼层
zeroall 发表于 2021-8-7 18:19
请问一下,晶振会不会存在在读usb过程中不准

使用HSI48要考虑温漂,不过测试阶段可以忽略不计。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2021-8-8 08:18:11 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 09:59 , Processed in 0.327892 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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