|
1 | | -# fprime-zephyr-reference F' project |
2 | | - |
3 | | -A reference deployment built on the Zephyr RTOS. |
4 | | - |
5 | | -**F´:** https://fprime.jpl.nasa.gov |
6 | | -**Zephyr RTOS:** https://docs.zephyrproject.org/latest/index.html |
7 | | - |
8 | | -Installation Steps (See https://docs.zephyrproject.org/latest/develop/getting_started/index.html): |
9 | | - |
10 | | - 0. Source your preferred Virtual Environment `python3 -m venv fprime-venv` then `. ./fprime-venv/bin/activate` |
11 | | - 1. Update submodules `git submodule update --init --recursive` |
12 | | - 2. Install Packages: `brew install gperf ccache qemu dtc libmagic wget openocd` or `apt install gperf ccache dfu-util device-tree-compiler wget xz-utils file xz-utils make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1` |
13 | | - 3. `git submodule update --init --update` |
14 | | - 4. `pip install -r requirements.txt` |
15 | | - 5. `cd lib/zephyr-workspace && west update && west zephyr-export && west packages pip --install` Note: may take a while |
16 | | - 6. Install Zephyr SDK: https://docs.zephyrproject.org/latest/develop/toolchains/zephyr_sdk.html#toolchain-zephyr-sdk |
17 | | - 7. Build: `cd fprime-zephyr-reference/ReferenceDeployment && fprime-util generate && fprime-util build` |
18 | | - 8. Flash onto board: `cd` into `build-artifacts` directory and run `teensy_loader_cli -v -mmcu=TEENSY41 -w zephyr.hex` for **Teensy41** or for **Raspberry Pi Pico**, put the Pico into bootloader mode by holding down the BOOTSEL button while connecting it to your computer via USB, then drag `zephyr.uf2` into the drive that appears |
19 | | - 9. Open GDS: `cd` into the project directory and run `fprime-gds -n --dictionary ./build-artifacts/zephyr/fprime-zephyr-deployment/dict/ReferenceDeploymentTopologyDictionary.json --communication-selection uart --uart-baud 115200 --output-unframed-data -` |
20 | | - |
21 | | ---- |
22 | | -### Common Trouble-shooting |
23 | | -* If it seems to be a Zephyr issue, run `west update` |
24 | | -* When changing boards |
25 | | - * Update `settings.ini` to the new board |
26 | | - * Update `prj.conf` to the new board's Device PID and VID configurations |
27 | | - * Run `fprime-util generate -f` to generate new build files |
28 | | - * Run `fprime-util build` to build the new project |
29 | | -* **Zephyr Supported Boards**: https://docs.zephyrproject.org/latest/boards/index.html# |
30 | | -* Remember to ensure new build is successful before flashing onto board |
31 | | -* For debugging using **FDTI** cable, see relevant pinout, https://microcontrollerslab.com/ftdi-usb-to-serial-converter-cable-use-linux-windows/ |
32 | | - |
33 | | - |
34 | | - |
| 1 | +# fprime-zephyr-reference project |
| 2 | +This project is an implementation of F` on Zephyr RTOS. |
| 3 | + |
| 4 | +<!-- Not sure if this will be true in the future --> |
| 5 | +<!-- > [!Note] |
| 6 | +> This deployment by default builds for the Teensy 4.1 development board and has been verified on macOS and on Windows 11 using WSL (Ubuntu 22.04 LTS). |
| 7 | +> --> |
| 8 | + |
| 9 | +## System Requirements |
| 10 | +- F Prime System Requirements listed [here](https://fprime.jpl.nasa.gov/latest/docs/getting-started/installing-fprime/#system-requirements) |
| 11 | +- Zephyr dependencies listed [here](https://docs.zephyrproject.org/latest/develop/getting_started/index.html#install-dependencies) |
| 12 | +- Minimum required **CMake version: 3.27.0** |
| 13 | + |
| 14 | +## Prerequisites |
| 15 | +1. Follow the [Hello World Tutorial](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/) |
| 16 | +2. Follow the [Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/develop/getting_started/index.html). Ensure that the Zephyr's dependencies and SDK have been installed |
| 17 | +3. If you are using WSL, make sure to refer to the [WSL Notes][wsl-notes] docs |
| 18 | + |
| 19 | +## Table of Contents |
| 20 | +1. [Initial Project Setup][initial-setup] |
| 21 | +2. [Building, Flashing, and Running the Deployment][build-flash-run] |
| 22 | + |
| 23 | +## Additional Resources |
| 24 | +- [Using a Custom Board Configuration][custom-board] |
| 25 | +- [Tested Board List][board-list] |
| 26 | +- [Troubleshooting][troubleshooting] |
| 27 | +- [WSL Notes][wsl-notes] |
| 28 | + |
| 29 | +<!-- Links --> |
| 30 | +[initial-setup]: ./docs/main-content/initial-setup.md |
| 31 | +[board-dependencies]: ./docs/main-content/board-dependencies.md |
| 32 | +[build-flash-run]: ./docs/main-content/build-flash-run.md |
| 33 | +[custom-board]: ./docs/additional-resources/specifying-board-configuration.md |
| 34 | +[board-list]: ./docs/additional-resources/board-list.md |
| 35 | +[troubleshooting]: ./docs/additional-resources/troubleshooting.md |
| 36 | +[wsl-notes]: ./docs/additional-resources/wsl-notes.md |
0 commit comments