diff --git a/README.md b/README.md index 9e92396..cb3004d 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,7 @@ # Zephyr Example Application - - Documentation - - - API Documentation - - -This repository contains a Zephyr example application. The main purpose of this -repository is to serve as a reference on how to structure Zephyr-based -applications. Some of the features demonstrated in this example are: - -- Basic [Zephyr application][app_dev] skeleton -- [Zephyr workspace applications][workspace_app] -- [Zephyr modules][modules] -- [West T2 topology][west_t2] -- [Custom boards][board_porting] -- Custom [devicetree bindings][bindings] -- Out-of-tree [drivers][drivers] -- Out-of-tree libraries -- Example CI configuration (using Github Actions) -- Custom [west extension][west_ext] -- Doxygen and Sphinx documentation boilerplate - -This repository is versioned together with the [Zephyr main tree][zephyr]. This -means that every time that Zephyr is tagged, this repository is tagged as well -with the same version number, and the [manifest](west.yml) entry for `zephyr` -will point to the corresponding Zephyr tag. For example, the `example-application` -v2.6.0 will point to Zephyr v2.6.0. Note that the `main` branch always -points to the development branch of Zephyr, also `main`. - -[app_dev]: https://docs.zephyrproject.org/latest/develop/application/index.html -[workspace_app]: https://docs.zephyrproject.org/latest/develop/application/index.html#zephyr-workspace-app -[modules]: https://docs.zephyrproject.org/latest/develop/modules.html -[west_t2]: https://docs.zephyrproject.org/latest/develop/west/workspaces.html#west-t2 -[board_porting]: https://docs.zephyrproject.org/latest/guides/porting/board_porting.html -[bindings]: https://docs.zephyrproject.org/latest/guides/dts/bindings.html -[drivers]: https://docs.zephyrproject.org/latest/reference/drivers/index.html -[zephyr]: https://github.com/zephyrproject-rtos/zephyr -[west_ext]: https://docs.zephyrproject.org/latest/develop/west/extensions.html - ## Getting Started -Before getting started, make sure you have a proper Zephyr development -environment. Follow the official -[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/getting_started/index.html). - ### Initialization The first step is to initialize the workspace folder (``my-workspace``) where @@ -65,21 +21,8 @@ west update To build the application, run the following command: ```shell -cd example-application -west build -b $BOARD app -``` - -where `$BOARD` is the target board. - -You can use the `custom_plank` board found in this -repository. Note that Zephyr sample boards may be used if an -appropriate overlay is provided (see `app/boards`). - -A sample debug configuration is also provided. To apply it, run the following -command: - -```shell -west build -b $BOARD app -- -DOVERLAY_CONFIG=debug.conf +cd mellifera_firmware +west build -b mellifera_rev1 app ``` Once you have built the application, run the following command to flash it: @@ -88,6 +31,30 @@ Once you have built the application, run the following command to flash it: west flash ``` +```shell +go install github.com/apache/mynewt-mcumgr-cli/mcumgr@latest +``` + +### Bootloader +```shell +# build and flash the bootloader +west build -p -b mellifera_rev1 ../mcuboot/boot/zephyr/ -- -DCONF_FILE=$(pwd)/boot.conf +west flash + +# define serial connection to device +~/go/bin/mcumgr conn add acm0 type="serial" connstring="dev=/dev/ttyACM0,baud=115200,mtu=512" +~/go/bin/mcumgr conn add ttyusb0 type="serial" connstring="dev=/dev/ttyUSB0,baud=115200,mtu=512" + +# hold button while power cycling to enter bootloading mode +~/go/bin/mcumgr -c usbtty0 image list + +# build the app +west build -p -b mellifera_rev1 app + +~/go/bin/mcumgr -c ttyusb0 image upload -e build/zephyr/zephyr.signed.bin +~/go/bin/mcumgr -c usbtty0 image list +``` + ### Testing To execute Twister integration tests, run the following command: