Commit Graph

807 Commits

Author SHA1 Message Date
Anas Nashif
762bd85807 doc: read version from Makefile
Change-Id: I6edb5ee53cdff1c687e97663c93ddaa3b09a9288
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:18 +00:00
Anas Nashif
ae6f8785cd doc: group logging features under subsystem/
Change-Id: Ia2d03e64071523086a693cd8627dcea223ff9b90
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:18 +00:00
Anas Nashif
7cb8a16c86 doc: restructure application primer
Merge build system and application primer into one and put
all in one file to make it easier to follow.

Jira: ZEP-686
Change-Id: I64ec7ef7a6aa2ad80496ca0ee3ddc3d7fe09a5d7
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:17 +00:00
Anas Nashif
ebe9771d02 doc: move kernel_v2 to kernel
Change-Id: I6caa94bc1a3d1986966652cd0a24bf22f3697481
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:16 +00:00
Paul Sokolovsky
144316c05c doc/porting/arch.rst: Typo fix.
Change-Id: I2afeaf4cc74bff28cced419de16f9d51d46d6639
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2016-12-22 13:50:43 +03:00
Anas Nashif
367bf7c175 doc: remove device_sync_call documentation
This is obsolete and not available anymore in the unified kernel.

Change-Id: I39f6afd5285a2286fe954bd8dc501f888d0d9003
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-21 13:53:12 +00:00
Evan Couzens
371e435cae doc: Add environment variables to getting_started.rst
Add GCCARMEMB_TOOLCHAIN_PATH and ZEPHYR_GCC_VARIANT to
getting_started.rst per ZEP-1027

Change-Id: Ia73697c66562e02a6d93afdac6cc92e327189abe
Signed-off-by: Evan Couzens <evanx.couzens@intel.com>
2016-12-20 21:42:17 +00:00
Anas Nashif
175f63e0f9 doc: add note about order of SDK installation
Jira: ZEP-1479
Change-Id: Ie3f7eb1e7ce8f245f1e54193a30a52cf552315cd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-20 13:31:38 -05:00
Anas Nashif
40b7183326 kernel: fixed description of THREAD_CUSTOM_DATA
Change-Id: I63ebfc6b7cf869d7a00ccbe4f20eca8060edaf43
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:42 +00:00
Anas Nashif
a9e879e273 logging: move sys_log to subsys/logging
Move logging out of misc/ to its own subsystem. Anything related to
logging and any new logging features or backends could be added here
instead of the generic location in misc/ which is overcrowded with
options that are not related to eachother.

Jira: ZEP-1467
Change-Id: If6a3ea625c3a3562a7a61a0ba5fd7e6ca75518ba
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:39 +00:00
Anas Nashif
affd58a50c doc: rename shell section to simply: Shell
Change-Id: I5152f6ddc1bfd96939fb89efcf96686c44c0d626
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:39 +00:00
Benjamin Walsh
8053024752 doc: update architecture porting guide to unified kernel
Change-Id: I065cc6f92e13275d993ab6ebf9dabd855b9356c9
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-12-17 22:44:46 +00:00
Benjamin Walsh
c3a2bbba16 kernel: add k_cpu_idle/k_cpu_atomic_idle()
nano_cpu_idle/nano_cpu_atomic_idle were not ported to the unified
kernel, and only the old APIs were available. There was no real impact
since, in the unified kernel, only the idle thread should really be
doing power management. However, with a single-threaded kernel, these
functions can be useful again.

The kernel internals now make use of these APIs instead of the legacy
ones.

Change-Id: Ie8a6396ba378d3ddda27b8dd32fa4711bf53eb36
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-12-15 16:17:38 -05:00
Johan Hedberg
692771fbe9 net: buf: Switch from k_fifo to k_lifo for free buffers
Using a LIFO instead of a FIFO has the potential benefit that more
recently in-use buffers may be "cache-hot" and therefore accessed
faster than least recently used (which is what we get with a FIFO).

Change-Id: I59bb083ca2e00d0d404406540f7db216742a27cf
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-15 12:06:22 +02:00
Johan Hedberg
71c7c01819 net: buf: Remove the need for net_buf_pool_init()
In order to keep the initialization process light-weight, remove
net_buf_pool_init() and instead perform the initialization of the pool
and buffers in a "lazy" manner. This means storing more information
in the pool, and removing any 'const' members from net_buf. Since
there are no more const members in net_buf the buffer array can be
declared with __noinit, which further reduces initialization overhead.

Change-Id: Ia126af101c2727c130651b697dcba99d159a1c76
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-15 09:58:02 +02:00
Johan Hedberg
c3e08c8fea net: buf: Redesigned pool & buffer allocation API
Until now it has been necessary to separately define a k_fifo and
an array of buffers when creating net_buf pools. This has been a bit
of an inconvenience as well as blurred the line of what exactly
constitutes the "pool".

