IRNAS / irnas-guidelines-docs

This repository contains guidelines related to various aspects of managing GitHub repositories at IRNAS and working with them.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zephyr project template

VojislavM opened this issue · comments

The template should include folder/file structure similar to this:
image

  • The app folder contains an example hello world app with multiple .conf files
  • The board directory contains an example overlay for a DK and an example board definition folder
  • The common folder includes the active_object and the app_version library.
  • The sample folder contains useful samples, like: factory-shell ble-dfu-test , ....
  • The scripts folder contains useful test scripts (i.e. ble_nus.py)

Optionally:

  • The drivers folder contains an example driver
  • The dts filter contains an example dts yaml file

Things to add and to address:

  • tests folder with one example that provides one or two unit tests (there could maybe also be a collection of unit tests for active_oject), all required infrastructure files that are needed to run them and a readme with instructions on how to run, expand, etc.
  • issue templates and labels
  • github ci files, for now we only have release automation, later we can add building procedures and extra checks.
  • As far as I understand we never (yet) had to modify mcuboot code, only changes were done through Kconfig options. In case if we have to do something specific (e.g. led blinking during dfu, like in relaxroll) would we need a separate application folder for bootloader?

@MarkoSagadin I would just add an mcuboot folder in that case.

Things to do:

  • follow Tjaz's advice above but:
    • dont add acitve object
    • add app_version as west module in west.yml
    • skip useful samples for now
    • dont add example sensor driver or dts
  • structure of App folder should look like on of the recent projects. main.c should contain a hello world example.
  • top level boards is a place for boards files and overlays that are used all over the project (app/samples) - check if we are currently correctly using this
  • drivers folder can contain just empty kconfig and Cmakelist.txt
  • add dts/bindings/.gitkeep just to have a place to start
  • keep zephyr/module.yml as it is

This was implemented in the irnas-project-template and irnas-zephyr-template repos, so this issue can be closed.