Sphinx/breathe doesn't support showing nested groups, so explicitly add
the nested groups in the API documentation (for Bluetooth Mesh).
Also, added an ignore pattern for a nested unnamed type known issue.
fixes: issue #5040
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Update for LOW POWER state and SYSTEM OFF state for nrf52.
update for TICKLESS KERNEL support in xtensa_sys_timer
Signed-off-by: Youvedeep Singh <youvedeep.singh@intel.com>
Add basic documentation about Ethernet over USB and describe
prj_netusb.conf configuration file.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Note we've added a new Sphinx inline role for references to GitHub
issues, `1234` (along with the existing inline role for Jira
issues :jira:`ZEP-1234`)
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
While sphinx-build messages are captured to a file (and tee'd to
stdout), messages from doxygen weren't captured to the file and so were
missed as an error that needed fixing. (You can see the message if you
run 'make htmldocs' locally and in shippable script output, but the
message filtering tool that throws an error if unexpected messages
appear, didn't get to see those. This fixes that.
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This gives more detail on how system calls with large argument
lists, or large return value types should be handled.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
installed GDB on host might not be compatible with the binary generated
by Zephyr. Mention that we need to use the gdb that corrosponds to the
toolchain being used.
Fixes#4312
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This change changes the semantics of the environment variable
ZEPHYR_SDK_INSTALL_DIR to allow the use of 3rd party toolchains
alongside the Zephyr SDK's host tools.
Specifically, setting ZEPHYR_SDK_INSTALL_DIR now indicates that the
Zephyr SDK host tools are to be used. But not necessarily that the
Zephyr SDK's toolchain is to be used.
The documentation is also changed to explain this behaviour.
Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
The qemu option to access the host's Bluetooth controller is now
automatically added to QEMU_EXTRA_FLAGS whenever Bluetooth support is
enabled in the application. Update the documentation to reflect this.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Rather than continuing to add build system goals, let's just trust the
user to do the right thing. The only special case is build, which is
the default goal.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Since run is also used commonly, add it as a goal as well for those
users of the extension that want to create a sequence similar to:
$ make
$ make run
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
The new :compact: option allows for a single block of code output
without additional newlines or comments.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
New arguments added:
- conf: -DCONF_FILE=<>
- gen-args: Additional arguments to pass to CMake
- build-args: Additional arguments to pass to Make or Ninja
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
CMake requires "-D" for every macro that is passed into it. Add the
relevant "-D" for the Make variant of the extension.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
Add extensions/zephyr to the documentation. This is where Sphinx
extensions customized for Zephyr will live.
Within, add application.py. This provides a directive,
zephyr-app-commands, which generates commands in the docs to build,
flash, debug, etc. an application. For now, these are Unix shell
specific. Later on, they can be customized to generate additional
formats, perhaps with extra options.
After this is used throughout the tree, doing this with an extension
enables global changes with changes to the directive implementation
only.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Unify the format and mechanisms used in the different Getting Started
guides so that they are consistent in:
- The way Kconfig is built
- Avoiding using -B and -H CMake options
- -DBOARD instead of export
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
We no longer want to pin users to 3.8.2. Instead we tolerate the warning
and therefore ask users to get the latest CMake package from their
distro.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
The line between Zephyr versus application is blurry since they share
a configuration, but try to disambiguate.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
The documentation regarding application-specific Kconfig options is
unclear. Fix that.
Reported-by: David Kinder <david.b.kinder@intel.com>
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
The ELF format and extension is an acronym that needs a
definition. Add it.
Reported-by: David Kinder <david.b.kinder@intel.com>
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Grammatical fixes caught in review of unrelated changes.
Reported-by: David Kinder <david.b.kinder@intel.com>
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Fix the instructions for when an alternate CONF_FILE is used.
Reported-by: David Kinder <david.b.kinder@intel.com>
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Re-work this section for clarity, making it clearer where the division
between emulated and real hardware is, and cleaning up the
instructions. Also re-work for correctness, updating Kbuild-style
flash instructions to use CMake.
Also make sure users know they can flash and run from anywhere on the
system using cmake --build.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Fix the white space around "Naming Conventions", which is currently
appearing on its own line.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
This document's flow could be improved a bit. The overview section is
followed by somewhat dense reference material, which is then followed
by step-by-step instructions central to the application workflow.
Fix this up by moving the details to the end, and adjusting the
transitions between the sections a bit.
The diff looks like a mess, but this commit is mostly just moving
things around. There are also various grammar fixes incorporated from
review.
Reviewed-by: David Kinder <david.b.kinder@intel.com>
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
squash! doc: application: move build/run/debug docs after overview
Make this a bit less Unix-centric, changing the CMake invocation lines
to only use documented parameters that continue to work across all
CMake versions (-B doesn't work everywhere, and -H means "help" in
recent versions of CMake).
Handle some 80-column cleanliness. Add documentation about the search
key, /. Be a bit more explicit about the steps.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Now that the above sections more clearly define the behavior of
CONF_FILE, the section on writing a .conf can be cleaned up and made
into a simple primer on syntax.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Fix a few issues related to the description of an application's
CMakeLists.txt file, and how that relates to its configuraiton.
Make sure the section "Application CMakeLists.txt" appears under the
parent "CMake" section, instead of on its own. The order in which
lines appear in the application CMakeLists.txt is important, and
that's not coming through clearly, so try to improve that. Document
how the values for BOARD and CONF_FILE are determined by
boilerplate.cmake here. Also document usage of KCONFIG_ROOT, as its
Kbuild-based equivalent is something that users ask about.
Merge some content from the following section "Application
Configuration" into the appropriate places, to keep the document flow
working. Add references in "Application Configuration" to definitions
provided previously in the document, for clarity.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Update the initial application overview and the basic "how to create
an application" sections for the CMake transition. This is worth doing
on its own, and also enables other fixes and improvements to below
sections.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
This makes it possible to point users at a canonical location for how
to use zephyr-env.sh, etc.
Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
Update the Windows MSYS2 instructions with the required CMake commands
used to build on this platform.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This initial batch of documentation describes policies and
mechanism related to kernel objects and system calls.
Some details on porting user mode to a new arch have been
provided in the architecture porting guide.
Thread documentation updated with some user mode consideration.
This is not the final documentation, more to come in subsequent
patches.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Create http library that uses net-app instead of net_context
directly. The old HTTP API is deprecated.
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Now that net_buf has "native" support for sys_slist_t in the form of
the sys_snode_t member, there's a danger people will forget to clear
out buf->frags when getting buffers from a list directly with
sys_slist_get(). This is analogous to the reason why we have
net_buf_get/put APIs instead of using k_fifo_get/put.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This should clear up some of the confusion with random number
generators and drivers that obtain entropy from the hardware. Also,
many hardware number generators have limited bandwidth, so it's natural
for their output to be only used for seeding a random number generator.
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
Adding NET_MGMT_DEFINE_REQUEST_HANDLER to the doxygen configuration
list of pre-defined macros eliminates 800 lines of "expected" warning
messages from the document generation output. Generated API docs
are unchanged. Cool.
Remember this if/when other macros pop up as a problem for the
doxygen/breathe/sphinx API generation tools.
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
The predefined macro list for doxygen processing had a typo error
causing __attribute__(x) to not be handled correctly.
kernel.h was recently updated to include use of
__attribute__((sentinel)) and doxygen wasn't happy about
processing the API doc comments for the affected function.
Also added a couple of other predefined macros used in Zephyr.
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
ZOAP library has certain limitations in parsing and preparation of
coap messages. It can handle only on single network fragment. If
network packet is split between multiple fragments it fails. This
patch is just copy and rename of 'zoap' to 'coap'.
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
The sanity test script needs to have ccache installed on the Ubuntu
and Fedora developement environments.
Signed-off-by: David Leach <david.leach@nxp.com>
The MSYS2 installer does not include an updated version of the package
database, so users need to update it first in order to install all of
the required dependencies. Additionally, the repo must be cloned before
being able to install the Python requirements.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
doc/kernel/overview/changes.rst contains information about changes from
kernel release 1.5 ("Version 1 Kernel") to the combined "Version 2
Kernel" and doc/porting/application.rst talked about how to change
applications using Version 1 interfaces to the Version 2 interface.
This information remains in the online tagged versions of the
documentation, but it's time to remove this from the current
documentation set. (Also removing example porting code.)
Fixes issue #1524
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Add the following application-facing memory domain APIs:
k_mem_domain_init() - to initialize a memory domain
k_mem_domain_destroy() - to destroy a memory domain
k_mem_domain_add_partition() - to add a partition into a domain
k_mem_domain_remove_partition() - to remove a partition from a domain
k_mem_domain_add_thread() - to add a thread into a domain
k_mem_domain_remove_thread() - to remove a thread from a domain
A memory domain would contain some number of memory partitions.
A memory partition is a memory region (might be RAM, peripheral
registers, flash...) with specific attributes (access permission,
e.g. privileged read/write, unprivileged read-only, execute never...).
Memory partitions would be defined by set of MPU regions or MMU tables
underneath.
A thread could only belong to a single memory domain any point in time
but a memory domain could contain multiple threads.
Threads in the same memory domain would have the same access permission
to the memory partitions belong to the memory domain.
The memory domain APIs are used by unprivileged threads to share data
to the threads in the same memory and protect sensitive data from
threads outside their domain. It is not only for improving the security
but also useful for debugging (unexpected access would cause exception).
Jira: ZEP-2281
Signed-off-by: Chunlin Han <chunlin.han@linaro.org>
Building off the success of PR #4119, add more attributes to the sphinx
processing list (as encountered in PR #4123) plus others from
include/toolchain/gcc.h that looked safe to add.
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
To define a system call, it's now sufficient to simply tag the inline
prototype with "__syscall" or "__syscall_inline" and include a special
generated header at the end of the header file.
The system call dispatch table and enumeration of system call IDs is now
automatically generated.
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
The doxygen/sphinx/breathe processing for API documentation has some
known issues and we've been using a post-processing filter to eliminate
"expected" warnings. Sphinx/Breathe 5.0 was updated to support
identifying attributes causing these warnings, so this PR adds a
starting list to get around warnings recently introduced with __syscall
and __syscall_inline (PR #4103).
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Update the versions of tools used to generate documentation locally and
include a description of the message filtering now included in the doc
build Makefile (formerlly only done in the CI scripts).
Also, include the documentation docs in the developer guides to help
folks that want to contribute and generate docs locally.
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Add contribution process for including non-Apache 2.0 components
as approved by the TSC. Include a README template that lists
information requested by the TSC and governing board for review.
Add a brief mention in the CONTRIBUTING link that appears when
submitting a new PR or Issue via the GitHub web interface.
Included an introduction to the process steps that includes using the
zephyr devel mailing list to discuss new components.
fixes#1543
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>