Commit Graph

959 Commits

Author SHA1 Message Date
John Andersen 913e2cdb24 samples: net Documented QEMU_INSTANCE usage
Signed-off-by: John Andersen <john.s.andersen@intel.com>
2017-06-29 07:20:46 -04:00
Anas Nashif f9f2bd9d83 doc: update qemu_x86 instructions
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-28 16:58:37 -04:00
Bogdan Davidoaia 4b95a4e563 doc: update network buffers push/pull examples
- add net_buf_push_u8 to push examples
- move net_buf_pull_le32 from push to pull examples

Signed-off-by: Bogdan Davidoaia <bogdan.davidoaia@linaro.org>
2017-06-22 12:58:01 -04:00
Kumar Gala 6f53ae20ac doc: update sanitycheck doc to clarify some details
Add details about that fact that ram/flash params on the board yaml are
specified in terms of Kilobytes.  Also what the defaults are if they are
not specified.

Clarified that ignore_tags is meant for ignoring something from both
build and running. (I can see adding a tag for tests we build, but
ignore that we can run).

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-06-22 10:48:01 -04:00
Anas Nashif 24e1fc35c6 doc: add documentation about sanitycheck
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-21 20:56:53 -04:00
Anas Nashif 0f3a69a313 ztest: update documentation for yaml
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-21 20:56:53 -04:00
David B. Kinder a741c00a08 doc: fix references to moved files
Some recent PRs moved sample files to a new location

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-20 18:26:53 -04:00
David B. Kinder 2670bd6123 doc: fix headings in device tree doc
Heading hiearchy is #*=-
Also tweaked some layout formatting

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-19 17:45:27 -04:00
David B. Kinder fffb5d9c90 eoc: move non-board docs from boards TOC list
A couple of docs were created in previous PRs with board support
information common to a few boards.  Move these to a new section
for "Board Support Tools".  (I debated about hiding them completely
but decided it would still be useful to have these tool docs appear
in the table of contents, just not embedded with the supported boards
docs.)

Moved these board tools docs over to the doc/ folder and out of
boards/ and removed these pages from the navigation index.

JIRA: ZEP-2285

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-17 07:07:28 -04:00
David B. Kinder a53957fdf8 doc: update release-notes index page
Add general release information to the release-notes index page
(currently just a set of links to the release-specific pages).

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-16 21:01:00 -04:00
Anas Nashif f50ce0a58b doc: add 1.8 release notes
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-16 08:47:59 -04:00
David B. Kinder cbec29ab95 doc: change UTF-8 chars to sphinx inline replaces
Avoiding use of UTF-8 characters (trip up some tools)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-16 07:35:11 -05:00
David B. Kinder b71a722752 doc: Add link to v1.8 documentation
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-15 23:31:30 -04:00
David B. Kinder 547c74cb3c doc: fix misspellings in docs
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-13 19:45:38 -04:00
Andrew Boie ea310faa3a doc: update for new stack macros
__stack is now deprecated.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-06-13 14:34:07 -04:00
David B. Kinder f0095619ed doc: fix linenum references in api example
fixed literalinclude warning that referenced beyond end of file and
added lineno-start option to show correct line number of included file

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-06-07 22:54:29 -04:00
Andrew Boie eaa42889de doc: add interrupt implementation details
Issue: ZEP-634
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-06-06 22:23:06 -04:00
Carles Cufi 4b355f1191 doc: getting_started: Add WSL instructions
Having tried and tested building Zephyr using the standard SDK on
Windows 10 using the new WSL (Windows Subsystem for Linux), add the
documentation so that others can benefit from the functionality.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2017-06-03 15:00:24 -04:00
Andy Gross 252da09d02 doc: Add Device Tree documentation
This patch adds documention for device tree development in Zephyr.  This
includes a description of device tree, how it is integrated into Zephyr,
and other related information.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
2017-06-02 16:56:30 -04:00
Anas Nashif 294f845d6b doc: emphasize usage of MSYS2 MSYS Shell
Some users started the wrong shell (MinGW) and ended up having build
issues, added a note about starting the right shell.

Jira: ZEP-2004
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-31 14:54:34 -04:00
Anas Nashif 9901d998e5 doc: also require dtc to be installed for linux
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-31 14:54:34 -04:00
Anas Nashif 7115afd133 doc: update macOS getting started documentation
Fixed documentation and updated config files for xtools to be used with
the latest version of crosstool-ng (1.23)

