触觉智能RK3562开发板配置USB复合设备(下)

本文基于触觉智能RK3562开发板,为大家介绍配置USB复合设备方法,本章节将介绍UMS和ACM复合设备数据交互。

图片

触觉智能RK3562核心板系列即将升级,新增板对板连接器封装版本,将内置无线WiFi蓝牙模组,进一步提升集成性!

UMS是什么?

UMS是USB协议体系中定义大容量存储设备通信规范的标准化协议,通过批量传输协议实现主机与存储设备间的数据交换,给Host设备提供⼤容量外挂存储。兼具兼容性强、即插即用、传输稳定的特点,UMS与MTP有以下区别:

● UMS以Block为单位⼯作; MTP则以⽂件为单位⼯作。

● UMS⼯作时, ⽬标Block为独占⼯作,多⽤⼾操作同⼀Block将会出现错误; MTP⽀持多⽤⼾操作。

图片

  • 内核编译配置

在<SDK_TOP_PATH>/kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig文件中,增加如下配置:

CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_F_MASS_STORAGE=y

成功添加后重新编译kernel,命令如下:

cd <SDK_TOP_PATH>
./build.sh kernel

编译成功后,会生成boot.img,通过电脑烧录工具烧录。

执行以下命令,开启UMS功能:

echo usb_ums_en > /etc/init.d/.usb_config
echo "ums_block=/dev/block/by-name/userdata" >> /etc/init.d/.usb_config
/usr/bin/usbdevice restart

开启后,可以在PC电脑上看到一个新的盘符,由于磁盘分区格式默认是ext4格式Windows系统无法正常挂载,提示格式化如下:

图片

图片

在格式化后的磁盘新建任意文件,进行验证:

图片

执行如下命令取消默认的userdata分区挂载,以exFAT格式挂载userdata分区:

umount /userdata/
mount -t exfat /dev/mmcblk0p6 /userdata/

在板卡系统上可以访问到Windows端PC创建的测试文件,即表示配置成功:

图片

ACM

ACM全称Abstract Control Model 抽象控制模型, 是 USB-IF 定义的通信设备类(CDC)子协议,核心功能是让USB设备模拟成串口设备,在主机(Host)和设备(Device)两端生成 TTY(Teletypewriter)字符设备节点,实现全双工的数据交互。

图片

  • 内核编译配置

在<SDK_TOP_PATH>/kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig文件中,文件中添加如下配置内容(说明:出厂固件默认已支持如下配置):

# cdc-acm
CONFIG_USB_ACM=y
CONFIG_USB_F_ACM=y

成功添加后重新编译kernel,命令如下:​​​​​​​

cd <SDK_TOP_PATH>
./build.sh kernel

编译成功后,会生成boot.img,通过电脑烧录工具烧录即可。

执行以下命令,开启ACM功能:​​​​​​​

echo usb_acm_en > /etc/init.d/.usb_config
/usr/bin/usbdevice restart

完成后,可以在开发板识别如下节点:

图片

  • ACM功能测试验证

打开PC端的调试工具,可以识别出一个USB串行设备,如下:

图片

开发板可以通过以下命令,查看usb串口波特率。另外,串口波特率可通过microcom等工具设置波特率:​​​​​​​

root@rk3562:/# stty -F /dev/ttyGS0
speed 9600 baud; line = 0;
-brkint -imaxbel

root@rk3562:/# stty -F /dev/ttyGS0 9600
root@rk3562:/# cat /dev/ttyGS0

图片

开发板与PC端收发测试:

图片

看到数据回传就表示ACM功能配置完成。关注触觉智能,为您带来更多技术干货与工业嵌入式解决方案。

下载代码方式:https://pan.quark.cn/s/e2157c05e625 在信息技术领域中,数学问题的复杂求解在很大程度上依赖于数值计算,这在科学计算、工程分析以及数据分析等多个方面尤为重要。线性方程组的求解是数值计算中的一个核心且关键的问题,而雅克比迭代法作为一种有效策略,专门用于处理大规模稀疏线性方程组。这个资源提供了一段采用C++语言编写的雅克比迭代法源代码,配合附带的博客文章,能够帮助使用者深入掌握此方法的基本原理和实际应用。 雅克比迭代法,有时也被称作局部迭代方法,主要用于求解形式为 Ax = b 的线性方程组,其中矩阵A需满足对角占优的条件。对角占优的特性是指矩阵中每个对角线元素的绝对值要大于该行其他元素绝对值之和,这一性质确保了算法的收敛性能。该方法的实施基于矩阵A的雅克比矩阵J,其构成方式为 J = D - L - U,其中D、L和U分别代表矩阵A的对角线部分、下三角部分以及上三角部分。 迭代过程的数学表达式为:x(k+1) = J^-1 * b + (I - J^-1*A) * x(k),在此表达式中,x(k)表示第k次迭代的解向量,x(k+1)则是第k+1次迭代的解向量,I是单位矩阵。每次迭代都利用前一次得到的解来计算下一次的解,迭代会持续进行,直到解的精度达到预设标准或迭代次数达到最大限制。 在使用C++进行编程实现时,主要步骤包括: 1. 初始化阶段:设定初始解向量x(0),并明确迭代过程中的参数,例如最大迭代次数和容许的误差界限。 2. 构建雅克比矩阵:依据矩阵A的非对角元素来形成J矩阵。 3. 迭代计算:依照上述迭代公式计算新的解向量,并验证是否满足终止条件(即当前解与前一次解的差值小于设定的误差界限)。 4. 结果输出...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Industio_触觉智能

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值