Difference between revisions of "Zephyr driver demo"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (^ Key Zephyr App Files)
m (^ Useful Commands To Manage Details)
Line 72: Line 72:
  
 
<!-- comment -->
 
<!-- comment -->
 +
 +
 +
== New Zephyr App Init and Update ==
 +
 +
Upon, after first invocation of `west init && west update` in a newly cloned Zephyr app project, files pulled down include:
 +
 +
<pre>
 +
ted@localhost:~/projects/sandbox-2/kionix-driver-demo$ ls
 +
bootloader  modules  tools  west.yml  zephyr
 +
ted@localhost:~/projects/sandbox-2/kionix-driver-demo$ git status .
 +
On branch main
 +
Your branch is up to date with 'origin/main'.
 +
 +
Untracked files:
 +
  (use "git add <file>..." to include in what will be committed)
 +
.west/
 +
bootloader/
 +
modules/
 +
tools/
 +
zephyr/
 +
 +
nothing added to commit but untracked files present (use "git add" to track)
 +
</pre>
 +
 +
The west.yml file specifies an ncs software development kit, which include Zephyr and bootloader.  All the directories and files above not tracked by git were downloaded by the `west` meta-tool.  So this non-tracking is consistent with the way `west` works, and brings in files to a `west manifest` project that is itself under git control.

Revision as of 19:55, 25 August 2021

Zephyr Driver and Separate Demo

- OVERVIEW - Here list and begin to describe key, salient features of a Zephyr RTOS based driver and separately build-able demo to exercise given driver. Driver for first version 0p0 is "out of tree", in other words outside of Zephyr project's source tree.


^ Key Zephyr App Files

Move to refs:

 *  https://dev.w3.org/html5/html-author/charref

Key files in the two parts of Zephyr out-of-tree driver and demonstrating app:

Zephyr app Driver out-of-tree
demo (app)
   ¦
CMakeLists.txt  <- set toolchain variant and toolchain path
Kconfig         <- refers to Zephyr top level Kconfig
west.yml        <- chooses SDK, driver projects (1)
driver
   ¦
drivers/
dts/bindings/
include/
zephyr/
CMakeLists.txt  <- · add subdirs when given drivers enabled,
                   ▸ add include dirs holding header files
Kconfig         <- · refers to Kconfig in child 'drivers' directory
README.md


All the more that is in Jared Wolff's AQW demo:

ted@localhost:~/projects/embedded/ncs/zephyr/samples/sandbox-de-ted/jared-wolff/demo$ tree -R
.
├── boards
│   ├── nrf52840dk_nrf52840.conf
│   └── nrf52840dk_nrf52840.overlay
├── CMakeLists.txt
├── Kconfig
├── prj.conf
├── prj.debug.conf
├── prj.release.conf
├── README.md
├── src
│   └── main.c
├── west.yml
└── z--build-messages-001--first-build.txt

2 directories, 11 files


^ Useful Commands To Manage Details

Command available on Ubuntu hosts to effectively locate Zephyr RTOS project installations:

   ted@localhost:~/projects/embedded$ locate VERSION | grep 'ION$'


New Zephyr App Init and Update

Upon, after first invocation of `west init && west update` in a newly cloned Zephyr app project, files pulled down include:

ted@localhost:~/projects/sandbox-2/kionix-driver-demo$ ls
bootloader  modules  tools  west.yml  zephyr
ted@localhost:~/projects/sandbox-2/kionix-driver-demo$ git status .
On branch main
Your branch is up to date with 'origin/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.west/
	bootloader/
	modules/
	tools/
	zephyr/

nothing added to commit but untracked files present (use "git add" to track)

The west.yml file specifies an ncs software development kit, which include Zephyr and bootloader. All the directories and files above not tracked by git were downloaded by the `west` meta-tool. So this non-tracking is consistent with the way `west` works, and brings in files to a `west manifest` project that is itself under git control.