Jira: ZEP-616, ZEP-2146
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-31 14:54:34 -04:00
Anas Nashif 5472fbf7f7 doc: remove links to wiki
Wiki is being obsoleted, so remove any links that might become dead
really soon.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-31 14:54:34 -04:00
Marcel Holtmann 6c2aba2eb7 doc: Add Bluetooth HCI vendor specification
Signed-off-by: Marcel Holtmann <marcel.holtmann@intel.com>
2017-05-31 18:38:46 +03:00
Carles Cufi eff52d9854 doc: getting_started: Switch to upstream DTC tree
With the required patch already being upstream, we can now redirect
users to the standard vanilla DTC tree.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2017-05-21 09:25:19 -04:00
Anas Nashif 2b13dde488 doc: update SDK link to 0.9.1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-20 09:35:51 -04:00
Anas Nashif 3ba693fe03 doc: do not put version in breadcrumbs for daily docs
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-19 16:38:21 -04:00
Carles Cufi c698956039 doc: getting_started: Remove legacy MinGW instructions
MinGW is old and unsupported, and it does not even download properly
these days. Remove the instructions that rely on MinGW since they are
only confusing for people trying to build on Windows.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2017-05-19 10:15:57 -04:00
Marti Bolivar 0c185d976a doc: board_porting: add note about sanity_chk
New boards need to be integrated into the sanitycheck infrastructure.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-05-18 20:24:58 -04:00
Carles Cufi 51ac90dc3c doc: win: Add DTC and pip instructions
Add instructions to build the DTC from Windows, note that the following
2 caveats apply:

* The flex version needs to be pinned to 2.6.0 because of a bug with the
current MSYS2 flex

* The repository to clone DTC from is currently my own on GH while
waiting for a patch to be accepted upstream

Additionally this removes the python2 requirement and adds documentation
on installing pip an pyaml.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2017-05-18 20:23:54 -04:00
David B. Kinder 11d74493a8 doc: tweak doc build tools instructions
need to use sudo -E (to get environment variables)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-18 20:22:14 -04:00
David B. Kinder 11baf5c0f1 doc: identify release version in generated docs
It's not obvious which kernel release version you're reading about in the
documentation.  Add the version info in the breadcrumb header (instead
of "Home / Docs / Subsystems /" show as
"Home / Docs / 1.8 / Subsystems /").

