Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRAFT, DNM #19

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/build-using-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Build and test app in NCS docker container

on:
pull_request:

jobs:
build-and-test-in-docker:
runs-on: ubuntu-22.04
container: ghcr.io/nrfconnect/sdk-nrf-toolchain:pr-16290
defaults:
run:
# Bash shell is needed to set toolchain related environment variables in docker container
# It is a workaround for GitHub Actions limitation https://github.com/actions/runner/issues/1964
shell: bash
steps:
- name: Checkout repository with example application
uses: actions/checkout@v4
with:
path: example-application

- name: Prepare west project
run: |
west init -l example-application
west update -o=--depth=1 -n

- name: Build firmware
working-directory: example-application
run: |
west twister -T app -v --inline-logs --integration

- name: Store hex files
uses: actions/upload-artifact@v4
with:
name: built-applications
path: example-application/twister-out/**/zephyr/zephyr.hex

- name: Twister Tests
working-directory: example-application
run: |
west twister -T tests -v --inline-logs --integration
49 changes: 0 additions & 49 deletions .github/workflows/build.yml

This file was deleted.

1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @gmarull @carlescufi
45 changes: 22 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Zephyr Example Application
# nRF Connect SDK example application

<a href="https://zephyrproject-rtos.github.io/example-application">
<a href="https://nrfconnect.github.io/ncs-example-application">
<img alt="Documentation" src="https://img.shields.io/badge/documentation-3D578C?logo=sphinx&logoColor=white">
</a>
<a href="https://zephyrproject-rtos.github.io/example-application/doxygen">
<a href="https://nrfconnect.github.io/ncs-example-application/doxygen">
<img alt="API Documentation" src="https://img.shields.io/badge/API-documentation-3D578C?logo=c&logoColor=white">
</a>

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:
This repository contains an nRF Connect SDK example application. The main
purpose of this repository is to serve as a reference on how to structure nRF Connect
SDK based applications. Some of the features demonstrated in this example are:

- Basic [Zephyr application][app_dev] skeleton
- [Zephyr workspace applications][workspace_app]
Expand All @@ -23,12 +23,12 @@ applications. Some of the features demonstrated in this example are:
- 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
This repository is versioned together with the [nRF Connect SDK main tree][sdk-nrf]. This
means that every time that nRF Connect SDK 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`.
will point to the corresponding nRF Connect SDK tag. For example, the `ncs-example-application`
v2.5.0 will point to nRF Connect SDK v2.5.0. Note that the `main` branch always
points to the development branch of nRF Connect SDK, 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
Expand All @@ -37,25 +37,25 @@ points to the development branch of Zephyr, also `main`.
[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
[sdk-nrf]: https://github.com/nrfconnect/sdk-nrf
[west_ext]: https://docs.zephyrproject.org/latest/develop/west/extensions.html

## Getting Started
## 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).
Before getting started, make sure you have a proper nRF Connect SDK development environment.
Follow the official
[Installation guide](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/installation/install_ncs.html).

### Initialization

The first step is to initialize the workspace folder (``my-workspace``) where
the ``example-application`` and all Zephyr modules will be cloned. Run the following
the ``example-application`` and all nRF Connect SDK modules will be cloned. Run the following
command:

```shell
# initialize my-workspace for the example-application (main branch)
west init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace
# update Zephyr modules
# initialize my-workspace for the ncs-example-application (main branch)
west init -m https://github.com/nrfconnect/ncs-example-application --mr main my-workspace
# update nRF Connect SDK modules
cd my-workspace
west update
```
Expand All @@ -71,9 +71,8 @@ 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`).
You can use the `custom_plank` board found in this repository. Note that you can use
Zephyr and nRF Connect SDK sample boards if an appropriate overlay is provided (see `app/boards`).

A sample debug configuration is also provided. To apply it, run the following
command:
Expand Down
27 changes: 0 additions & 27 deletions app/boards/nucleo_f302r8.overlay

This file was deleted.

