A complete rewrite of the Overview section. The revised text
provides a more logical and comprehensive introduction to the
main concepts and capabilities of Zephyr, without providing
an excessive level of detail. (Those details should be provided
by the remaining sections of the Kernel Primer.)
This rewrite has also resulted in some small changes to the
About Zephyr and other Kernel Primer sections.
Change-Id: Idd4d5e0f0aabaaee8cd43d12563018ba4d8f7417
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Since file got relocated, path needs to be corrected.
Change-Id: Ic56b7ec23704ab4f71c95f8cefb273866c398fb8
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Point to Bluetooth applications location.
Change-Id: I3595a7f2403933d372f020099693a03e1197015b
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
irq_handler_set, irq_priority_set and irq_disconnect have been made
private by prepending an underscore to their names:
irq_handler_set -> irq_handler_set
irq_priority_set -> irq_priority_set
irq_disconnect -> irq_disconnect
The prototypes have been removed from header files when possible, and
extern statements used in C code where they were called.
_irq_priority_set() for ARM is still in the header file because
IRQ_CONFIG() relies on it.
Change-Id: I2ad585f8156ff80250f6d9eeca4a249a4477fd9d
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
task_event_set_handler -> task_event_handler_set
Align with the "verb at the end" convention.
Change-Id: I8b72d41a20a7fdd4756f90765682e317289a241b
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
task_pipe_put_async -> task_pipe_block_put
task_mbox_put_async -> task_mbox_block_put
task_mbox_data_get_async_block -> task_mbox_data_block_get
task_mbox_data_get_async_block_wait -> task_mbox_data_block_get_wait
task_mbox_data_get_async_block_wait_timeout ->
task_mbox_data_block_get_wait_timeout
Previous names, focusing on 'async', were misleading, because:
- some of those APIs can be used synchronously as well
- other APIs can also do asynchronous transfer, and don't have 'async'
in their names
- the key concept of these APIs is that they use memory pool blocks
rather than raw data buffers.
Change-Id: I0c08a6cf950ab23bb4172ce25eb6f9886b037649
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
This will move autogeneated html files to the final directory
which is copied by CI into the online documentation making the
raw doxygen html files accessible via <url>/api/
Change-Id: I79bc211377840358acfb94d4de839ce25d2830e0
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
The text between @internal and @endinternal will only be
visible if INTERNAL_DOCS is set to YES.
Change-Id: Ic09669e59b819e6f3e7820f345cf1f17303c0e3c
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Improves previous patch that enabled doxygen GUI for Reference.
Navigate to forto-collab/docs/ html/index.html to view. Not
linked to main docs in this patch. Index changes to show a
collapsed view as default.
Change-Id: I4d0c23699f645c5c20ca3ad50c988a5729afa24f
Signed-off-by: Carol Lee <carol.lee@windriver.com>
Regroups documents into 3 sets::
1) Documents needed when first encountering Zephyr. (Basically what
you need to decide if you're interested in Zephyr, what it can do
for you, and how to get the code so you can experiment with it.)
2) Documents used when developing new Zephyr software.
3) Reference documents for Zephyr. (Having these on the main page
instead of a sub-page make sense, since the API guide and
configuration option guide will be consulted frequently by users.)
Change-Id: Ifee7ac83f041c24e1efbe3ba7379c21a2ba8b9bc
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Provides high level background material for Zephyr, to help newcomers
easily determine its suitability for their needs.
Change-Id: I2f843ad627024f601f163eafc7d965ecf44da8f9
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Describes atomic operations, including concepts, examples,
and APIs.
Change-Id: I701435508ae179623cf983590802040b35b0f286
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Updated the SDK location in quick start documentation to the new Zephyr SDK hosted in 01.org.
Change-Id: I7a7616763441d93f10563b1a05268126990fd527
Signed-off-by: Javier B Perez Hernandez <javier.b.perez.hernandez@linux.intel.com>
BSP terminology is obsolete; it has been supplanted by platforms and
platform configurations.
Change-Id: I105c7259e3eee6b0a0f67743d2b6b10ffb1db16f
Signed-off-by: Peter Mitsis <peter.mitsis@windriver.com>
Removes an unnecessary level of headings in the microkernel and
nanokernel sections of the Zephyr kernel documentation, providing
users with direct access to the major service areas of the
microkernel and nanokernel from the main kernel web page. Also
greatly reduces the introductory text for these 2 sections,
since users can now easily find out what the various subsections
provide by simply clicking on them.
Change-Id: Ibc5858daad49cfb6567dfad285b7a1d5a755d149
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Re-incorporates task IRQ information into microkernel documentation.
Also eliminates an unnecessary hidden space character at the end of
every line.
Change-Id: Ib1328dfae7a53bcf8abead4a5ebf1cbaa5610826
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Describes nanokernel timer use, including concepts, examples,
and APIs.
Change-Id: Ibee277c62299e8cbe5c5093f097efd3596fbaf77
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Adds introductory text to highlight the limited signalling choices
provided by the nanokernel. Updates the semaphore API table to
incorporate missing APIs.
Change-Id: I947de383178f8710f0ae238a03f197102dac2845
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Partitions services into a separate file for each service. Updates
API tables to incorporate missing APIs.
Change-Id: Ia08b52b4865967beda02851cfe4a7d5ca4e8f596
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Added an API table to summarize available APIs. (Still need to
add examples of how to use to more significant ones.)
Change-Id: I371912ea77ad264ed0c96f129e8676ab866697db
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
leftovers from the renaming activities:
nano_node_tick_get_32 -> nano_tick_get_32
Change-Id: Ic9f0870ddda159311005c2ed16e0a378ab9a6a62
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Describes available services. Adds an example. Provides API table.
Change-Id: I99a2541fedc3bde3e23157a5fd85fb49dce1bf4d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Fix documentation to link to autogenerated API entries.
Change-Id: I0355435c189bff17c4468b1f300dcffcce73e51d
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Describes clocks available for use. Adds examples of direct clock
use. Provides API tables.
Change-Id: Icca8e1c8e75eed29c91f1387aed682dfdefdadb1
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Describes microkernel timer use only. Information about kernel
clocks and clock-related APIs will be documented elsewhere.
Change-Id: If868d9d93a0869e9535fbe0f807e72ccf816d15d
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Adds information about offloading work from a task to a fiber.
Change-Id: I600c47351158f1fbf80cc5da971560b0f028b979
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Placeholders were created for the missing content. The automatically
generated API docs were separated from the Doxygen collaboration guide.
The Kbuild User's Guide was moved unchanged.
Change-Id: I07dfed61bfbb3cad60372c57dc3cbdf627c872f0
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
The content of the files was left unchanged except for labels for
cros-referncing, the main title of the part and the tabs on the tables
which were changed to spaces. That last change ensures the integrity of
the tables independently of editor. The structure of the content files
will be revised at a later time.
Change-Id: I90477966fb3f4727d61e859d77682b529c83337d
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the content found in the development part to the new Application
Development Primer. Creates a master file for the new part and a
placeholder for nanokernel-only applications. Labels that have already
been changed in prior changes of the topic were updated. The project's
master file was changed to include the new part.
Change-Id: I8e9df5b3e5d382997caf62b7503274e4821137e0
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the Network Stack information to the Kernel Primer. Labels were
updated to reflect the new structure.
Change-Id: Iaea3cf3506476dee3f165eeb9c4c1fd49af54c90
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the placeholder to the proper location.
Change-Id: I952640912714073f1e0ac4a0bcb2d2b320faaee4
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the Nanokernel Object documentation to a new Nanokernel Services
section within the Kernel Primer. Labels, cross-references, figures,
headings and filenames were updated to reflect the new structure.
Change-Id: I04f97e712d78cd211a8ed1315f86895a51affa01
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the Microkernel Object documentation to a new Microkernel Services
section within the Kernel Primer. Labels, cross-references, figures,
headings and filenames were updated to reflect the new structure.
Change-Id: Ia2a91410a94caa8a97bb8211db5afc84b5dc0974
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Moves the files from Architecture to the Overview section of the Kernel
Primer. Cross-references and figures were updated to reflect the new
structure. Headings and content were changed as little as possible.
These changes are needed to implement the proposed new structure of the
documentation. Content was changed as created as little as possible.
Change-Id: Id1f91ff6c8f858bfd48ad034594ba38531c7e1c4
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
Creates the Kernel Primer, removes overview modules that are no longer
needed and updates the master file to include the new part.
Change-Id: I6d7f53f019089d502e763ecc1789fb152c90c465
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
The Quick Start Guide is now comprised by Installing, Building and
Running the Zephyr Kernel Guides. The Installing Guide contains all the
procedures needed to install the required components and get access to
the code. The Building Guide contains the procedure to build the kernel
using a sample application. The Running Guide contains the procedures to
run an application using QEMU or the Galileo 2 board. Files and folders
were renamed. The toctree directives were updated to reflect the new
names.
Change-Id: I4398befd4a24b12a50970c21a5288afa5c533fc8
Signed-off-by: Rodrigo Caballero <rodrigo.caballero.abraham@intel.com>
This enable defining memory maps in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MEM_MAP(mem_map_name, ...). The memory maps created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
memory map APIs.
Define the memory map using:
DEFINE_MEM_MAP(mem_map1, blocks, block_size);
and "mem_map1" can be used, for example:
task_mem_map_alloc(mem_map1, ...);
or,
task_mem_map_free(mem_map1, ...);
etc.
To use the memory map defined in another source file, simply add:
extern const kmemory_map_t mem_map1;
to the desired C or header file.
Change-Id: I9c551b90f9d0a95f961fd8ec1c5278c2ea44312d
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds unit test for microkernel private pipes.
The code piggybacks to the public pipe test (by
including the same source file), so any updates to
the test will be applied to both.
Note that the prj.mdef are different for both tests, since
the private pipes test move the pipes inside source
code. So, both mdef files will need to be updated at
the same time.
Change-Id: I6fdb5eab7c3a1d6f4b72c26a3620cee0188b07a5
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining pipes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_PIPE(pipe_name, ...). The pipes created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
pipe APIs.
Define the pipe using:
DEFINE_PIPE(pipe1, size);
and "pipe1" can be used, for example:
task_pipe_put(pipe1, ...);
or,
task_pipe_get(pipe1, ...);
etc.
To use the pipe defined in another source file, simply add:
extern const kpipe_t pipe1;
to the desired C or header file.
Change-Id: Iae8e04706359bc18aae51acc75df3e3d26388882
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining tasks in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_TASK(task_name). The tasks created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
task APIs.
Define the task using:
DEFINE_TASK(task1, priority, entry_func, stack_size, groups);
and "task1" can be used, for example:
task_start(task1);
or,
task_abort(task1);
etc.
To use the task defined in another source file, simply add:
extern const ktask_t task1;
to the desired C or header file.
Change-Id: Ib2f3572950ca74b359b7fde1ccd6cfd04783eefb
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining mailboxes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MAILBOX(mailbox_name). The mailboxes created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
mailbox APIs.
Define the mailbox using:
DEFINE_MAILBOX(mailbox1);
and "mailbox1" can be used, for example:
task_mbox_put(mailbox1, &msg);
or,
task_mbox_get(mailbox1, &msg);
etc.
To use the mailbox defined in another source file, simply add:
extern const kmox_t mailbox1;
to the desired C or header file.
Change-Id: I32d4194af740f96fc8df8c6cd3144a0c9accb4ec
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining FIFOs in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_FIFO(fifo_name). The FIFOs created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
FIFO APIs.
Define the FIFO using:
DEFINE_FIFO(fifo1, depth, width);
and "fifo1" can be used, for example:
task_fifo_put(fifo1);
or,
task_fifo_get(fifo1);
etc.
To use the FIFO defined in another source file, simply add:
extern const kfifo_t fifo1;
to the desired C or header file.
Change-Id: I29667c4cfdcd0e6d189358478acf1a6149ecb826
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining semaphores in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_SEMAPHORE(semaphore_name). The semaphores created this
way are the same, in functionality, as those defined in MDEF
files. They can be manipulated by the standard microkernel
semaphore APIs.
Define the semaphore using:
DEFINE_SEMAPHORE(sem1);
and "sem1" can be used, for example:
task_sem_give(sem1);
or,
task_sem_take(sem1);
etc.
To use the semaphore defined in another source file, simply add:
extern const ksem_t sem11;
to the desired C or header file.
Change-Id: Ia9c128648f7a26fc776eeb8f6fcc4158b1712a97
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This enable defining mutexes in source code in addition to
defining in MDEF files. This introduces the macro
DEFINE_MUTEX(mutex_name). The mutexes created this way are
the same, in functionality, as those defined in MDEF files.
They can be manipulated by the standard microkernel
mutex APIs.
Sample usage:
DEFINE_MUTEX(mutex1);
void one_function(void)
{
task_mutex_lock_wait(mutex1);
...
task_mutex_unlock(mutex1);
}
To use the mutex defined in another source file, simply add:
extern const kmutex_t mutex1;
to the desired C or header file.
[ DL: This is a slightly modified version of similar patch
by Allan Stephens available at
https://oic-review.01.org/gerrit/3255 ]
Change-Id: Ib9cd8193eaf849a8aad1d217912759324ee8818e
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Enables standard doxygen GUI that shows relationships
and allows code access.Navigate to forto-collab/docs/
html/index.html to view. Not linked to main docs in
this patch.Index changes to show a collapsed view as
default.
Change-Id: If496f221924d3504d8d9d120e3d80650e724af48
Signed-off-by: Carol Lee <carol.lee@windriver.com>
Enhances description for task definition. Adds examples of most
frequently used task operations. Enhances descriptions in task
API tables.
Change-Id: I5b29e2e2715f7d672f375861ae01b26ffa762fc8
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
The top make file has a documentation target that does not work.
Change it to work with our documentation and scripts.
Change-Id: Id32643900d122f54778e3179930f2e8e34387aa1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit adds a quick reference on how to debug an
application with qemu and gdb.
Change-Id: Ib75465b110a65285dc55888fbfb95e8271ad83f9
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@linux.intel.com>