(Depends on docs-theme PR-9, but can be merged now with no ill-effect)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-18 20:21:27 -04:00
Andy Ross 73cb9586ce k_mem_pool: Complete rework
This patch amounts to a mostly complete rewrite of the k_mem_pool
allocator, which had been the source of historical complaints vs. the
one easily available in newlib.  The basic design of the allocator is
unchanged (it's still a 4-way buddy allocator), but the implementation
has made different choices throughout.  Major changes:

Space efficiency: The old implementation required ~2.66 bytes per
"smallest block" in overhead, plus 16 bytes per log4 "level" of the
allocation tree, plus a global tracking struct of 32 bytes and a very
surprising 12 byte overhead (in struct k_mem_block) per active
allocation on top of the returned data pointer.  This new allocator
uses a simple bit array as the only per-block storage and places the
free list into the freed blocks themselves, requiring only ~1.33 bits
per smallest block, 12 bytes per level, 32 byte globally and only 4
bytes of per-allocation bookeeping.  And it puts more of the generated
tree into BSS, slightly reducing binary sizes for non-trivial pool
sizes (even as the code size itself has increased a tiny bit).

IRQ safe: atomic operations on the store have been cut down to be at
most "4 bit sets and dlist operations" (i.e. a few dozen
instructions), reducing latency significantly and allowing us to lock
against interrupts cleanly from all APIs.  Allocations and frees can
be done from ISRs now without limitation (well, obviously you can't
sleep, so "timeout" must be K_NO_WAIT).

Deterministic performance: there is no more "defragmentation" step
that must be manually managed.  Block coalescing is done synchronously
at free time and takes constant time (strictly log4(num_levels)), as
the detection of four free "partner bits" is just a simple shift and
mask operation.

Cleaner behavior with odd sizes.  The old code assumed that the
specified maximum size would be a power of four multiple of the
minimum size, making use of non-standard buffer sizes problematic.
This implementation re-aligns the sub-blocks at each level and can
handle situations wehre alignment restrictions mean fewer than 4x will
be available.  If you want precise layout control, you can still
specify the sizes rigorously.  It just doesn't break if you don't.

More portable: the original implementation made use of GNU assembler
macros embedded inline within C __asm__ statements.  Not all
toolchains are actually backed by a GNU assembler even when the
support the GNU assembly syntax.  This is pure C, albeit with some
hairy macros to expand the compile-time-computed values.

Related changes that had to be rolled into this patch for bisectability:

* The new allocator has a firm minimum block size of 8 bytes (to store
  the dlist_node_t).  It will "work" with smaller requested min_size
  values, but obviously makes no firm promises about layout or how
  many will be available.  Unfortunately many of the tests were
  written with very small 4-byte minimum sizes and to assume exactly
  how many they could allocate.  Bump the sizes to match the allocator
  minimum.

* The mbox and pipes API made use of the internals of k_mem_block and
  had to be ported to the new scheme.  Blocks no longer store a
  backpointer to the pool that allocated them (it's an integer ID in a
  bitfield) , so if you want to "nullify" them you have to use the
  data pointer.

* test_mbox_api had a bug were it was prematurely freeing k_mem_blocks
  that it sent through the mailbox.  This worked in the old allocator
  because the memory wouldn't be touched when freed, but now we stuff
  list pointers in there and the bug was exposed.

* Remove test_mpool_options: the options (related to defragmentation
  behavior) tested no longer exist.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2017-05-13 14:39:41 -04:00
Andrew Boie d26cf2dc33 kernel: add k_thread_create() API
Unline k_thread_spawn(), the struct k_thread can live anywhere and not
in the thread's stack region. This will be useful for memory protection
scenarios where private kernel structures for a thread are not
accessible by that thread, or we want to allow the thread to use all the
stack space we gave it.

This requires a change to the internal _new_thread() API as we need to
provide a separate pointer for the k_thread.

By default, we still create internal threads with the k_thread in stack
memory. Forthcoming patches will change this, but we first need to make
it easier to define k_thread memory of variable size depending on
whether we need to store coprocessor state or not.

Change-Id: I533bbcf317833ba67a771b356b6bbc6596bf60f5
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-05-11 20:24:22 -04:00
David B. Kinder 7200513699 doc: define more unicode replacement chars
added some additional unicode character replacements for
those encountered (will fix those references after this PR)

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-09 20:16:11 -04:00
David B. Kinder 2f41cb8329 doc: misspelling and UTF-8 fixes
More general spelling fixes, and cleaning up stray UTF-8 characters
such as curly-quotes, em- and en-dashes.  Use replacement strings
for |reg| and |trade|.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-09 20:15:49 -04:00
Anas Nashif 6183d2bde7 doc: remove reference to legacy.h header
Jira: ZEP-2112

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-08 12:53:06 -04:00
Tomasz Bursztyka b192ea2bd4 doc/kernel: Fix polling documentation
Event parameter were missing on the runtime k_poll_init() calls.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2017-05-08 08:28:32 -04:00
David B. Kinder 9d4c2748db doc: remove kernel version 2 wording
Version 1 kernel (release 1.5 and earlier) is far enough from memory now
to remove the "version 2" wording in the kernel documentation and just
call it "the kernel".

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-04 18:25:14 -04:00
David B. Kinder 97ee53aa21 doc: fix doc headings in security.rst
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-05-01 23:14:38 -04:00
Anas Nashif e588ca0169 doc: change pointer to SDK
We now use github for the SDK downloads and releases.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-30 20:10:07 -04:00
David B. Kinder 1d36cfba90 doc: change gerrit references to github
We're moving the project code to GitHub folks, so change references
in the documentation from gerrit over to GitHub:
https://github.com/zephyrproject-rtos/zephyr

Change-Id: Ic491a62ed43fc799eb5698e92435cb6eb4d89394
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-28 21:21:06 +00:00
David B. Kinder 1be4d13b39 doc: remove listing of old documentation archives
Per Anas, remove references to the pre-1.5 release documentation
Archived content is still accessible if you know where it is:
https://www.zephyrproject.org/doc/1.3.0/  (for example)

Change-Id: Ia17c9ff04a76b86516f804794d6e3adb1cc2980d
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-28 21:14:18 +00:00
Jessica Wagantall 2bbaa13533 doc: Updating installation instructions
The installation instructions for Ubuntu 16.04
needed to be updated to use the correct packages
rt:40021

Change-Id: Ia6bfb66b7d24dda2556b76a495988eea20037607
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
2017-04-28 15:32:44 +00:00
Jukka Rissanen f65c06eea5 doc: net: Fix IP stack architecture data flow pictures
The TX side of network data flow was changed so update the
network architecture documentation.

Change-Id: I88680a776dfe87a8dac868cba1b536f2c926c0cd
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2017-04-28 15:01:12 +03:00
David B. Kinder 2a1adfccae doc: tweak Sphinx linkcheck options
Sphinx has a builder option that we can use to check links
(invoked with '$ make linkcheck' in the /doc folder)
Add some configuration tweaks to conf.py, and update the
Makefile to also use the nitpick (-n) option to Sphinx
if this linkcheck build option is selected (does much more
checking of internal references)

Change-Id: Ib413bc8d4195c72f1a8a4c345a5a722f88fad8b8
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-28 00:44:40 +00:00
David B. Kinder deac5a2565 doc: fix broken link in 1.7 release notes
fixed using a :ref: instead of a hard link as well

Change-Id: I383ef137934f0c616b9a98159980b954ca1b8871
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-27 15:19:26 -07:00
David B. Kinder 24488bfac2 doc: fix typo in shell doc
Incorrect quoting left a :option: inline tag in the generated output

Change-Id: Iab2e4be692e138cf01f1cc276e830b2cb0e41b03
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-04-26 11:15:25 -07:00
David Brown edd0240397 doc: Add secure coding guidelines
Initial version of some document to capture the secure coding
practices used in the Zephyr project.

Signed-off-by: David Brown <david.brown@linaro.org>
Change-Id: Ic20546a7af832dc7bd193eb91ed44f1badc3ab87
2017-04-25 02:32:14 +00:00
Kumar Gala 83a5990185 docs: convert to using newly introduced integer sized types
Convert code to use u{8,16,32,64}_t and s{8,16,32,64}_t instead of C99
integer types.

Jira: ZEP-2051

Change-Id: I731cc91517436685836023cbda34f894586a54bc
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-04-21 16:11:51 +00:00