打印

GD32E10X的RTos nano版 学习文档

[复制链接]
1212|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvben5d|  楼主 | 2021-9-6 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lvben5d 于 2021-9-7 13:55 编辑

最近的项目,由于传感器启动执行,需要等到10ms后才可以去读数值,且用到了usb Host, 发现代码在执行中,由于usb host终端优先级都低于我其他任务,步知道为什么,会出现U盘插入后没反应,估摸着是执行某些代码,导致不能及时响应usb中断,不管如何,先学习下RTos ,好优化下代码。下面是我找的PDF,虽然是STM32F103芯片 但是移植原理是一样的。上传一起分享 交流。
这个USB HOST控制U盘挂载 是在主任务里 被调用的  那局部变量就属于主任务栈。 因为要增加FATFS挂载需要的局部变量,我从默认256->1024 这样挂载就正常了! 已经验证OK


我猜 usbh_core_task (&usb_host); 状态机函数 用查询状态是否变化来满足状态跳转, 而状态跳转是发生于USB中断里,中断是很快的,所以必须快速查询对应状态,进入下一个状态机,如何不配合USB中断,一旦查询慢了,就可能失去状态机状态跳转的时间点。导致U盘无法识别。
如果是这样的话,可以把这个状态机配合USB中断的  做到USB中断处理子程序内,就更快了。否则用户应用不好使用这个示例, 当然这个状态机里面有2个延迟几十ms级别的地方,由于没有操作系统,这里会阻塞,如果放在中断里,USB中断优先级不能太高吧?【有待商榷】

RT-Thread Nano中文.pdf

2.91 MB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

746

帖子

12

粉丝