{"id":13720037,"url":"https://github.com/zephyrproject-rtos/example-application","last_synced_at":"2025-05-15T23:03:28.006Z","repository":{"id":37832597,"uuid":"328992132","full_name":"zephyrproject-rtos/example-application","owner":"zephyrproject-rtos","description":"Example out-of-tree application that is also a module","archived":false,"fork":false,"pushed_at":"2025-05-14T19:00:21.000Z","size":111,"stargazers_count":278,"open_issues_count":1,"forks_count":160,"subscribers_count":81,"default_branch":"main","last_synced_at":"2025-05-15T23:02:54.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://zephyrproject-rtos.github.io/example-application/","language":"C","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zephyrproject-rtos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-12T13:16:13.000Z","updated_at":"2025-05-14T19:00:26.000Z","dependencies_parsed_at":"2023-02-08T03:45:15.560Z","dependency_job_id":"a2116ffc-f349-485c-93e9-9dfc6afab106","html_url":"https://github.com/zephyrproject-rtos/example-application","commit_stats":null,"previous_names":[],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephyrproject-rtos%2Fexample-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephyrproject-rtos%2Fexample-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephyrproject-rtos%2Fexample-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephyrproject-rtos%2Fexample-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zephyrproject-rtos","download_url":"https://codeload.github.com/zephyrproject-rtos/example-application/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254436944,"owners_count":22070946,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:00:59.165Z","updated_at":"2025-05-15T23:03:27.982Z","avatar_url":"https://github.com/zephyrproject-rtos.png","language":"C","readme":"# Zephyr Example Application\n\n\u003ca href=\"https://github.com/zephyrproject-rtos/example-application/actions/workflows/build.yml?query=branch%3Amain\"\u003e\n  \u003cimg src=\"https://github.com/zephyrproject-rtos/example-application/actions/workflows/build.yml/badge.svg?event=push\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/zephyrproject-rtos/example-application/actions/workflows/docs.yml?query=branch%3Amain\"\u003e\n  \u003cimg src=\"https://github.com/zephyrproject-rtos/example-application/actions/workflows/docs.yml/badge.svg?event=push\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://zephyrproject-rtos.github.io/example-application\"\u003e\n  \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-3D578C?logo=sphinx\u0026logoColor=white\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://zephyrproject-rtos.github.io/example-application/doxygen\"\u003e\n  \u003cimg alt=\"API Documentation\" src=\"https://img.shields.io/badge/API-documentation-3D578C?logo=c\u0026logoColor=white\"\u003e\n\u003c/a\u003e\n\nThis repository contains a Zephyr example application. The main purpose of this\nrepository is to serve as a reference on how to structure Zephyr-based\napplications. Some of the features demonstrated in this example are:\n\n- Basic [Zephyr application][app_dev] skeleton\n- [Zephyr workspace applications][workspace_app]\n- [Zephyr modules][modules]\n- [West T2 topology][west_t2]\n- [Custom boards][board_porting]\n- Custom [devicetree bindings][bindings]\n- Out-of-tree [drivers][drivers]\n- Out-of-tree libraries\n- Example CI configuration (using GitHub Actions)\n- Custom [west extension][west_ext]\n- Custom [Zephyr runner][runner_ext]\n- Doxygen and Sphinx documentation boilerplate\n\nThis repository is versioned together with the [Zephyr main tree][zephyr]. This\nmeans that every time that Zephyr is tagged, this repository is tagged as well\nwith the same version number, and the [manifest](west.yml) entry for `zephyr`\nwill point to the corresponding Zephyr tag. For example, the `example-application`\nv2.6.0 will point to Zephyr v2.6.0. Note that the `main` branch always\npoints to the development branch of Zephyr, also `main`.\n\n[app_dev]: https://docs.zephyrproject.org/latest/develop/application/index.html\n[workspace_app]: https://docs.zephyrproject.org/latest/develop/application/index.html#zephyr-workspace-app\n[modules]: https://docs.zephyrproject.org/latest/develop/modules.html\n[west_t2]: https://docs.zephyrproject.org/latest/develop/west/workspaces.html#west-t2\n[board_porting]: https://docs.zephyrproject.org/latest/guides/porting/board_porting.html\n[bindings]: https://docs.zephyrproject.org/latest/guides/dts/bindings.html\n[drivers]: https://docs.zephyrproject.org/latest/reference/drivers/index.html\n[zephyr]: https://github.com/zephyrproject-rtos/zephyr\n[west_ext]: https://docs.zephyrproject.org/latest/develop/west/extensions.html\n[runner_ext]: https://docs.zephyrproject.org/latest/develop/modules.html#external-runners\n\n## Getting Started\n\nBefore getting started, make sure you have a proper Zephyr development\nenvironment. Follow the official\n[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/getting_started/index.html).\n\n### Initialization\n\nThe first step is to initialize the workspace folder (``my-workspace``) where\nthe ``example-application`` and all Zephyr modules will be cloned. Run the following\ncommand:\n\n```shell\n# initialize my-workspace for the example-application (main branch)\nwest init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace\n# update Zephyr modules\ncd my-workspace\nwest update\n```\n\n### Building and running\n\nTo build the application, run the following command:\n\n```shell\ncd example-application\nwest build -b $BOARD app\n```\n\nwhere `$BOARD` is the target board.\n\nYou can use the `custom_plank` board found in this\nrepository. Note that Zephyr sample boards may be used if an\nappropriate overlay is provided (see `app/boards`).\n\nA sample debug configuration is also provided. To apply it, run the following\ncommand:\n\n```shell\nwest build -b $BOARD app -- -DEXTRA_CONF_FILE=debug.conf\n```\n\nOnce you have built the application, run the following command to flash it:\n\n```shell\nwest flash\n```\n\n### Testing\n\nTo execute Twister integration tests, run the following command:\n\n```shell\nwest twister -T tests --integration\n```\n\n### Documentation\n\nA minimal documentation setup is provided for Doxygen and Sphinx. To build the\ndocumentation first change to the ``doc`` folder:\n\n```shell\ncd doc\n```\n\nBefore continuing, check if you have Doxygen installed. It is recommended to\nuse the same Doxygen version used in [CI](.github/workflows/docs.yml). To\ninstall Sphinx, make sure you have a Python installation in place and run:\n\n```shell\npip install -r requirements.txt\n```\n\nAPI documentation (Doxygen) can be built using the following command:\n\n```shell\ndoxygen\n```\n\nThe output will be stored in the ``_build_doxygen`` folder. Similarly, the\nSphinx documentation (HTML) can be built using the following command:\n\n```shell\nmake html\n```\n\nThe output will be stored in the ``_build_sphinx`` folder. You may check for\nother output formats other than HTML by running ``make help``.\n","funding_links":[],"categories":["Official Resources"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephyrproject-rtos%2Fexample-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzephyrproject-rtos%2Fexample-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephyrproject-rtos%2Fexample-application/lists"}