##General Information
Link to the official repository
Updated to latest libopencm3 and adapted for the STM32F411 WeAct black pill board by Florian Jung
###Objectives
- provide open-source(Lesser GPL3) usb host library for embedded devices
- execution speed. This library doesn't use blocking sleep, making low overhead on runtime performance
- use static allocation for all of its buffers. This means no allocation and reallocation is affecting performance (possibility of memory fragmentation. execution time indeterminism). No malloc(), realloc(), free()
- do not depend on any operating system
- WeAct black pill
- HUB
- Gamepad - XBox compatible Controller
- Generic Human Interface driver: mouse, keyboard (raw data)
- USB MIDI devices (raw data + note on/off)
Make sure the following prerequisities are installed to be able to compile this library
- git for libopencm3 submodule fetch
- gcc-arm-none-eabi toolchain for cross compilation
- cmake
- ccmake (optional)
- dfu-util (optional)
- go to build directory located in the root of the project
cd build
- compile demo and the library with the default options set
cmake .. && make
Executable demo is placed into build/demo.hex
.
Library is placed into build/src/libusbhost.a
.
cmake initial cache variables
Cache variable | Value | Description |
---|---|---|
USE_STM32F4_FS | TRUE | Enable STM32F4 Full Speed USB host peripheral |
USE_STM32F4_HS | TRUE | Enable STM32F4 High Speed USB host peripheral |
USE_USART_DEBUG | TRUE | Enable writing of the debug information to USART6 |
OOCD_INTERFACE | "stlink-v2" | Interface configuration file used by the openocd |
OOCD_BOARD | "stm32f4discovery" | Board configuration file used by the openocd |
- Graphical user interface
ccmake ..
- Command line interface
cmake .. -D{VARIABLE}={VALUE}
If the dfu-util is installed, ./flash.sh
executed in the repo root
flashes the program to the black pill board connected via USB. The black
pill must be put into bootloader mode by pressing the NRST button while
holding the BOOT0 button.
The following table represents the configuration of the debug output
GPIO | GPIOA9 |
---|---|
USART periphery | USART1 |
Function | UART TX |
Baud rate | 115200 |
Uart mode | 8N1 |
The libusbhost code is released under the terms of the GNU Lesser General Public License (LGPL), version 3 or later.
See COPYING.GPL3 and COPYING.LGPL3 for details.