基于RT1052 Aworks使能U盘功能(十九)

本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发# 1. 首先阅读原理图

前置知识,一般来说访问U盘,软件上需要满足如下几点功能。

  1. USB host 驱动
  2. USB host stack 协议栈
  3. File system 文件系统。

1. 首先阅读原理图

在这里插入图片描述

2. 设备资源及驱动适配

2.1 设备资源的注册

硬件上有两个USB口,在硬件设计上只使用USB1,其资源文件在awbl_hwconf_imx1050_usbh1.h当。
在这里插入图片描述

2.2 设备驱动的注册

在aw_prj_config.c文件当中

#ifdef AW_DRV_IMX1050_USBH
    awbl_imx10xx_usbh_drv_register();
#endif

#ifdef AW_COM_USBH
    extern void awbl_usbh_bus_init (void);
    awbl_usbh_bus_init();
    awbl_usbh_hub_drv_register();
#endif

#ifdef AW_DRV_USBH_MASS_STORAGE
    extern void awbl_usbh_mass_storage_drv_register (int buffer_size);
    awbl_usbh_mass_storage_drv_register(AW_CFG_USB_MS_BUF_SIZE);
#endif

2.3 设备宏开关

只需要在aw_prj_params.h打开如下定义

aw_prj_params.h

#define AW_COM_IO_SYSTEM        /**< \brief 使能 I/O 子系统 */
#define AW_COM_FS_ROOTFS        /**< \brief 使能根文件系统 */
#define AW_COM_FS_FATFS         /**< \brief 使能 FAT 文件系统 */
#define AW_COM_MOUNT            /**< \brief 存储卷挂载点管理 */

#define AW_COM_USBH             /**< \brief USB协议栈裁(Host)组件 */

即可注册相关的设备资源与设备驱动。

/** \name USB协议栈裁剪配置
 * @{
 */
#ifdef AW_COM_USBH
#define AW_DRV_USBH_MASS_STORAGE               /**< \brief 大容量存储驱动(U盘&硬盘) */
#define AW_DRV_USBH_UVC                        /**< \brief USB通用摄像头类*/
//#define AW_DRV_USBH_HID                        /**< \brief USB人体接口设备类*/
//#define AW_DRV_USBH_CDC_ECM                    /**< \brief USB通讯设备类:网络控制模型驱动 */
#define AW_DRV_USBH_CDC_SERIAL                 /**< \brief USB通信设备类:USB转串口驱动*/
#endif

#if defined(AW_COM_USBH) || defined(AW_COM_USBD)
#define AW_CFG_USB_MEM_SIZE          (128 * 1024)  /**< \brief USB协议栈内存使用空间大小 */
#endif

#ifdef AW_DRV_USBH_MASS_STORAGE

#ifndef AW_COM_BLOCK_DEV
#define AW_COM_BLOCK_DEV
#endif

#define AW_CFG_USB_MS_BUF_SIZE       (16 * 1024)  /**< \brief U盘数据交互缓存,占用AW_CFG_USB_MEM_SIZE空间,影响U盘读写性能,推荐16k */

#endif

一旦使能相关宏开关,对应的驱动就会被选上。

3. 如何测试

使用SDK自带的测试样例demo_udisk_fs.c即可进行测试.
在这里插入图片描述

4. 总结

在使用样例进行测试时,需指定USB的设备名称及是否格式化U盘。

#define     __BLK_NAME          DE_USB_BLK_NAME /* USB设备名 */

#define     __FORMAT_ENABLE     1               /* 格式化使能,格式化一次即可 */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实操

希望博文有助于您,您不必加班。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值