4 changes: 2 additions & 2 deletions app/sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
# so that you can easily test all of them locally or in CI.
sample:
description: Example application
name: example-application
name: example-application
common:
sysbuild: true
build_only: true
integration_platforms:
- custom_plank
- nucleo_f302r8
tests:
app.default: {}
app.debug:
Expand Down
4 changes: 2 additions & 2 deletions doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "Example Application"
PROJECT_NAME = "NCS Example Application"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand All @@ -54,7 +54,7 @@ PROJECT_NUMBER = 1.0.0
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = A Zephyr-based example application
PROJECT_BRIEF = An NCS-based example application

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down
4 changes: 2 additions & 2 deletions doc/_doxygen/main.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Introduction

This is the Doxygen documentation for [example-application].
This is the Doxygen documentation for [ncs-example-application].

[example-application]: https://github.com/zephyrproject-rtos/example-application
[ncs-example-application]: https://github.com/nrfconnect/ncs-example-application
16 changes: 12 additions & 4 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'Example Application'
project = 'NCS Example Application'
copyright = '2024, The Zephyr Community'
author = 'The Zephyr Community'
release = '1.0.0'
Expand All @@ -27,14 +27,22 @@
# -- Options for Intersphinx -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html

intersphinx_mapping = {'zephyr': ('https://docs.zephyrproject.org/latest/', None)}
intersphinx_mapping = {
'ncs': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/', None),
'nrfx': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfx/', None),
'nrfxlib': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/', None),
'zephyr': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/', None),
'mcuboot': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/mcuboot/', None),
'tfm': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/tfm/', None),
'matter': ('https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/matter/', None),
}

## -- Options for Breathe ----------------------------------------------------
# https://breathe.readthedocs.io/en/latest/index.html
#
# WARNING: please, check breathe maintainership status before using this
# extension in production!

breathe_projects = {'example-application': '_build_doxygen/xml'}
breathe_default_project = 'example-application'
breathe_projects = {'ncs-example-application': '_build_doxygen/xml'}
breathe_default_project = 'ncs-example-application'
breathe_default_members = ('members', )
8 changes: 4 additions & 4 deletions doc/index.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Welcome to Example Application's documentation!
===============================================
Welcome to NCS Example Application's documentation!
===================================================

This is a simple Sphinx documentation setup for ``example-application``.
This is a simple Sphinx documentation setup for ``ncs-example-application``.

.. toctree::
:maxdepth: 2
:caption: Contents

drivers/index
lib/index
zephyr
references

Indices and tables
==================
Expand Down
13 changes: 13 additions & 0 deletions doc/references.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
References
==========

You can easily reference items on the NCS documentation from all docsets,
including anchors, functions, files... For example:

* NCS: :external+ncs:ref:`create_application`, :external+ncs:c:func:`bt_scan_start`
* nrfx: :external+nrfx:c:func:`nrf_comp_enable`
* nrfxlib: :external+nrfxlib:ref:`nrf_modem`, :external+nrfxlib:c:func:`nrf_modem_init`
* Zephyr: :external+zephyr:ref:`getting_started`, :external+zephyr:c:func:`k_sleep`
* mcuboot: :external+mcuboot:doc:`index-ncs`
* Trusted Firmware-M: :external+tfm:ref:`tf-m_configuration`
* Matter: :external+matter:ref:`matter_index`
5 changes: 0 additions & 5 deletions doc/zephyr.rst

This file was deleted.

17 changes: 6 additions & 11 deletions west.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,12 @@ manifest:
west-commands: scripts/west-commands.yml

remotes:
- name: zephyrproject-rtos
url-base: https://github.com/zephyrproject-rtos
- name: ncs
url-base: https://github.com/nrfconnect

projects:
- name: zephyr
remote: zephyrproject-rtos
- name: nrf
remote: ncs
repo-path: sdk-nrf
revision: main
import:
# By using name-allowlist we can clone only the modules that are
# strictly needed by the application.
name-allowlist:
- cmsis # required by the ARM port
- hal_nordic # required by the custom_plank board (Nordic based)
- hal_stm32 # required by the nucleo_f302r8 board (STM32 based)
import: true
Loading