前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【STM32F407】第3章 RL-USB协议栈介绍

【STM32F407】第3章 RL-USB协议栈介绍

作者头像
Simon223
发布2021-03-02 16:06:41
4560
发布2021-03-02 16:06:41
举报

论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99710

第3章 RL-USB协议栈介绍

本章节介绍一下RL-USB协议栈,让大家对RL-USB有一个整体的了解。

3.1 初学者重要提示

3.2 RL-USB系统特色

3.3 USB Device资源需求

3.4 USB Host资源需求

3.5 RL-USB优势

3.6 总结

3.1 初学者重要提示

  1. DAPLINK中的USB源码就是采用的RL-USB实现,如果需要源码,可以从DAPLINK中提取:https://github.com/ARMmbed/DAPLink

3.2 RL-USB系统特色

  • RL-USB支持USB Host和USB Device。
  • RL-USB可以同时管理芯片的多个USB外设。
  • USB Host支持的类:HID,CDC,MSC,自定义类。
  • USB Device支持的类:HID,CDC,MSC,ADC和自定义类。
  • 支持多线程和线程安全操作。
  • 通过MDK的RTE开发环境可以一键添加。
  • 使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。

3.3 USB Device资源需求

3.3.1 整体内存需求

USB Device整体内存需求如下:

3.3.2 系统栈需求

系统栈就是xxx.S启动文件里面定义的Stack大小,以F407为例就是:startup_stm32f407xx.s。在RTX5系统下,主要供中断服务程序的局部变量和中断嵌套使用。由于USB Device要用到USB中断服务程序,且需要最大512字节的RAM。所以大家配置的stack大小要大于512字节:

3.3.3 任务栈需求

RL-USB的Device内核要占用一个任务,然后每创建一个HID类,MSC类,CDC类,ADC类或者自定义类都需要单独占用一个任务。每种类的任务栈需求如下:

注:小写字母n范围1-15,表示例化的类个数,每个例化都要占用一个任务。

3.3.4 RTX5定时器组

使用RL-USB Device的HID类需要使能RTX5的定时器组。

3.3.5 RTX5信号量

每种类需要的信号量数如下:

注:每个USB端点要用一个信号量。对于自定义类,如果用到了一个输入端点和一个输出端点,那么还需要额外占用两个信号量。

3.4 USB Host资源需求

3.4.1 整体内存需求

USB Host整体内存需求如下:

3.4.2 系统栈需求

系统栈就是xxx.S启动文件里面定义的Stack大小,以F429为了就是:startup_stm32f429xx.s。在RTX5系统下,主要供中断服务程序的局部变量和中断嵌套使用。由于USB Device要用到USB中断服务程序,且需要最大512字节的RAM。所以大家配置的stack大小要大于512字节:

3.4.3 任务栈需求

RL-USB的Host内核要占用一个任务,然后每创建一个HID类,MSC类,CDC类或者自定义类都需要单独占用一个任务。每种类的任务栈需求如下:

注:对于外挂MSC设备,如果同时使用了文件系统RL-FlashFS,那么应用任务最小需要1536字节。另外官方手册没给出MSC类任务的栈需求。

3.4.4 RTX5定时器组

USB Host需要用到RTX5的定时器组。

3.4.5 RTX5信号量

每个例化需要占用一个信号量。

3.4.6 RTX5互斥信号量

每个例化需要占用一个互斥信号量。

3.4.7 注意事项

  • USB Host的阻塞API操作是通过RTX5的任务间事件标志实现,用到了bit0到bit12,用户的USB Host应用程序不可再使用这几个bit。
  • 如果使用自定义类组件,则用户必须确保同一pipe上的pipe操作不被中断。

3.5 RL-USB优势

RL-USB的最大优势就是简单易用,创建各种类和USB复合设备都可以通过MDK RTE环境一键添加:

一键添加后,配置也十分方便:

3.6 总结

本章节就为大家讲解这么多,主要目的是想让大家对RL-USB有一个整体的认识,从下一章我们就开始正式的进入RL-USB的学习。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第3章 RL-USB协议栈介绍
    • 3.1 初学者重要提示
      • 3.2 RL-USB系统特色
        • 3.3 USB Device资源需求
          • 3.3.1 整体内存需求
          • 3.3.2 系统栈需求
          • 3.3.3 任务栈需求
          • 3.3.4 RTX5定时器组
          • 3.3.5 RTX5信号量
        • 3.4 USB Host资源需求
          • 3.4.1 整体内存需求
          • 3.4.2 系统栈需求
          • 3.4.3 任务栈需求
          • 3.4.4 RTX5定时器组
          • 3.4.5 RTX5信号量
          • 3.4.6 RTX5互斥信号量
          • 3.4.7 注意事项
        • 3.5 RL-USB优势
          • 3.6 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档