This patch removes the NET_BUF_POOL() macro and replaces it with a
NET_BUF_POOL_DEFINE() macro that internally expands into the buffer
array and new net_buf_pool struct with a given name:

	NET_BUF_POOL_DEFINE(pool_name, ...);

Having a dedicated context struct for the pool has the added benefit
that we can start moving there net_buf members that have the same
value for all buffers from the same pool. The first such member that
gets moved is the destroy callback, thus shrinking net_buf by four
bytes. Another potential candidate is the user_data_size, however
right not that's left out since it would just leave 2 bytes of padding
in net_buf (i.e. not influence its size). Another common value is
buf->size, however that one is also used by net_buf_simple and can
therefore not be moved.

This patch also splits getting buffers from a FIFO and allocating a
new buffer from a pool into two separate APIs: net_buf_get and
net_buf_alloc, thus simplifying the APIs and their usage. There is no
separate 'reserve_head' parameter anymore when allocating, rather the
user is expected to call net_buf_reserve() afterwards if something
else than 0 headroom is desired.

Change-Id: Id91b1e5c2be2deb1274dde47f5edebfe29af383a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-13 21:41:53 +00:00
Johan Hedberg
fc21a76db6 net: Fix incorrect logging format specifiers
Fix compilation issues that show up if SYS_LOG is mapped to printk
instead of printf. Unlike printf, printk is annotated so that the
compiler catches incorrect format specifiers passed to it.

Change-Id: Iab7cc6da110e9c98720211a6f773dcf055a3a411
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-07 13:15:58 +00:00
Anas Nashif
d7f8b3e239 doc: adapt source tree for new structure
Change-Id: I5d0ccb0582399faaf7550c1c49308058cd2220f1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-07 13:03:51 +00:00
Anas Nashif
70f9244db7 Merge "Merge net branch into master" 2016-12-05 15:56:26 +00:00
Anas Nashif
93279c0515 doc: add link to 1.6 documentation
Change-Id: I124cc64176b1cc5e115e29721066b463cd5df0fd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-03 22:01:47 +00:00
Jukka Rissanen
5ad60c8ee6 doc: net: Fix the path and description of the IP stack
As the Contiki uIP stack is no more there remove any reference
to it. The path to IP stack is also set correctly.

Change-Id: Ia2e10514f173cf8083d6dd258111a901987bd038
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:41:20 +02:00
Tomasz Bursztyka
66caf36a96 doc: Add a Network Management API usage document
This doc goes through how to request something, or listen to a network
event. As well as it describes how to create a request handler and how
to throw a network event.

Change-Id: I07cc6d22a14e7f1a0f239f97982c984fd13379d6
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:57 +02:00
Jukka Rissanen
5f3f331d48 net: Adapt to new behavior of net_buf_frag_add v2
This change is related to patch called
"net: Adapt to new behavior of net_buf_frag_add"

This version removes extra net_nbuf_unref() from
the code. The unref was done because net_buf_frag_del()
did not remove the double ref from the list element.

Because of the other patch, the list does not have
double ref any more, so we need to remove the extra
unref in couple of extra places.

Change-Id: If90e01c24b9b4e68afbfa283850d2a1ecb3065ed
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:54 +02:00
Jukka Rissanen
985ea03bf0 net: User connectivity API documentation
Explain how to use net_context connectivity API.

Change-Id: Ifa57af3e05ca424dfbd30a17608a1dd59646caf9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:27 +02:00
Jukka Rissanen
f5a04ec642 net: Initial architecture documentation
This document describes the network stack architecture of the
new IP stack.

Change-Id: I19f7c77c66115e6453bcde0d41bb7cada3efc5e1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:26 +02:00
Ramesh Thomas
fc5475fc46 doc: power_mgmt: Update PM doc with latest changes
Revise the document to reflect the latest changes including
the updated concept of SOC interface instead of PMA. Simplified
and enhanced areas that were known to cause confusion. Added
descriptions of new APIs and usages.

Jira: ZEP-1386
Change-Id: I5fa74d85245924f512c22d9d977dd0c9ea62b6ce
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-11-30 23:54:42 +00:00
Mahavir Jain
02036c85fb doc: fix ring_buffer code snippet
Change-Id: I5c1b08aea675ae9a9f636a1e8f0de5684dc403de
Signed-off-by: Mahavir Jain <mjain@marvell.com>
2016-11-22 21:09:13 +05:30
Anas Nashif
9f884155ab Merge "Merge bluetooth branch into master" 2016-11-19 01:52:15 +00:00
Allan Stephens
d7b355b865 doc: Revise kernel event logger documentation
Makes the purpose and capabilities of the kernel event logger
clearer, and leaves much of the low-level detail relating to
use of the configuration options and APIs to the configuration
option guide and API guide, respectively. Also corrects some
bugs in the example code for retrieving event information.

