littlebot
Published on 2025-04-20 / 4 Visits
0

【源码】基于C语言的树莓派裸机USB驱动系统

项目简介

本项目是基于C语言的树莓派裸机USB驱动系统,从Circle USB库移植而来。可使树莓派的裸机C代码访问USB设备,支持控制、批量和中断传输。系统包含多种功能驱动,适用于键盘、鼠标、MIDI乐器、游戏手柄、大容量存储设备及板载以太网控制器,能在所有现有的树莓派型号上运行。

项目的主要特性和功能

  1. 广泛的设备支持:支持键盘、鼠标、MIDI乐器、游戏手柄、大容量存储设备和以太网控制器等多种USB设备。
  2. 多种传输方式:支持控制(同步)、批量和中断(同步和异步)传输。
  3. 模块化设计:由环境库和示例程序组成,环境库提供运行所需函数,示例程序展示使用方法。
  4. 接口丰富:提供八组函数供裸机环境访问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中,将USPiinclude/目录添加到包含路径,并向ld指定libuspi.a库。在需要访问USPi函数的地方包含uspi.h文件。

运行示例程序

USPi根目录下,使用以下命令构建sample/目录中的示例程序和所需库: ./makeall clean ./makeall

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】