no-OS Project README
Generate or update projects/<name>/README.rst files for the no-OS repository so
they match the house structure and the current CMake / no_os_build.py build flow.
When to use
- Creating a
README.rst for a project that lacks one.
- Rewriting an old README to the current CMake build flow.
- Adding per-platform CMake build-guide links to align with the current convention.
Inputs to gather first
Before writing, collect this. Ask the user only for what you cannot determine from
the repo or the device data sheet:
- Project directory —
projects/<name>/. Confirm it exists.
- Device / eval board(s) — part number(s) and the ADI product page URL(s).
- Overview facts — resolution, channels, interface (SPI/I2C), supply rails,
key on-chip features, typical applications. Pull from the data sheet.
- Variants — inspect the project's
Kconfig and *.conf files and
src/ layout to list the build variants (the --variant values) and what
each one does.
- Supported platforms and boards — inspect
boards/, CMakeLists.txt, and
defconfigs to list platforms (Maxim, ADuCM3029, STM32, Xilinx, ...) and the
--board values each supports, plus the toolchain env var each needs
(MAXIM_LIBRARIES, CCES_HOME, ...).
- Connections — bus pins, UART console port + baud rate, per board.
Do not invent specs. If a value is unknown, leave a clearly-marked <...>
placeholder rather than guessing.
How to write it
- Start from the template:
doc/project_readme_template.rst (at the repo
root). Copy its structure verbatim, then fill every <...> placeholder and
delete the .. guidance comment lines.
- Keep the exact section order and RST heading underline convention:
= title (level 1), - section (level 2), ~ subsection (level 3),
^ sub-sub (level 4). Underlines must be at least as long as the text.
- One
~~~ subsection per variant under No-OS Supported Examples.
- One
~~~ subsection per platform under No-OS Supported Platforms, each
with ^^^ sub-subsections: Used Hardware, Connections, Build Command.
Build-command conventions (must match current repo state)
All builds go through python tools/scripts/no_os_build.py build --project ... --variant ... --board ....
Set toolchain env vars with Unix export syntax first, then give the
PowerShell equivalent ($env:<VAR> = "...") immediately after so Windows
users can copy-paste it too.
Give two commands per platform: a plain build, and a build-and-flash with
--probe openocd --flash.
Add a per-platform CMake build-guide link in each Build Command section:
For toolchain setup and prerequisites, see the
`<Platform> CMake build guide <https://developer.analog.com/docs/no-os/build_guides/build_<platform>_cmake.html>`__.
Guide filenames: build_maxim_cmake.html, build_aducm3029_cmake.html,
build_stm32_cmake.html, build_xilinx.html. Make sure every
platform section gets its matching link — do not link only some platforms.
For IIO variants, include the IIO No-OS and IIO-Oscilloscope dokuwiki pointers
(see the template's commented block).
After writing
- Verify heading underlines are long enough (short underlines break the RST build).
- Verify each documented
--variant / --board value actually exists in the
project's Kconfig / boards, and that every platform section has its build-guide
link.
- Do not run a git commit unless the user asks.
1---2name: no-os-project-readme3description: Write or update a no-OS project README.rst following the repo's standard structure and the current CMake/no_os_build.py build conventions. Use when creating documentation for a project under projects/<name>/, updating an existing project README, or aligning a README with the CMake build-guide cross-linking conventions.4---56# no-OS Project README78Generate or update `projects/<name>/README.rst` files for the no-OS repository so9they match the house structure and the current CMake / `no_os_build.py` build flow.1011## When to use1213- Creating a `README.rst` for a project that lacks one.14- Rewriting an old README to the current CMake build flow.15- Adding per-platform CMake build-guide links to align with the current convention.1617## Inputs to gather first1819Before writing, collect this. Ask the user only for what you cannot determine from20the repo or the device data sheet:21221. **Project directory** — `projects/<name>/`. Confirm it exists.232. **Device / eval board(s)** — part number(s) and the ADI product page URL(s).243. **Overview facts** — resolution, channels, interface (SPI/I2C), supply rails,25 key on-chip features, typical applications. Pull from the data sheet.264. **Variants** — inspect the project's `Kconfig` and `*.conf` files and27 `src/` layout to list the build variants (the `--variant` values) and what28 each one does.295. **Supported platforms and boards** — inspect `boards/`, `CMakeLists.txt`, and30 defconfigs to list platforms (Maxim, ADuCM3029, STM32, Xilinx, ...) and the31 `--board` values each supports, plus the toolchain env var each needs32 (`MAXIM_LIBRARIES`, `CCES_HOME`, ...).336. **Connections** — bus pins, UART console port + baud rate, per board.3435Do not invent specs. If a value is unknown, leave a clearly-marked `<...>`36placeholder rather than guessing.3738## How to write it39401. Start from the template: `doc/project_readme_template.rst` (at the repo41 root). Copy its structure verbatim, then fill every `<...>` placeholder and42 delete the `..` guidance comment lines.432. Keep the exact section order and RST heading underline convention:44 - `=` title (level 1), `-` section (level 2), `~` subsection (level 3),45 `^` sub-sub (level 4). Underlines must be **at least** as long as the text.463. One `~~~` subsection per variant under **No-OS Supported Examples**.474. One `~~~` subsection per platform under **No-OS Supported Platforms**, each48 with `^^^` sub-subsections: *Used Hardware*, *Connections*, *Build Command*.4950## Build-command conventions (must match current repo state)5152- All builds go through `python tools/scripts/no_os_build.py build --project ...53 --variant ... --board ...`.54- Set toolchain env vars with **Unix `export`** syntax first, then give the55 **PowerShell** equivalent (`$env:<VAR> = "..."`) immediately after so Windows56 users can copy-paste it too.57- Give two commands per platform: a plain build, and a build-and-flash with58 `--probe openocd --flash`.59- **Add a per-platform CMake build-guide link** in each *Build Command* section:6061 ```rst62 For toolchain setup and prerequisites, see the63 `<Platform> CMake build guide <https://developer.analog.com/docs/no-os/build_guides/build_<platform>_cmake.html>`__.64 ```6566 Guide filenames: `build_maxim_cmake.html`, `build_aducm3029_cmake.html`,67 `build_stm32_cmake.html`, `build_xilinx.html`. Make sure **every**68 platform section gets its matching link — do not link only some platforms.6970- For IIO variants, include the IIO No-OS and IIO-Oscilloscope dokuwiki pointers71 (see the template's commented block).7273## After writing7475- Verify heading underlines are long enough (short underlines break the RST build).76- Verify each documented `--variant` / `--board` value actually exists in the77 project's Kconfig / boards, and that every platform section has its build-guide78 link.79- Do not run a git commit unless the user asks.