Also updates the API guide to make a clear distinction between
the general purpose event logger framework and the kernel event
logger (which is a specific instance of this framework).

Change-Id: I924f65092b2b0e5050af13376b5da85a6cdc1a65
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 23:17:51 +00:00
Johan Hedberg
7d3a6a1ae5 Bluetooth: doc: Fix reference to documentation location
The Bluetooth documentation is found in doc/subsystems/bluetooth and
not in doc/bluetooth.

Change-Id: I7e7010b5ae4a26ea552d75f1a095baec18d02630
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-18 07:47:50 +02:00
Allan Stephens
c2f15a4525 doc: Add descriptions for clock-related helper macros
Also fixes up Kernel Primer examples to use these macros.

Change-Id: Ib1bc9e3f85ab75f81986bc3930fb287266a886b5
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:35 +00:00
Allan Stephens
56daa20345 doc: Revise timer example to use workqueue instead of alert
Rewrites the example of a timer's expiry routine offloading
processing that can't be done at interrupt level. The example
now submits work to the system workqueue directly, rather than
using an alert. This saves footprint by eliminating the need
for alert-related API support that isn't needed. (This is a
true savings, since the alert code just called the same
workqueue APIs the example now calls directly.)

Change-Id: I378e40aef33014f2c75c4f57531f75247d50e479
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:34 +00:00
Allan Stephens
3acb1c97a3 doc: Enable Kernel Primer links to macro-type APIs
Also adds a link to function-type API that was missing.

Change-Id: Ie671ad2f239cdca3ac1a2eb33248dfecfa251c79
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:31 +00:00
Allan Stephens
ac4a351ba9 kernel: Enhance naming of memory pool configuration options
Replaces confusing (and excessively long) configuration option
names with more intuitive names. Also enhances the description
of each option to clarify its use.

Change-Id: If4d4541407627482b1e90302cfc9df3bc8130d44
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:17 +00:00
Allan Stephens
436094023e doc: Incorporate kernel APIs into API documentation guide
Change-Id: Ib5e5aa14534af4789d8247e6096913e09731f5bb
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:17 +00:00
Allan Stephens
d423cd3c0f doc: Various corrections to Kernel Primer
* Ensures all references to kernel functions are correctly
  tagged so they will auto-link to the API guide.

* Adds references to a few functions and macros that were
  omitted.

Change-Id: I26ccd9c29ea123db2807f2df4d05d574932c6849
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:16 +00:00
Daniel Thompson
560afde9c3 build: Document outputexports
In addition to providing documentaton, we also modify the static_lib
example to use outputexports instead of the double-include
Makefile.toolchain trick. For this to work well we need to fix a tiny
bug in the dependency handling in Makefile.inc.

Change-Id: I6571bc681bc34155f37cff1eccc2ea12ed52ef07
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
2016-11-12 02:08:08 +00:00
Allan Stephens
da82722534 doc: Minor corrections to kernel API documentation
Addresses a range of issues affecting the Kernel Primer or
the API Guide generated from doxygen tags.

* Ensures mailbox examples use kernel APIs correctly.
  (Fix for ZEP-1262, as well as other errors).

* Ensures memory alignment limitations for memory slabs
  are correctly described. (Fix for ZEP-1265.)

* Ensures memory alignment limitations for memory pools
  are more clearly described. Also fixes a typo in a
  memory pool example.

* Ensures memory alignment limitations for message
  queues are more clearly described.

* Fixes references to a number of kernel configuration
  options that were omitted or incorrectly formatted.

* Fixes a typo in an example of thread spawning.

Change-Id: I395186f333490b1e0c4223b87c0fe7136548770f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-11 22:13:32 +00:00
Allan Stephens
add6e00ac7 doc: Add workqueue information to Kernel Primer
Change-Id: I1e694dafc11f55ea4f944571ec960eee8189c703
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-11 22:13:31 +00:00
Johan Hedberg
c73aee2cfe Bluetooth: doc: Remove mentions of legacy kernel concepts
Remove mentions of task & fiber from the description of using the
bt_enable() API.

Change-Id: Ia86a2396e5ce286cc7f9a1c183b4c98abf09d394
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-11 11:24:35 +02:00
Inaky Perez-Gonzalez
dbe30711fd LICENSING: clarify licenses of imported / reused code
The Zephyr kernel tree has imported or reuses packages, scripts that
are not covered by the Apache LICENSE.

As in some places it is not clear (there is no LICENSE file or way to
put it there), here we list them to ensure there is proper license
acknowledgement.

This is an initial proposal--I welcome feedback on everything,
especially where to link the documentation (kind of kludgy now) and
more missed components from this initial list.

