嵌入式linux开发板USB功能测试 Sigmstar星辰科技SD222D

闾丘晨
2023-12-01

一、内核配置

首先需要配置内核,进入kernel文件夹,执行指令make menuconfig
进入图形化界面

Devices Drivers--->
	[*]USB supprot---->
			[M]USB Gadget Support ---->
				[M] USB Gadget Drivers 
				   [M] Serial Gadget (with CDC ACM and CDC OBEX support) 

保存到.config文件,我用的是sigmarstar的222D板子,内核装载的时候,先默认保存到.config文件,需要手动将该文件的内容复制到对应的规格的配置文件,我的是pioneer3_ssc020a_s01a_spinand_demo_qfn128_dualSensor_usbcamera_defconfig
进入到kernel文件夹
执行modules编译指令
make modules
编译完胜以后,会在kernel/modules生成对应的ko文件;
g_serial.ko
libcomposite.ko
usb_f_acm.ko
usb_f_obex.ko
usb_f_serial.ko
u_serial.ko

二、内核加载驱动文件

有两种加载方式:

1.手动加载

将生成的ko文件下载进开发板,使用命令
insmod _serial.ko
insmod _libcomposite.ko
insmod usb_f_serial.ko
insmod usb_f_obex.ko
insmod _usb_f_acm.ko
insmod g_serial.ko
注意加载顺序不能错!
使用lsmod 可以查看已经加载的modules
加载成功,对于sigmarsar的板子来说,会提示:
<<usb<>[GADGET] UDC start
<<usb<>[GADGET] PULL (on)

2.自动加载

Sigmarstar的ko加载有自动的脚本,可以直接放在project/kbuild/customize/4.9.84/p3/dispcam/kernel_mod_list_late
添加进去,该文件会将加载内容写入到开发板customer目录下的demo.sh内,用脚本自动加载,,
也可以直接在demo.sh将第一种加载的命令写入,实现自动加载。

3.修改设备名(modules)

开发板的/dev/下会出现/dev/ttyGS0这个设备,
使用命令cat /proc/devices,
找到251 ttyGS
表示tty设备和对应的id号;
使用命令
mknod /dev/usb_serial c 254 0
将ttyGS0改名为usb_serial

4.USB虚拟串口测试

加载完成以后,用USB线连接到PC,会出现一个虚拟串口;

①接收数据

开发板端,使用命令,监测串口数据
cat /dev/usb_serial
PC端,打开串口工具,发送字符串,注意发送的时候需要添加回车换行,否则数据会阻塞在串口缓冲区!
在开发板端会收到对应的数据;

②发送数据

PC端,打开串口工具,以及对应的串口;
开发板端,使用命令
echo 12345 > /dev/usb_serial
PC端串口工具就会收到12345;
参考连接

 类似资料: