项目简介
本项目是基于C语言的树莓派裸机USB驱动系统,从Circle USB库移植而来。可使树莓派的裸机C代码访问USB设备,支持控制、批量和中断传输。系统包含多种功能驱动,适用于键盘、鼠标、MIDI乐器、游戏手柄、大容量存储设备及板载以太网控制器,能在所有现有的树莓派型号上运行。
项目的主要特性和功能
- 广泛的设备支持:支持键盘、鼠标、MIDI乐器、游戏手柄、大容量存储设备和以太网控制器等多种USB设备。
- 多种传输方式:支持控制(同步)、批量和中断(同步和异步)传输。
- 模块化设计:由环境库和示例程序组成,环境库提供运行所需函数,示例程序展示使用方法。
- 接口丰富:提供八组函数供裸机环境访问USB设备,同时裸机环境需提供六组函数给驱动库。
安装使用步骤
配置
构建前,需在include/uspios.h
文件顶部进行配置以适配系统。可在Rules.mk
中定义NDEBUG
构建发布版本,测试阶段建议使用包含更多检查的调试版本。
构建
通常在PC Linux上构建。构建树莓派1需ARM1176JZF核心的工具链,树莓派2/3需支持Cortex - A7/-A53的工具链,可从此处下载适用工具链。
编辑Rules.mk
文件,设置树莓派版本(RASPPI
,值为1、2或3)和工具链命令的PREFIX
;也可创建Config.mk
文件(git忽略)进行设置,示例如下:
RASPPI = 1
PREFIX = arm-none-eabi-
进入lib/
目录,执行以下命令:
make clean
make
构建好的libuspi.a
文件将位于lib/
目录。
使用
在Makefile中,将USPi
的include/
目录添加到包含路径,并向ld
指定libuspi.a
库。在需要访问USPi
函数的地方包含uspi.h
文件。
运行示例程序
在USPi
根目录下,使用以下命令构建sample/
目录中的示例程序和所需库:
./makeall clean
./makeall
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】