v5: Added David Kinder's feedback

v4: Fixed more typos in Makefile

v3: fixed some more typos, but still holding on to feedback on how it
can be done with SPDX files, as it is not yet all clear to me.

Jira: ZEP-1079
Change-Id: Ie1bf545e26b0d304cd3ea0d70cdfc13d520197fe
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-11-11 01:36:14 +00:00
axy
c4546589fb Revert "build: Document outputexports"
This reverts commit d4d9ac2d21.

This is broken:
core:static_lib(master): sanitycheck -T .
Generating LALR tables
Cleaning output directory /home/nashif/Work/zephyr/sanity-out
Selecting default platforms per test case
Building testcase defconfigs...
1 tests selected, 28 tests discarded due to filters
total complete:   1/  1  failed:   0
1 of 1 tests passed with 0 warnings in 0 seconds
Traceback (most recent call last):
  File "//home/nashif/Work/zephyr/scripts/sanitycheck", line 1887, in <module>
    main()
  File "//home/nashif/Work/zephyr/scripts/sanitycheck", line 1879, in main
    ts.testcase_report(LAST_SANITY)
  File "//home/nashif/Work/zephyr/scripts/sanitycheck", line 1551, in testcase_report
    rowdict["ram_size"] = goal.metrics["ram_size"]
KeyError: 'ram_size'
core:static_lib(master): find -name *elf
core:static_lib(master): make pristine
make -C mylib clean
make[1]: Entering directory '/home/nashif/Work/zephyr/samples/static_lib/mylib'
Makefile:19: *** $(O) is not set.  Try `make all-mylib` from hello_world.  Stop.
make[1]: Leaving directory '/home/nashif/Work/zephyr/samples/static_lib/mylib'
Makefile:37: recipe for target 'pristine' failed
make: *** [pristine] Error 2

Change-Id: I61700b0df34790aef94a6700c7c7e0605343787f
Signed-off-by: axy <anas.nashif@intel.com>
2016-11-11 01:14:51 +00:00
Daniel Thompson
d4d9ac2d21 build: Document outputexports
In addition to providing documentaton, we also modify the static_lib
example to use outputexports instead of the double-include
Makefile.toolchain trick.

Change-Id: Iafe045ccc5dbbbd4063f836cc63057b4b06f7727
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
2016-11-10 23:19:32 +00:00
Allan Stephens
073442ecc5 kernel: Treat aborting by main() as a fatal system error
An application-supplied main() routine is now considered to be
essential to system operation. Thus, if main() experiences an
error that aborts the main thread a fatal system error is raised.

Note: If main() completes its work and does a standard return-
to-caller the main thread terminates normally.

Change-Id: Icc9499f13578299244a856a246ad2a7d34a72f54
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-10 18:51:42 +00:00
Allan Stephens
361c296b30 doc: Remove reference to k_alert_handler_set()
This routine is non-existent. (Fix for ZEP-1240)

Change-Id: I85a538037aac000207f5f01414fb53810691d349
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-10 18:44:16 +00:00
Allan Stephens
0a5330748f doc: Update Interrupts section of Kernel Primer (v2)
Change-Id: I6495e7578a2ce6bda23b53567f14a0d544bb1704
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-10 18:44:16 +00:00
Anas Nashif
a3618e753d docs: remove usage of ARCH=arm
Change-Id: Ib97f325e7d4b6ef97c2d1c9c8bb9b1312d153e22
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-11-10 17:24:45 +00:00
Andrew Boie
0b474eef9c kernel: deprecate old init levels
PRIMARY, SECONDARY, NANOKERNEL, MICROKERNEL init levels are now
deprecated.

New init levels introduced: PRE_KERNEL_1, PRE_KERNEL_2, POST_KERNEL
to replace them.

Most existing code has instances of PRIMARY replaced with PRE_KERNEL_1,
SECONDARY with POST_KERNEL as SECONDARY has had a longstanding bug
where the documentation specified SECONDARY ran before the kernel started
up, but actually ran afterwards.

Change-Id: I771bc634e9caf7f17dbf214a270bc9967eed7d32
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2016-11-09 17:59:44 +00:00
Johan Hedberg
87e18b4fbb Bluetooth: samples: Use consistent naming for HCI apps
The convention for Zephyr sample names is to use _ instead of - for
delimiting words.

Change-Id: I08a63e9f600deb38183f81ddb8f8bf407b6eec2e
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-09 08:57:52 +02:00
Johan Hedberg
c1f47859e1 Bluetooth: doc: Move PICS documentation to right place
There's no point in having both a doc/bluetooth and a
doc/subsystems/bluetooth. Move the PICS documentation to the right
place and convert it to rst in the same go.

Change-Id: Iada1f19d0ed3fb3b374e7f708f175d53d797bd93
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-09 08:57:52 +02:00