Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mutablelogic/pico-fuse
An event-driven architecture library for interacting with a RP2040 Pico host.
https://github.com/mutablelogic/pico-fuse
embedded event-driven pico raspberry-pi
Last synced: 24 days ago
JSON representation
An event-driven architecture library for interacting with a RP2040 Pico host.
- Host: GitHub
- URL: https://github.com/mutablelogic/pico-fuse
- Owner: mutablelogic
- License: apache-2.0
- Created: 2023-04-01T08:27:27.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T10:55:11.000Z (2 months ago)
- Last Synced: 2024-10-21T20:26:28.359Z (2 months ago)
- Topics: embedded, event-driven, pico, raspberry-pi
- Language: C
- Homepage: https://mutablelogic.github.io/pico-fuse/
- Size: 407 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pico-fuse
This is a library to use with the Raspberry Pi Pico boards using the RP2040 microprocessor,
which provides an event-driven architecture for interacting with devices in C. The API documentation
is available here:* https://mutablelogic.github.io/pico-fuse/
The library consists of ``fuse`` which provides data structures and methods for memory pools,
hash maps, linked lists and strings, plus ``picofuse`` which contains device- and platform-
specific code for the Raspberry Pi Pico. It's possible to use ``fuse`` on its own, but
``picofuse`` depends on ``fuse``.The following sections provide more information on how to use this library:
* [Dependencies](#dependencies)
* [Configuration](#configuration)
* [References](#references)The library is published under the Apache license, so feel free to use and fork it, but
please acknowledge the source in any forks. See the [LICENSE](LICENSE) file for more
information.## Dependencies
On Fedora Linux, the following packages need installed:
```bash
sudo dnf install cmake gcc-arm-linux-gnu \
arm-none-eabi-gcc-cs-c++ \
arm-none-eabi-gcc-cs \
arm-none-eabi-binutils \
arm-none-eabi-newlib \
libusb1-devel
```On Debian Linux, the following packages need to be installed:
```bash
sudo apt install cmake gcc-arm-none-eabi libusb-1.0-0-dev
```On Mac with homebrew, the following packages need installed:
```bash
brew install make cmake libusb git
brew install --cask gcc-arm-embedded
```If you haven't done so already, [create an ssh key](https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-openssh-on-macos-or-linux)
and [add it to your github account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).## Configuration
Download and configure the toolchain using the following set of commands in your terminal:
```bash
install -d ${HOME}/projects && cd ${HOME}/projects
git clone [email protected]:mutablelogic/pico-fuse.git
cd pico-fuse
PICO_BOARD=pico_w make config
make picotool
```If this completes successfully then congratulations. If you are targetting a different
board then the Pico W then here are some values for PICO_BOARD you can use instead:| Configuration Command | Board |
|--|--|
| `PICO_BOARD=pico make config` | Raspberry Pi Pico |
| `PICO_BOARD=pico_w make config` | Raspberry Pi Pico W |
| `PICO_BOARD=pimoroni_picolipo_4mb make config` | Pimironi Lipo with 4MB flash |
| `PICO_BOARD=pimoroni_picolipo_16mb make config` | Pimironi Lipo with 16MB flash |Whenever you target a different board, use `make clean` before `make picotool` and `make config`.
## References
* Pico SDK
* Repository https://github.com/raspberrypi/pico-sdk
* Documentation (in PDF) https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-c-sdk.pdf