硬汉嵌入式论坛

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

[RTOS] FreeRTOS+USB host,程序应该如何设计?

[复制链接]

10

主题

34

回帖

64

积分

初级会员

积分
64
发表于 2022-11-23 17:42:23 | 显示全部楼层 |阅读模式
最近放弃SD卡实时写入,改为尝试用U盘来进行实时录数据,裸机情况下已经移植好,但是放在while循环里面实际运行起来会影响我其他功能的实时性,所以转而投靠到FreeRTOS上;

下面是裸机移植的图,根据一些教程有说到这个MX_USB_HOST_Process()需要放在主循环不停运行,而这个MX_USB_HOST_Process()本质上就是USBH_Process(&hUsbHostFS);
image.png

所以我想着在FreeRTOS里面也是创建一个任务,专门给这个函数用,如下图:
image.png

可是按照这个操作,虽然插入U盘和拔出U盘都有响应,但是响应并不正确:
image.png

裸机情况下的响应是这样的:
image.png

请教一下大家,FreeRTOS+USB host的程序逻辑应该是怎么样的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-11-24 01:07:45 | 显示全部楼层
使用ST的USB库,我记得他们官方有个配合RTOS的层,你找找,或者使用CubeMX生成试试。
回复

使用道具 举报

10

主题

34

回帖

64

积分

初级会员

积分
64
 楼主| 发表于 2022-11-24 10:35:42 | 显示全部楼层
eric2013 发表于 2022-11-24 01:07
使用ST的USB库,我记得他们官方有个配合RTOS的层,你找找,或者使用CubeMX生成试试。

我的是使用cubeMX生成的,现在不太明白是否需要创建一个专门的任务去执行USBH_Process(&hUsbHostFS);
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-11-24 10:37:47 | 显示全部楼层
852050675 发表于 2022-11-24 10:35
我的是使用cubeMX生成的,现在不太明白是否需要创建一个专门的任务去执行USBH_Process(&hUsbHostFS);

ST的USB库有个专门的RTOS玩法的,是基于消息通信机制的,找下。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2022-11-24 10:54:43 | 显示全部楼层
852050675 发表于 2022-11-24 10:35
我的是使用cubeMX生成的,现在不太明白是否需要创建一个专门的任务去执行USBH_Process(&hUsbHostFS);

就是用cubemx生成的代码就可以了。里面可以勾选fatfs文件系统和FreeRTOS系统。
在任务循环中调用 MX_USB_HOST_Process();
然后根据 Appli_state==xxxxxx状态来进行对应的操作。
回复

使用道具 举报

10

主题

34

回帖

64

积分

初级会员

积分
64
 楼主| 发表于 2022-11-24 15:07:22 | 显示全部楼层
caicaptain2 发表于 2022-11-24 10:54
就是用cubemx生成的代码就可以了。里面可以勾选fatfs文件系统和FreeRTOS系统。
在任务循环中调用 MX_USB ...

谢谢,但是我发现cubeMX生成的FreeRTOS工程没有MX_USB_HOST_Process()这个函数,但是如果是cubeMX生成裸机程序的话就会有,有点没明白为什么FreeRTOS就没有。
而且如果在任务循环里面调用的是USBH_Process(&hUsbHostFS)的话,就会像我贴出来的图片那样显示的内容和裸机不一样
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 04:33 , Processed in 0.195398 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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