You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2018/04/02 20:35:23 UTC

[GitHub] aditihilbert closed pull request #412: automated asf-site build

aditihilbert closed pull request #412: automated asf-site build
URL: https://github.com/apache/mynewt-site/pull/412
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/develop/_sources/misc/faq.rst.txt b/develop/_sources/misc/faq.rst.txt
index a37ac829a75..db5644c0468 100644
--- a/develop/_sources/misc/faq.rst.txt
+++ b/develop/_sources/misc/faq.rst.txt
@@ -1,47 +1,18 @@
 FAQ
----
+===
 
 Here are some lists, grouped by categories, of frequently asked
 questions.
 
-Mynewt software questions:
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. contents::
-  :local:
-  :depth: 1
-
-How do I reduce the code size for my Mynewt image?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Please refer to the tutorial documentation on :doc:`reducing application code size <../tutorials/other/codesize>`.
-
-I'm having issues using Newt Manager with the Adafruit nRF52DK. What do I do?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are two things you will need to do to fix any issues you encounter when working with the Adafruit nRF52DK and Newt Manager:
-
-1) Specify a reduced MTU:
-
-   You can specify the reduced MTU by adding ``mtu=128`` to your connection string. The reason for this change is that MTU is the serial boot loader used to have a smaller receive buffer (128 bytes). The newtmgr tool sends larger image chunks by default, so specifying the MTU will reduce the image size. 
-\
-
-2) Indicate that the existing image should not be erased:
-
-   This is accomplished with the ``-e`` command line option. Your command line should look similar to the following:
-   
-   ``$ newtmgr --conntype serial --connextra 'dev=/dev/ttyUSB0,mtu=128' image upload -e <image-path>``
-   
-   This change is needed because the serial boot loader doesn't support the standalone "erase image" command - as a result, it drops the request. The newtmgr image upload command starts by sending an erase command, then times out when it doesn't receive a response. The older version of newtmgr would use smaller chunk size for images, and it did not send the standalone erase command. When newtmgr was changed in versions 1.2 and 1.3, the serial boot loader changed along with it. The latest newtmgr is not compatible with an older version of the boot loader (which your board will probably ship with) without the above workarounds.
-   
 Administrative questions:
-^^^^^^^^^^^^^^^^^^^^^^^^^
+-------------------------
 
 .. contents::
   :local:
   :depth: 1
 
 How do I submit a bug?
-~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^
 
 If you do not have a JIRA account sign up
 for an account on
@@ -57,7 +28,7 @@ create a ticket. Choose "Bug" as the Issue Type. Fill in the bug
 description, how it is triggered, and other details.
 
 How do I request a feature?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 If you do not have a JIRA account sign up for an account on
 `JIRA <https://issues.apache.org/jira/secure/Signup!default.jspa>`__.
@@ -77,7 +48,7 @@ the committer list will have to review your request and assign it to
 you. You will have to refer to this JIRA ticket in your pull request.
 
 I am not on the committer list. How do I submit a patch?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 **You submit your proposed changes for your peers with committer status
 to review and merge.**
@@ -87,7 +58,7 @@ The process to submit a Pull Request on github.com is described on the
 project <https://cwiki.apache.org/confluence/display/MYNEWT/Submitting+Pull+Requests>`__.
 
 I am a committer in the project. Can I merge my own Pull Request into the git repository?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Yes, but only if your Pull Request has been reviewed and approved by
 another committer in Apache Mynewt. The process to merge a Pull Request
@@ -95,7 +66,7 @@ is described on the `Confluence page for the
 project <https://cwiki.apache.org/confluence/display/MYNEWT/Merging+Pull+Requests>`__.
 
 I would like to make some edits to the documentation. What do I do?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 You submit your proposed changes for your peers with committer status
 to review and merge.
@@ -131,7 +102,7 @@ If you want to withdraw the pull request simply go to your fork
 the delete icon.
 
 I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 You submit your proposed changes for your peers with committer status
 to review and merge.
@@ -151,3 +122,289 @@ github fork.
 
 The review and merge process is the same as other pull requests
 described for earlier questions.
+
+
+Mynewt software questions:
+--------------------------
+.. contents::
+  :local:
+  :depth: 2
+  
+Bluetooth
+^^^^^^^^^
+NimBLE on nRF52840
+~~~~~~~~~~~~~~~~~~
+**Q**: Is the nRF52840 supported by NimBLE?
+
+**A**: The nRF52840 is supported, including Bluetooth 5 features.
+
+Trigger Exactly One BLE Advertisement Immediately
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is there a way to trigger exactly one BLE advertisement immediately? I basically want to use BLE as a means to advertise to a whole group of devices and it needs to be relatively time-precise. Hoping for about 1ms precision, but it's okay if there's a delay as long as it's deterministic. 
+
+**A**: With extended advertising you can enable an advertising instance for exactly 1 advertising event but there will be some delay before controller starts advertising which depends on the level of precision. The NimBLE controller always schedules the 1st advertising event with a constant 5ms delay. However, if there are other things scheduled in the controller it may need to schedule it later so it’s not guaranteed to be deterministic. Periodic advertising is currently not supported.
+
+Supported Bluetooth Radio Transceivers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Are there any other Bluetooth radio transceivers that are supported already or anyone working on? If there is a Bluetooth radio that can be integrated using the HCI, we can use the NimBLE host? If so, I suppose we don't need detailed specs of the Bluetooth radio?
+
+**A**: You should be able to run the NimBLE host against pretty much any controller using HCI. We have a BLE controller implementation for Nordic only, but host (in theory) should work with all. More likely, it will work with 5.0 controller. For 4.x controllers it may fail on initialization since we do not check controller features - but this can be fixed
+as for other radio transceivers. For example, there's NXP KW41Z which has BLE-compatible radio documented. However, NXP documentation is more or less a description of zillions of different registers so not as friendly as the one from Nordic which explains how to actually use it.
+
+NimBLE Questions
+~~~~~~~~~~~~~~~~
+**Q**: Can I update firmware via BLE for multiple devices simultaneously using a single device/phone supporting Bluetooth?
+
+**A**: Yes, it is possible to update several Nimble devices simultaneously from a single phone (e.g., central) as long as the central can handle all the simultaneous Bluetooth connections. You can also do it using your computer as a central with newtmgr.  Just open two terminals and initiate a newtmgr image upload command in each, each to a different device.  You will, however, get better overall throughput if you limit yourself to one upgrade at a time.
+
+**Q**: I have the following doubts on NimBLE: The document says 32+ concurrent connections, multiple connections in simultaneous central and peripheral roles. Does that mean the “device running NimBLE” can connect to 32 different other devices like phones?
+
+**A**: Yes, with one caveat: each of the 32 centrals needs to be sufficiently cooperateive in choosing connection partners (http://www.novelbits.io/ble-connection-intervals/). Your app might need to request different connection parameters from the centrals (using http://mynewt.apache.org/latest/network/ble/ble_hs/ble_gap/functions/ble_gap_update_params/). 
+
+Of course, you will also need to build the Mynewt image device with a configuration suitable for 32 concurrent connections (e.g., ``NIMBLE_MAX_CONNECTIONS=32``, etc.)
+
+**Q**: I wanted to check if the stack provides firmware upgrade capability and if so, is there an example you can provide on how it is being done?
+
+**A**: The newtmgr tool is used to upgrade Mynewt devices. Newtmgr is a command line tool, but there are other client libraries available. There is some information listed under the “Image Upgrade” header at: http://mynewt.apache.org/latest/os/modules/split/spilt/
+
+``blemesh`` Forgets All Keys on Restart
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is it expected that the blemesh example forgets all the keys on restart and needs to be provisioned again? If so, how can I implement key persistence myself? Is there any API to obtain / provide mesh keys before the mesh node is started? I found bt_mesh_provision, but the comment there seems to indicate that this is not the right way to use it.
+
+**A**: Mesh implementations do not persist keys at the moment. There is a plan to add it but not sure about timeline. It probably needs to be implemented inside mesh implementation so there's no API, but if you'd like to hack something I suggest taking a look at shell.c and testing.c - there are some testing functions to add/display keys. Another area to look if you actually want to persist keys to flash is ``net/nimble/host/store/config/src/ble_store_config.c``.  This is the code that persists and restores security material for (non-mesh) Bluetooth.
+
+L2CAP Connection
+~~~~~~~~~~~~~~~~
+**Q**: I want to do an L2CAP connection, and am trying the auth-passkey command, but am not sure about the parameters ``psm``, ``action``, and ``oob``. What is ``psm``, and what is the value of that parameter in the btshell command ``l2cap-connect``? How do I set the parameters ``action`` and ``oob``?
+
+**A**: ``psm`` stands for Protocol Service Multiplexer. You pass the ``psm`` value to either ``l2-cap-connect`` or ``l2cap-create-server``. The parameters ``action`` and ``oob`` are just passing constant values as defined in the API. 
+
+Bitbang, BLE Mesh, BLE Advertising
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is it possible to run bitbanging and BLE mesh at the same time? How about running BLE Mesh and BLE advertising at the same time?
+
+**A**: It is possible to run bitbanging and BLE mesh at the same time, but the bitbanging UART takes a lot of CPU on Nordic. We’ve run it at 9600 which would probably be okay for lower rate devices, but for reliability it is recommended to run at 4800. If this is just for the console and your UART port is tied up, ``rtt`` is recommended: https://mynewt.apache.org/latest/os/tutorials/segger_rtt/. However, bitbanger can be handy given limited UARTs. 
+
+
+You can certainly continue advertisements during connections, if you are using the GATT bearer for mesh. Mesh is also tied into the ext-adv bearer in Mynewt, which also allows for interleaving, even if you’re transmitting mesh data on advertising channels.
+
+
+  
+Build Instructions and Bootloading in Newtmgr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is there any documentation on using the bootloader? It sounds like it has baked-in support for serial loading, but I can’t find any details on serial protocol, or how to do a serial boot load. I assume we set a GPREGRET flag that tells the bootloader to expect to be flashed by serial, then it handles the rest. Is that true?
+
+**A**: The serial bootloader would inspect a GPIO to see whether to wait for image upload commands or not. The protocol is the same newtmgr protocol we use for usual image uploads. For some the state reporting is simplified (omitted), and image upload goes to slot 0 instead of slot 1. The serial bootloading is built into newtmgr. For more information, refer to the documentation on the :doc:`Mynewt bootloader <../latest/os/modules/bootloader/bootloader/>`.
+
+MCUboot vs. Mynewt bootloader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is there any major difference between MCUboot and the Mynewt bootloader?
+
+**A**: They use different formats. The header is different as well, since you need to pass an extra flag (e.g. -2 to newt for ``create-image``).
+
+**Q**: What is the difference between ``boot_serial`` and ``bootutil``?
+
+**A**: ``boot_serial`` is used only for downloading images over the serial port. If you are using newtmgr to upload image over serial, it is handled in ``boot_serial``. All other bootloader code is in ``bootutil``.
+
+File System
+^^^^^^^^^^^
+``nffs`` Setup
+~~~~~~~~~~~~~~
+**Q**: I'm struggling to find any examples for ``nffs``, especially how do I setup the ``nffs_area_desc`` correctly. Where do I set it up in the BSP especially?
+
+**A**: It’s all taken care of in ``nffs_pkg_init``. As long as the ``nffs`` package is included in the project, it should initialize itself.  A few things you might find helpful:
+
+1. The ``NFFS_FLASH_AREA`` syscfg setting specifies the flash area that contains the file system.
+2. The BSP's ``bsp.yml`` file defines all the flash areas in the system, including the one specified in "1." above.
+
+NFC 
+^^^
+Support for NFC
+~~~~~~~~~~~~~~~
+Work in progress.
+
+Newt
+^^^^
+Difference Between ``newt`` Commands ``install``, ``upgrade``, and ``sync``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: What’s the difference between ``newt install``, ``newt upgrade``, and ``newt sync``?
+
+**A**: Install - downloads repos that aren't installed yet.  The downloaded version matches what project.yml specifies.
+Upgrade - performs an install, but also applies to repos that are already installed.
+Sync - fetches and pulls the latest for each repo, but does not change the branch (version).
+
+``newt size`` Command vs. Elf File Size
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I did a test build of blinky for nrf52 and got an elf-file of size 295424 bytes. If I use the newt size command for the application it says something like: 18764 bytes. What does this mean?
+
+**A**: Elfs have a lot of extra information. newt size will show the are in flash that is used which better matches the blinky.elf.bin file. Try ``running newt -ldebug build -v <your-target>`` and you will see something like this: 
+
+``arm-none-eabi-objcopy -R .bss -R .bss.core -R .bss.core.nz -O binary ...``
+
+Newtmgr
+^^^^^^^
+Connection Profile using newtmgr
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I’m trying to connect to an Adafruit nRF52 Feather Pro running Mynewt via the newtmgr tool on MacOS.  I have the device powered via micro USB to my Mac.  How do I find the “connection profile” of the device so I can connect to it? I want to communicate over BLE and not serial. 
+
+**A**: A connection profile tells newtmgr how to communicate with your device. You can create one using the ``newtmgr conn add`` command. Try talking to your device without a connection profile first. If that works, you can create a profile to make it easier to communicate with the device going forward.
+
+For BLE, you can send an echo command to your device with something like this:
+
+``newtmgr --conntype ble --connstring peer_name=nimble-bleprph echo Hello``
+
+That ``peer_name string`` is correct if your device is running the ``bleprph`` app.  You'll need to adjust it if your device has a different BLE name. The ``--conntype ble --connstring peer_name=nimble-bleprph`` part is what would go in a connection profile. If you create one, then you can just specify the profile's name rather than typing that long string each time you send a command.
+
+Porting Mynewt
+^^^^^^^^^^^^^^
+Porting Mynewt to Core-M3 MCU
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I have a weird OS tick issue with a Core-M3 MCU port. The tick rate is set up identically to most ARM MCUs by setting up a hardware interrupt to trigger SysClock / ``os_tick_per_sec``. SysClock is correct and ``os_tick_per_sec`` is set to 1000, but the tick rate seems to be significantly higher. What am I doing wrong?
+
+**A**: Check whether the LED is actually staying on or it is flickering really fast by debugging through the loop. If it is staying on, you may be getting into an ``assert()``. Otherwise, it is due to the fact that the OS timer wasn’t created, which is done by ``hal_bsp.c``. The OS timer needs a hardware timer to be running, so you will need to call ``hal_timer_init`` for timer 0 at one point.
+
+Mynewt Syntax and Semantics
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Ending the Delay of a Task Blocking a Call Early
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I have a task which is blocking on a call to ``os_time_delay()``. What is the recommended way to end the delay early in an ISR (e.g. button press)?
+
+**A**: The best way would be to use a semaphore. Initialize the semaphore with a count of 0 (``os_sem_init()``), then block on the semaphore with the maximum delay you want to wait for (``os_sem_pend()``).  The button press event would wake the first task up early by calling ``os_sem_release()``.
+
+Random Function / Device
+~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Does Mynewt have a random function or random device?
+
+**A**: ``baselibc`` has ``rand()``, and ``crypto/tinycrypt`` has ``hmac-prng``.
+
+Setting ``serial`` and ``mfghash``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: What is ``mfghash``? How do I set ``serial`` and ``mfghash`` (currently blank in my app)?
+
+**A**: ``mfghash`` is computed if you’re using ``newt mfg`` to construct your flash image, and it identifies the build of your bootloader. ``newt mfg`` bundles togetherthe bootloader, target image, and other data you’d want to bundle when creating an image to burn to flash. See <mynewt.apache.org/newt/newt/mfg> for the construction side of things and ``apache-mynewt-core/sys/mfg/src/mfg.c`` for the firmware side. ``serial`` was intended to be used if you want to have your own naming scheme per device when building products; i.e. you want something other than the mcu serial number, or if you don’t have serial number available.
+
+Purpose of the ``module`` Argument
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Can you tell me what the purpose of the module argument is in the Mynewt logging library? It looks like it just takes an int. Is this just to assign an integer ID for each module that logs?
+
+**A**: It is just an integer which accompanies each log entry.  It provides context for each log entry, and it allows a client to filter messages based on module (e.g. "give me all the file system log entries"). 
+
+**Q**: So, what is the conceptual difference between a log name, and a module number? It seems like a log type would be assigned the same name as the module that is using it, and that the module number is just a numerical ID for the module. Basically, I don't understand what the purpose of storing the name into the log type is, and passing the module number in as part of LOG_<LEVEL> macro.
+
+**A**: A log just represents a medium or region of storage (e.g., "console," or "flash circular buffer in 12kB of flash, starting at 0x0007d000").  Many parts of the system can write to the same log, so you may end up with Bluetooth, file system, and kernel scheduler entries all in the same log.  The module ID distinguishes these entries from one another. You can control level per module, so you can say, “give me all bluetooth warnings, but only give me system level errors”.
+
+**Q**: Okay, so for something like console logging, we would likely register one log for the entire application, and give each module an ID?
+
+**A**: I think the thought is that would be the debug log, and during development you could pipe that to console. In production, that might go in the spare image slot. I’m not sure if we support it yet, but we should make sure the log can write to multiple handlers at the same time.
+
+NMP
+~~~
+**Q**: What does NMP stand for?
+
+**A**: Newtmgr Management Protocol
+
+Leading Zeros Format in ``printf``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is there a way to make printf and console_printf honor the leading zeroes format? As in:
+
+``console_printf("%.2d", 5);`` outputting "05" instead of as for me now: "2d" ?
+
+**A**: ``console_printf("%02d", 5);``
+
+Miscellaneous
+^^^^^^^^^^^^^
+Greyed out files on iOS 11
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I'm trying to use the Adafruit Mynewt Manager to upload a custom image over BLE. Uploading one of the provided bleuartx000.img works fine and I can boot into them, confirm etc. However, when I try to upload a custom image I can't even seem to add it to the app. Images stored in the iCloud drive just appear as disabled icons. Anyone with a clue as to how to get that working?
+
+**A**: The new iOS version no longer allows files with unrecognized extensions to be selected. Try renaming the file to something more compatible (e.g. .txt). 
+
+Alternatives to ``cmsis_nvic.c``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: What do I use instead of the full version of ``cmsis_nvic.c`` (i.e. for setting and getting irq priorities)?
+
+**A**: Those functions are in the ``core_cmx.h`` files in ``hw/cmsis-core``.
+
+Inverted Pin Value on nRF52-DK
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I’ve been experiencing what seems to be some oddities with hal_gpio_write. It appears as though the LED pin value on the nRF52-DK is inverted (0 sets the pin high, 1 sets it low). I am checking the gpio state by turning an LED on and off. Why is this the case?
+
+**A**: LEDs on the nRF52-DK are connected to VDD and gpio so you need to set gpio to a low state in order to make it turn on. 
+
+Documentation on Correct Values for ble_gap_disc_params
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is there documentation somewhere on correct values for ``ble_gap_disc_params``? I'm trying to do a passive discovery and getting ``BLE_HS_EINVAL``.
+
+**A**: Unfortunately, not at the moment. Here is a brief description of the fields:
+``itvl`` - This is defined as the time interval from when the Controller started its last LE scan until it begins the subsequent LE scan. (units=0.625 msec)
+``window`` - The duration of the LE scan. ``LE_Scan_Window`` shall be less than or equal to ``LE_Scan_Interval``. (units=0.625 msec)
+``filter_policy`` - The only useful documentation is the table in the Bluetooth spec (section 2.E.7.8.10).  This field controls which types of devices to listen for.
+``limited`` - If set, only discover devices in limited discoverable mode.
+``passive`` - If set, don't send scan requests to advertisers (i.e., don't request additional advertising data).
+``filter_duplicates`` - If set, the controller ignores all but the first advertisement from each device.
+
+``arm-none-eabi-gcc`` Build Error for Project
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I am having this error when I try to build my project:
+
+``Building target targets/stm32l072czy6tr_boot
+Error: exec: "arm-none-eabi-gcc": executable file not found in $PATH``
+
+How do I add it?
+
+**A**: First, install the GNU Arm Embedded Toolchain if you haven’t already. Then, depending on your OS, add the link to your ``arm-none-eabi-gcc`` executable path to your PATH environment variable.
+
+Time Precision on nRF52
+~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Can ``OS_TICKS_PER_SEC`` be changed per app? I'm on the nRF52 and I need better time precision than 128Hz.
+
+**A**: No, it isn't possible to change the ticks per second for a single app.  That constant is defined to be most efficient for the particular MCU. 
+
+If you need precision, the OS tick timer is probably not the right thing to use.  Take a look at the OS cputime timer: http://mynewt.apache.org/latest/os/core_os/cputime/os_cputime/. ``os_cputime`` has 1MHz frequency by default, and enabled by default. It is recommended to use this for higher precision applications. 
+
+Issues Running Image on Boot
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I was able to successfully create a BSP for my custom board (using nRF52 MCU), then build and run that image in the debugger. However, it does not run on boot. Any ideas to fix the issue?
+
+**A**: A good process in general is to do a full flash erase, then flash the bootloader and the running image. Make sure to dump the contents of flash and see that it actually gets written there as well. If you experience the issue again after a reboot, you will also want to set ``MCU_DCDC_ENABLED:0`` then redo the process of erase, rebuild, and reload. 
+
+Multicast Messaging and Group Messaging
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: Is it possible to send a broadcast message by one of the devices present in the mesh (e.g. broadcast an event which happened)? Something like a push notification instead of continuously polling for it by a client. 
+
+**A**: It is possible to do so with a publish model. Group address or virtual address should help here, according to the Mesh spec. There is no real documentation on it but you can try it out on our ``btmesh_shell`` app. There is a ``shell.c`` file which exposes configuration client which you can use for testing (e.g. you can subscribe to virtual addresses). You can also trigger sending messages to devices. By playing with the ``dst`` command, you probably should be able to set destination to some group. However, since we do not support the provisioner role, there is a command provision which sets fixed keys so you can create a mesh network out of a couple of nodes without the actual provisioner. 
+
+Difference between ``compiler.yml`` vs. ``pkg.yml``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+``compiler.yml`` *defines* a compiler. ``pkg.yml`` contains metadata about the package. All packages have a ``pkg.yml`` file, even compiler packages.
+
+Drivers in Mynewt
+~~~~~~~~~~~~~~~~~
+**Q**: Is this a correct assumption about Mynewt, that if there exists no driver implementation for a specific SoC, in ``hw/drivers/``, then it is not supported. For instance, there exists a flash driver for ``at45db``, this implies that the Nordic nRF52 SoC is not supported at the moment?
+
+**A**: ``at45db`` is SPI, and any SPI would work. You send SPI configuration info when initializing. SPI drivers are below the ``hw/mcu/`` tree. ``hw/drivers/pwm`` and ``hw/drivers/adc`` are SoC specific. In general, drivers are for peripherals that aren't universally supported. Features that all (or nearly all) MCUs support are implemented in the HAL. For example, internal flash support is a HAL feature. For more information visit: http://mynewt.apache.org/latest/os/modules/hal/hal/
+
+Reduce Code Size for Mynewt Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: How do I reduce the code size for my Mynewt image?
+
+**A**: Please refer to the tutorial documentation on :doc:`reducing application code size <../tutorials/other/codesize>`.
+
+Issues with the Adafruit nRF52DK
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Q**: I'm having issues using Newt Manager with the Adafruit nRF52DK. What do I do?
+
+**A**: There are two things you will need to do to fix any issues you encounter when working with the Adafruit nRF52DK and Newt Manager:
+
+1) Specify a reduced MTU:
+
+   You can specify the reduced MTU by adding ``mtu=128`` to your connection string. The reason for this change is that MTU is the serial boot loader used to have a smaller receive buffer (128 bytes). The newtmgr tool sends larger image chunks by default, so specifying the MTU will reduce the image size. 
+\
+
+2) Indicate that the existing image should not be erased:
+
+   This is accomplished with the ``-e`` command line option. Your command line should look similar to the following:
+   
+   ``$ newtmgr --conntype serial --connextra 'dev=/dev/ttyUSB0,mtu=128' image upload -e <image-path>``
+   
+   This change is needed because the serial boot loader doesn't support the standalone "erase image" command - as a result, it drops the request. The newtmgr image upload command starts by sending an erase command, then times out when it doesn't receive a response. The older version of newtmgr would use smaller chunk size for images, and it did not send the standalone erase command. When newtmgr was changed in versions 1.2 and 1.3, the serial boot loader changed along with it. The latest newtmgr is not compatible with an older version of the boot loader (which your board will probably ship with) without the above workarounds.
diff --git a/develop/_sources/tutorials/blinky/nRF52.rst.txt b/develop/_sources/tutorials/blinky/nRF52.rst.txt
index 8eee7ecaba6..45e1b07d32f 100644
--- a/develop/_sources/tutorials/blinky/nRF52.rst.txt
+++ b/develop/_sources/tutorials/blinky/nRF52.rst.txt
@@ -60,10 +60,6 @@ to create a bootloader target. We name the target ``nrf52_boot``:
 Note: This tutorial uses the Nordic nRF52-DK board. You must specify
 the correct bsp for the board you are using.
 
--  For the Nordic Preview Dev Kit choose
-   @apache-mynewt-core/hw/bsp/nrf52pdk (as shown below)
--  For the Nordic Dev Kit choose @apache-mynewt-core/hw/bsp/nrf52dk
-   instead (in the highlighted lines)
 -  For the Rigado Eval Kit choose @apache-mynewt-core/hw/bsp/bmd300eval
    instead (in the highlighted lines)
 
@@ -72,7 +68,7 @@ the correct bsp for the board you are using.
 
     $ newt target create nrf52_boot
     $ newt target set nrf52_boot app=@apache-mynewt-core/apps/boot
-    $ newt target set nrf52_boot bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+    $ newt target set nrf52_boot bsp=@apache-mynewt-core/hw/bsp/nrf52dk
     $ newt target set nrf52_boot build_profile=optimized
 
 Run the following ``newt target`` commands to create a target for the
@@ -94,11 +90,11 @@ settings:
     $ newt target show
     targets/nrf52_blinky
         app=apps/blinky
-        bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+        bsp=@apache-mynewt-core/hw/bsp/nrf52dk
         build_profile=debug
     targets/nrf52_boot
         app=@apache-mynewt-core/apps/boot
-        bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+        bsp=@apache-mynewt-core/hw/bsp/nrf52dk
         build_profile=optimized
 
 Build the Target Executables
diff --git a/develop/misc/faq.html b/develop/misc/faq.html
index 650221df467..e1452c4e81b 100644
--- a/develop/misc/faq.html
+++ b/develop/misc/faq.html
@@ -261,50 +261,20 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <h1>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h1>
 <p>Here are some lists, grouped by categories, of frequently asked
 questions.</p>
-<div class="section" id="mynewt-software-questions">
-<h2>Mynewt software questions:<a class="headerlink" href="#mynewt-software-questions" title="Permalink to this headline">¶</a></h2>
-<div class="contents local topic" id="contents">
-<ul class="simple">
-<li><a class="reference internal" href="#how-do-i-reduce-the-code-size-for-my-mynewt-image" id="id2">How do I reduce the code size for my Mynewt image?</a></li>
-<li><a class="reference internal" href="#i-m-having-issues-using-newt-manager-with-the-adafruit-nrf52dk-what-do-i-do" id="id3">I’m having issues using Newt Manager with the Adafruit nRF52DK. What do I do?</a></li>
-</ul>
-</div>
-<div class="section" id="how-do-i-reduce-the-code-size-for-my-mynewt-image">
-<h3><a class="toc-backref" href="#id2">How do I reduce the code size for my Mynewt image?</a><a class="headerlink" href="#how-do-i-reduce-the-code-size-for-my-mynewt-image" title="Permalink to this headline">¶</a></h3>
-<p>Please refer to the tutorial documentation on <a class="reference internal" href="../tutorials/other/codesize.html"><span class="doc">reducing application code size</span></a>.</p>
-</div>
-<div class="section" id="i-m-having-issues-using-newt-manager-with-the-adafruit-nrf52dk-what-do-i-do">
-<h3><a class="toc-backref" href="#id3">I’m having issues using Newt Manager with the Adafruit nRF52DK. What do I do?</a><a class="headerlink" href="#i-m-having-issues-using-newt-manager-with-the-adafruit-nrf52dk-what-do-i-do" title="Permalink to this headline">¶</a></h3>
-<p>There are two things you will need to do to fix any issues you encounter when working with the Adafruit nRF52DK and Newt Manager:</p>
-<ol class="arabic">
-<li><p class="first">Specify a reduced MTU:</p>
-<p>You can specify the reduced MTU by adding <code class="docutils literal notranslate"><span class="pre">mtu=128</span></code> to your connection string. The reason for this change is that MTU is the serial boot loader used to have a smaller receive buffer (128 bytes). The newtmgr tool sends larger image chunks by default, so specifying the MTU will reduce the image size.</p>
-</li>
-</ol>
-<p></p>
-<ol class="arabic" start="2">
-<li><p class="first">Indicate that the existing image should not be erased:</p>
-<p>This is accomplished with the <code class="docutils literal notranslate"><span class="pre">-e</span></code> command line option. Your command line should look similar to the following:</p>
-<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">newtmgr</span> <span class="pre">--conntype</span> <span class="pre">serial</span> <span class="pre">--connextra</span> <span class="pre">'dev=/dev/ttyUSB0,mtu=128'</span> <span class="pre">image</span> <span class="pre">upload</span> <span class="pre">-e</span> <span class="pre">&lt;image-path&gt;</span></code></p>
-<p>This change is needed because the serial boot loader doesn’t support the standalone “erase image” command - as a result, it drops the request. The newtmgr image upload command starts by sending an erase command, then times out when it doesn’t receive a response. The older version of newtmgr would use smaller chunk size for images, and it did not send the standalone erase command. When newtmgr was changed in versions 1.2 and 1.3, the serial boot loader changed along with it. The latest newtmgr is not compatible with an older version of the boot loader (which your board will probably ship with) without the above workarounds.</p>
-</li>
-</ol>
-</div>
-</div>
 <div class="section" id="administrative-questions">
 <h2>Administrative questions:<a class="headerlink" href="#administrative-questions" title="Permalink to this headline">¶</a></h2>
-<div class="contents local topic" id="id1">
+<div class="contents local topic" id="contents">
 <ul class="simple">
-<li><a class="reference internal" href="#how-do-i-submit-a-bug" id="id4">How do I submit a bug?</a></li>
-<li><a class="reference internal" href="#how-do-i-request-a-feature" id="id5">How do I request a feature?</a></li>
-<li><a class="reference internal" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" id="id6">I am not on the committer list. How do I submit a patch?</a></li>
-<li><a class="reference internal" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" id="id7">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a></li>
-<li><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" id="id8">I would like to make some edits to the documentation. What do I do?</a></li>
-<li><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" id="id9">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a></li>
+<li><a class="reference internal" href="#how-do-i-submit-a-bug" id="id2">How do I submit a bug?</a></li>
+<li><a class="reference internal" href="#how-do-i-request-a-feature" id="id3">How do I request a feature?</a></li>
+<li><a class="reference internal" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" id="id4">I am not on the committer list. How do I submit a patch?</a></li>
+<li><a class="reference internal" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" id="id5">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a></li>
+<li><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" id="id6">I would like to make some edits to the documentation. What do I do?</a></li>
+<li><a class="reference internal" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" id="id7">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a></li>
 </ul>
 </div>
 <div class="section" id="how-do-i-submit-a-bug">
-<h3><a class="toc-backref" href="#id4">How do I submit a bug?</a><a class="headerlink" href="#how-do-i-submit-a-bug" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id2">How do I submit a bug?</a><a class="headerlink" href="#how-do-i-submit-a-bug" title="Permalink to this headline">¶</a></h3>
 <p>If you do not have a JIRA account sign up
 for an account on
 <a class="reference external" href="https://issues.apache.org/jira/secure/Signup!default.jspa">JIRA</a>.</p>
@@ -317,7 +287,7 @@ <h3><a class="toc-backref" href="#id4">How do I submit a bug?</a><a class="heade
 description, how it is triggered, and other details.</p>
 </div>
 <div class="section" id="how-do-i-request-a-feature">
-<h3><a class="toc-backref" href="#id5">How do I request a feature?</a><a class="headerlink" href="#how-do-i-request-a-feature" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id3">How do I request a feature?</a><a class="headerlink" href="#how-do-i-request-a-feature" title="Permalink to this headline">¶</a></h3>
 <p>If you do not have a JIRA account sign up for an account on
 <a class="reference external" href="https://issues.apache.org/jira/secure/Signup!default.jspa">JIRA</a>.</p>
 <p>Submit a request to the &#64;dev mailing list for your JIRA username to be
@@ -333,7 +303,7 @@ <h3><a class="toc-backref" href="#id5">How do I request a feature?</a><a class="
 you. You will have to refer to this JIRA ticket in your pull request.</p>
 </div>
 <div class="section" id="i-am-not-on-the-committer-list-how-do-i-submit-a-patch">
-<h3><a class="toc-backref" href="#id6">I am not on the committer list. How do I submit a patch?</a><a class="headerlink" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id4">I am not on the committer list. How do I submit a patch?</a><a class="headerlink" href="#i-am-not-on-the-committer-list-how-do-i-submit-a-patch" title="Permalink to this headline">¶</a></h3>
 <p><strong>You submit your proposed changes for your peers with committer status
 to review and merge.</strong></p>
 <p>The process to submit a Pull Request on github.com is described on the
@@ -341,14 +311,14 @@ <h3><a class="toc-backref" href="#id6">I am not on the committer list. How do I
 project</a>.</p>
 </div>
 <div class="section" id="i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository">
-<h3><a class="toc-backref" href="#id7">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a><a class="headerlink" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id5">I am a committer in the project. Can I merge my own Pull Request into the git repository?</a><a class="headerlink" href="#i-am-a-committer-in-the-project-can-i-merge-my-own-pull-request-into-the-git-repository" title="Permalink to this headline">¶</a></h3>
 <p>Yes, but only if your Pull Request has been reviewed and approved by
 another committer in Apache Mynewt. The process to merge a Pull Request
 is described on the <a class="reference external" href="https://cwiki.apache.org/confluence/display/MYNEWT/Merging+Pull+Requests">Confluence page for the
 project</a>.</p>
 </div>
 <div class="section" id="i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do">
-<h3><a class="toc-backref" href="#id8">I would like to make some edits to the documentation. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id6">I would like to make some edits to the documentation. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-what-do-i-do" title="Permalink to this headline">¶</a></h3>
 <p>You submit your proposed changes for your peers with committer status
 to review and merge.</p>
 <p>Each Mynewt repository has its own set of related documentation in the docs/ folder. The
@@ -377,7 +347,7 @@ <h3><a class="toc-backref" href="#id8">I would like to make some edits to the do
 the delete icon.</p>
 </div>
 <div class="section" id="i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do">
-<h3><a class="toc-backref" href="#id9">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" title="Permalink to this headline">¶</a></h3>
+<h3><a class="toc-backref" href="#id7">I would like to make some edits to the documentation but want to use an editor on my own laptop. What do I do?</a><a class="headerlink" href="#i-would-like-to-make-some-edits-to-the-documentation-but-want-to-use-an-editor-on-my-own-laptop-what-do-i-do" title="Permalink to this headline">¶</a></h3>
 <p>You submit your proposed changes for your peers with committer status
 to review and merge.</p>
 <p>Go to the <a class="reference external" href="https://github.com/apache/mynewt-documentation">documentation
@@ -395,6 +365,304 @@ <h3><a class="toc-backref" href="#id9">I would like to make some edits to the do
 described for earlier questions.</p>
 </div>
 </div>
+<div class="section" id="mynewt-software-questions">
+<h2>Mynewt software questions:<a class="headerlink" href="#mynewt-software-questions" title="Permalink to this headline">¶</a></h2>
+<div class="contents local topic" id="id1">
+<ul class="simple">
+<li><a class="reference internal" href="#bluetooth" id="id8">Bluetooth</a><ul>
+<li><a class="reference internal" href="#nimble-on-nrf52840" id="id9">NimBLE on nRF52840</a></li>
+<li><a class="reference internal" href="#trigger-exactly-one-ble-advertisement-immediately" id="id10">Trigger Exactly One BLE Advertisement Immediately</a></li>
+<li><a class="reference internal" href="#supported-bluetooth-radio-transceivers" id="id11">Supported Bluetooth Radio Transceivers</a></li>
+<li><a class="reference internal" href="#nimble-questions" id="id12">NimBLE Questions</a></li>
+<li><a class="reference internal" href="#blemesh-forgets-all-keys-on-restart" id="id13"><code class="docutils literal notranslate"><span class="pre">blemesh</span></code> Forgets All Keys on Restart</a></li>
+<li><a class="reference internal" href="#l2cap-connection" id="id14">L2CAP Connection</a></li>
+<li><a class="reference internal" href="#bitbang-ble-mesh-ble-advertising" id="id15">Bitbang, BLE Mesh, BLE Advertising</a></li>
+<li><a class="reference internal" href="#build-instructions-and-bootloading-in-newtmgr" id="id16">Build Instructions and Bootloading in Newtmgr</a></li>
+<li><a class="reference internal" href="#mcuboot-vs-mynewt-bootloader" id="id17">MCUboot vs. Mynewt bootloader</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#file-system" id="id18">File System</a><ul>
+<li><a class="reference internal" href="#nffs-setup" id="id19"><code class="docutils literal notranslate"><span class="pre">nffs</span></code> Setup</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#nfc" id="id20">NFC</a><ul>
+<li><a class="reference internal" href="#support-for-nfc" id="id21">Support for NFC</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#newt" id="id22">Newt</a><ul>
+<li><a class="reference internal" href="#difference-between-newt-commands-install-upgrade-and-sync" id="id23">Difference Between <code class="docutils literal notranslate"><span class="pre">newt</span></code> Commands <code class="docutils literal notranslate"><span class="pre">install</span></code>, <code class="docutils literal notranslate"><span class="pre">upgrade</span></code>, and <code class="docutils literal notranslate"><span class="pre">sync</span></code></a></li>
+<li><a class="reference internal" href="#newt-size-command-vs-elf-file-size" id="id24"><code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">size</span></code> Command vs. Elf File Size</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#newtmgr" id="id25">Newtmgr</a><ul>
+<li><a class="reference internal" href="#connection-profile-using-newtmgr" id="id26">Connection Profile using newtmgr</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#porting-mynewt" id="id27">Porting Mynewt</a><ul>
+<li><a class="reference internal" href="#porting-mynewt-to-core-m3-mcu" id="id28">Porting Mynewt to Core-M3 MCU</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#mynewt-syntax-and-semantics" id="id29">Mynewt Syntax and Semantics</a><ul>
+<li><a class="reference internal" href="#ending-the-delay-of-a-task-blocking-a-call-early" id="id30">Ending the Delay of a Task Blocking a Call Early</a></li>
+<li><a class="reference internal" href="#random-function-device" id="id31">Random Function / Device</a></li>
+<li><a class="reference internal" href="#setting-serial-and-mfghash" id="id32">Setting <code class="docutils literal notranslate"><span class="pre">serial</span></code> and <code class="docutils literal notranslate"><span class="pre">mfghash</span></code></a></li>
+<li><a class="reference internal" href="#purpose-of-the-module-argument" id="id33">Purpose of the <code class="docutils literal notranslate"><span class="pre">module</span></code> Argument</a></li>
+<li><a class="reference internal" href="#nmp" id="id34">NMP</a></li>
+<li><a class="reference internal" href="#leading-zeros-format-in-printf" id="id35">Leading Zeros Format in <code class="docutils literal notranslate"><span class="pre">printf</span></code></a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#miscellaneous" id="id36">Miscellaneous</a><ul>
+<li><a class="reference internal" href="#greyed-out-files-on-ios-11" id="id37">Greyed out files on iOS 11</a></li>
+<li><a class="reference internal" href="#alternatives-to-cmsis-nvic-c" id="id38">Alternatives to <code class="docutils literal notranslate"><span class="pre">cmsis_nvic.c</span></code></a></li>
+<li><a class="reference internal" href="#inverted-pin-value-on-nrf52-dk" id="id39">Inverted Pin Value on nRF52-DK</a></li>
+<li><a class="reference internal" href="#documentation-on-correct-values-for-ble-gap-disc-params" id="id40">Documentation on Correct Values for ble_gap_disc_params</a></li>
+<li><a class="reference internal" href="#arm-none-eabi-gcc-build-error-for-project" id="id41"><code class="docutils literal notranslate"><span class="pre">arm-none-eabi-gcc</span></code> Build Error for Project</a></li>
+<li><a class="reference internal" href="#time-precision-on-nrf52" id="id42">Time Precision on nRF52</a></li>
+<li><a class="reference internal" href="#issues-running-image-on-boot" id="id43">Issues Running Image on Boot</a></li>
+<li><a class="reference internal" href="#multicast-messaging-and-group-messaging" id="id44">Multicast Messaging and Group Messaging</a></li>
+<li><a class="reference internal" href="#difference-between-compiler-yml-vs-pkg-yml" id="id45">Difference between <code class="docutils literal notranslate"><span class="pre">compiler.yml</span></code> vs. <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code></a></li>
+<li><a class="reference internal" href="#drivers-in-mynewt" id="id46">Drivers in Mynewt</a></li>
+<li><a class="reference internal" href="#reduce-code-size-for-mynewt-image" id="id47">Reduce Code Size for Mynewt Image</a></li>
+<li><a class="reference internal" href="#issues-with-the-adafruit-nrf52dk" id="id48">Issues with the Adafruit nRF52DK</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="bluetooth">
+<h3><a class="toc-backref" href="#id8">Bluetooth</a><a class="headerlink" href="#bluetooth" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="nimble-on-nrf52840">
+<h4><a class="toc-backref" href="#id9">NimBLE on nRF52840</a><a class="headerlink" href="#nimble-on-nrf52840" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is the nRF52840 supported by NimBLE?</p>
+<p><strong>A</strong>: The nRF52840 is supported, including Bluetooth 5 features.</p>
+</div>
+<div class="section" id="trigger-exactly-one-ble-advertisement-immediately">
+<h4><a class="toc-backref" href="#id10">Trigger Exactly One BLE Advertisement Immediately</a><a class="headerlink" href="#trigger-exactly-one-ble-advertisement-immediately" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is there a way to trigger exactly one BLE advertisement immediately? I basically want to use BLE as a means to advertise to a whole group of devices and it needs to be relatively time-precise. Hoping for about 1ms precision, but it’s okay if there’s a delay as long as it’s deterministic.</p>
+<p><strong>A</strong>: With extended advertising you can enable an advertising instance for exactly 1 advertising event but there will be some delay before controller starts advertising which depends on the level of precision. The NimBLE controller always schedules the 1st advertising event with a constant 5ms delay. However, if there are other things scheduled in the controller it may need to schedule it later so it’s not guaranteed to be deterministic. Periodic advertising is currently not supported.</p>
+</div>
+<div class="section" id="supported-bluetooth-radio-transceivers">
+<h4><a class="toc-backref" href="#id11">Supported Bluetooth Radio Transceivers</a><a class="headerlink" href="#supported-bluetooth-radio-transceivers" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Are there any other Bluetooth radio transceivers that are supported already or anyone working on? If there is a Bluetooth radio that can be integrated using the HCI, we can use the NimBLE host? If so, I suppose we don’t need detailed specs of the Bluetooth radio?</p>
+<p><strong>A</strong>: You should be able to run the NimBLE host against pretty much any controller using HCI. We have a BLE controller implementation for Nordic only, but host (in theory) should work with all. More likely, it will work with 5.0 controller. For 4.x controllers it may fail on initialization since we do not check controller features - but this can be fixed
+as for other radio transceivers. For example, there’s NXP KW41Z which has BLE-compatible radio documented. However, NXP documentation is more or less a description of zillions of different registers so not as friendly as the one from Nordic which explains how to actually use it.</p>
+</div>
+<div class="section" id="nimble-questions">
+<h4><a class="toc-backref" href="#id12">NimBLE Questions</a><a class="headerlink" href="#nimble-questions" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Can I update firmware via BLE for multiple devices simultaneously using a single device/phone supporting Bluetooth?</p>
+<p><strong>A</strong>: Yes, it is possible to update several Nimble devices simultaneously from a single phone (e.g., central) as long as the central can handle all the simultaneous Bluetooth connections. You can also do it using your computer as a central with newtmgr.  Just open two terminals and initiate a newtmgr image upload command in each, each to a different device.  You will, however, get better overall throughput if you limit yourself to one upgrade at a time.</p>
+<p><strong>Q</strong>: I have the following doubts on NimBLE: The document says 32+ concurrent connections, multiple connections in simultaneous central and peripheral roles. Does that mean the “device running NimBLE” can connect to 32 different other devices like phones?</p>
+<p><strong>A</strong>: Yes, with one caveat: each of the 32 centrals needs to be sufficiently cooperateive in choosing connection partners (<a class="reference external" href="http://www.novelbits.io/ble-connection-intervals/">http://www.novelbits.io/ble-connection-intervals/</a>). Your app might need to request different connection parameters from the centrals (using <a class="reference external" href="http://mynewt.apache.org/latest/network/ble/ble_hs/ble_gap/functions/ble_gap_update_params/">http://mynewt.apache.org/latest/network/ble/ble_hs/ble_gap/functions/ble_gap_update_params/</a>).</p>
+<p>Of course, you will also need to build the Mynewt image device with a configuration suitable for 32 concurrent connections (e.g., <code class="docutils literal notranslate"><span class="pre">NIMBLE_MAX_CONNECTIONS=32</span></code>, etc.)</p>
+<p><strong>Q</strong>: I wanted to check if the stack provides firmware upgrade capability and if so, is there an example you can provide on how it is being done?</p>
+<p><strong>A</strong>: The newtmgr tool is used to upgrade Mynewt devices. Newtmgr is a command line tool, but there are other client libraries available. There is some information listed under the “Image Upgrade” header at: <a class="reference external" href="http://mynewt.apache.org/latest/os/modules/split/spilt/">http://mynewt.apache.org/latest/os/modules/split/spilt/</a></p>
+</div>
+<div class="section" id="blemesh-forgets-all-keys-on-restart">
+<h4><a class="toc-backref" href="#id13"><code class="docutils literal notranslate"><span class="pre">blemesh</span></code> Forgets All Keys on Restart</a><a class="headerlink" href="#blemesh-forgets-all-keys-on-restart" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is it expected that the blemesh example forgets all the keys on restart and needs to be provisioned again? If so, how can I implement key persistence myself? Is there any API to obtain / provide mesh keys before the mesh node is started? I found bt_mesh_provision, but the comment there seems to indicate that this is not the right way to use it.</p>
+<p><strong>A</strong>: Mesh implementations do not persist keys at the moment. There is a plan to add it but not sure about timeline. It probably needs to be implemented inside mesh implementation so there’s no API, but if you’d like to hack something I suggest taking a look at shell.c and testing.c - there are some testing functions to add/display keys. Another area to look if you actually want to persist keys to flash is <code class="docutils literal notranslate"><span class="pre">net/nimble/host/store/config/src/ble_store_config.c</span></code>.  This is the code that persists and restores security material for (non-mesh) Bluetooth.</p>
+</div>
+<div class="section" id="l2cap-connection">
+<h4><a class="toc-backref" href="#id14">L2CAP Connection</a><a class="headerlink" href="#l2cap-connection" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I want to do an L2CAP connection, and am trying the auth-passkey command, but am not sure about the parameters <code class="docutils literal notranslate"><span class="pre">psm</span></code>, <code class="docutils literal notranslate"><span class="pre">action</span></code>, and <code class="docutils literal notranslate"><span class="pre">oob</span></code>. What is <code class="docutils literal notranslate"><span class="pre">psm</span></code>, and what is the value of that parameter in the btshell command <code class="docutils literal notranslate"><span class="pre">l2cap-connect</span></code>? How do I set the parameters <code class="docutils literal notranslate"><span class="pre">action</span></code> and <code class="docutils literal notranslate"><span class="pre">oob</span></code>?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">psm</span></code> stands for Protocol Service Multiplexer. You pass the <code class="docutils literal notranslate"><span class="pre">psm</span></code> value to either <code class="docutils literal notranslate"><span class="pre">l2-cap-connect</span></code> or <code class="docutils literal notranslate"><span class="pre">l2cap-create-server</span></code>. The parameters <code class="docutils literal notranslate"><span class="pre">action</span></code> and <code class="docutils literal notranslate"><span class="pre">oob</span></code> are just passing constant values as defined in the API.</p>
+</div>
+<div class="section" id="bitbang-ble-mesh-ble-advertising">
+<h4><a class="toc-backref" href="#id15">Bitbang, BLE Mesh, BLE Advertising</a><a class="headerlink" href="#bitbang-ble-mesh-ble-advertising" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is it possible to run bitbanging and BLE mesh at the same time? How about running BLE Mesh and BLE advertising at the same time?</p>
+<p><strong>A</strong>: It is possible to run bitbanging and BLE mesh at the same time, but the bitbanging UART takes a lot of CPU on Nordic. We’ve run it at 9600 which would probably be okay for lower rate devices, but for reliability it is recommended to run at 4800. If this is just for the console and your UART port is tied up, <code class="docutils literal notranslate"><span class="pre">rtt</span></code> is recommended: <a class="reference external" href="https://mynewt.apache.org/latest/os/tutorials/segger_rtt/">https://mynewt.apache.org/latest/os/tutorials/segger_rtt/</a>. However, bitbanger can be handy given limited UARTs.</p>
+<p>You can certainly continue advertisements during connections, if you are using the GATT bearer for mesh. Mesh is also tied into the ext-adv bearer in Mynewt, which also allows for interleaving, even if you’re transmitting mesh data on advertising channels.</p>
+</div>
+<div class="section" id="build-instructions-and-bootloading-in-newtmgr">
+<h4><a class="toc-backref" href="#id16">Build Instructions and Bootloading in Newtmgr</a><a class="headerlink" href="#build-instructions-and-bootloading-in-newtmgr" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is there any documentation on using the bootloader? It sounds like it has baked-in support for serial loading, but I can’t find any details on serial protocol, or how to do a serial boot load. I assume we set a GPREGRET flag that tells the bootloader to expect to be flashed by serial, then it handles the rest. Is that true?</p>
+<p><strong>A</strong>: The serial bootloader would inspect a GPIO to see whether to wait for image upload commands or not. The protocol is the same newtmgr protocol we use for usual image uploads. For some the state reporting is simplified (omitted), and image upload goes to slot 0 instead of slot 1. The serial bootloading is built into newtmgr. For more information, refer to the documentation on the <span class="xref std std-doc">Mynewt bootloader</span>.</p>
+</div>
+<div class="section" id="mcuboot-vs-mynewt-bootloader">
+<h4><a class="toc-backref" href="#id17">MCUboot vs. Mynewt bootloader</a><a class="headerlink" href="#mcuboot-vs-mynewt-bootloader" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is there any major difference between MCUboot and the Mynewt bootloader?</p>
+<p><strong>A</strong>: They use different formats. The header is different as well, since you need to pass an extra flag (e.g. -2 to newt for <code class="docutils literal notranslate"><span class="pre">create-image</span></code>).</p>
+<p><strong>Q</strong>: What is the difference between <code class="docutils literal notranslate"><span class="pre">boot_serial</span></code> and <code class="docutils literal notranslate"><span class="pre">bootutil</span></code>?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">boot_serial</span></code> is used only for downloading images over the serial port. If you are using newtmgr to upload image over serial, it is handled in <code class="docutils literal notranslate"><span class="pre">boot_serial</span></code>. All other bootloader code is in <code class="docutils literal notranslate"><span class="pre">bootutil</span></code>.</p>
+</div>
+</div>
+<div class="section" id="file-system">
+<h3><a class="toc-backref" href="#id18">File System</a><a class="headerlink" href="#file-system" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="nffs-setup">
+<h4><a class="toc-backref" href="#id19"><code class="docutils literal notranslate"><span class="pre">nffs</span></code> Setup</a><a class="headerlink" href="#nffs-setup" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I’m struggling to find any examples for <code class="docutils literal notranslate"><span class="pre">nffs</span></code>, especially how do I setup the <code class="docutils literal notranslate"><span class="pre">nffs_area_desc</span></code> correctly. Where do I set it up in the BSP especially?</p>
+<p><strong>A</strong>: It’s all taken care of in <code class="docutils literal notranslate"><span class="pre">nffs_pkg_init</span></code>. As long as the <code class="docutils literal notranslate"><span class="pre">nffs</span></code> package is included in the project, it should initialize itself.  A few things you might find helpful:</p>
+<ol class="arabic simple">
+<li>The <code class="docutils literal notranslate"><span class="pre">NFFS_FLASH_AREA</span></code> syscfg setting specifies the flash area that contains the file system.</li>
+<li>The BSP’s <code class="docutils literal notranslate"><span class="pre">bsp.yml</span></code> file defines all the flash areas in the system, including the one specified in “1.” above.</li>
+</ol>
+</div>
+</div>
+<div class="section" id="nfc">
+<h3><a class="toc-backref" href="#id20">NFC</a><a class="headerlink" href="#nfc" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="support-for-nfc">
+<h4><a class="toc-backref" href="#id21">Support for NFC</a><a class="headerlink" href="#support-for-nfc" title="Permalink to this headline">¶</a></h4>
+<p>Work in progress.</p>
+</div>
+</div>
+<div class="section" id="newt">
+<h3><a class="toc-backref" href="#id22">Newt</a><a class="headerlink" href="#newt" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="difference-between-newt-commands-install-upgrade-and-sync">
+<h4><a class="toc-backref" href="#id23">Difference Between <code class="docutils literal notranslate"><span class="pre">newt</span></code> Commands <code class="docutils literal notranslate"><span class="pre">install</span></code>, <code class="docutils literal notranslate"><span class="pre">upgrade</span></code>, and <code class="docutils literal notranslate"><span class="pre">sync</span></code></a><a class="headerlink" href="#difference-between-newt-commands-install-upgrade-and-sync" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: What’s the difference between <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">install</span></code>, <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">upgrade</span></code>, and <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">sync</span></code>?</p>
+<p><strong>A</strong>: Install - downloads repos that aren’t installed yet.  The downloaded version matches what project.yml specifies.
+Upgrade - performs an install, but also applies to repos that are already installed.
+Sync - fetches and pulls the latest for each repo, but does not change the branch (version).</p>
+</div>
+<div class="section" id="newt-size-command-vs-elf-file-size">
+<h4><a class="toc-backref" href="#id24"><code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">size</span></code> Command vs. Elf File Size</a><a class="headerlink" href="#newt-size-command-vs-elf-file-size" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I did a test build of blinky for nrf52 and got an elf-file of size 295424 bytes. If I use the newt size command for the application it says something like: 18764 bytes. What does this mean?</p>
+<p><strong>A</strong>: Elfs have a lot of extra information. newt size will show the are in flash that is used which better matches the blinky.elf.bin file. Try <code class="docutils literal notranslate"><span class="pre">running</span> <span class="pre">newt</span> <span class="pre">-ldebug</span> <span class="pre">build</span> <span class="pre">-v</span> <span class="pre">&lt;your-target&gt;</span></code> and you will see something like this:</p>
+<p><code class="docutils literal notranslate"><span class="pre">arm-none-eabi-objcopy</span> <span class="pre">-R</span> <span class="pre">.bss</span> <span class="pre">-R</span> <span class="pre">.bss.core</span> <span class="pre">-R</span> <span class="pre">.bss.core.nz</span> <span class="pre">-O</span> <span class="pre">binary</span> <span class="pre">...</span></code></p>
+</div>
+</div>
+<div class="section" id="newtmgr">
+<h3><a class="toc-backref" href="#id25">Newtmgr</a><a class="headerlink" href="#newtmgr" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="connection-profile-using-newtmgr">
+<h4><a class="toc-backref" href="#id26">Connection Profile using newtmgr</a><a class="headerlink" href="#connection-profile-using-newtmgr" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I’m trying to connect to an Adafruit nRF52 Feather Pro running Mynewt via the newtmgr tool on MacOS.  I have the device powered via micro USB to my Mac.  How do I find the “connection profile” of the device so I can connect to it? I want to communicate over BLE and not serial.</p>
+<p><strong>A</strong>: A connection profile tells newtmgr how to communicate with your device. You can create one using the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">conn</span> <span class="pre">add</span></code> command. Try talking to your device without a connection profile first. If that works, you can create a profile to make it easier to communicate with the device going forward.</p>
+<p>For BLE, you can send an echo command to your device with something like this:</p>
+<p><code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">--conntype</span> <span class="pre">ble</span> <span class="pre">--connstring</span> <span class="pre">peer_name=nimble-bleprph</span> <span class="pre">echo</span> <span class="pre">Hello</span></code></p>
+<p>That <code class="docutils literal notranslate"><span class="pre">peer_name</span> <span class="pre">string</span></code> is correct if your device is running the <code class="docutils literal notranslate"><span class="pre">bleprph</span></code> app.  You’ll need to adjust it if your device has a different BLE name. The <code class="docutils literal notranslate"><span class="pre">--conntype</span> <span class="pre">ble</span> <span class="pre">--connstring</span> <span class="pre">peer_name=nimble-bleprph</span></code> part is what would go in a connection profile. If you create one, then you can just specify the profile’s name rather than typing that long string each time you send a command.</p>
+</div>
+</div>
+<div class="section" id="porting-mynewt">
+<h3><a class="toc-backref" href="#id27">Porting Mynewt</a><a class="headerlink" href="#porting-mynewt" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="porting-mynewt-to-core-m3-mcu">
+<h4><a class="toc-backref" href="#id28">Porting Mynewt to Core-M3 MCU</a><a class="headerlink" href="#porting-mynewt-to-core-m3-mcu" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I have a weird OS tick issue with a Core-M3 MCU port. The tick rate is set up identically to most ARM MCUs by setting up a hardware interrupt to trigger SysClock / <code class="docutils literal notranslate"><span class="pre">os_tick_per_sec</span></code>. SysClock is correct and <code class="docutils literal notranslate"><span class="pre">os_tick_per_sec</span></code> is set to 1000, but the tick rate seems to be significantly higher. What am I doing wrong?</p>
+<p><strong>A</strong>: Check whether the LED is actually staying on or it is flickering really fast by debugging through the loop. If it is staying on, you may be getting into an <code class="docutils literal notranslate"><span class="pre">assert()</span></code>. Otherwise, it is due to the fact that the OS timer wasn’t created, which is done by <code class="docutils literal notranslate"><span class="pre">hal_bsp.c</span></code>. The OS timer needs a hardware timer to be running, so you will need to call <code class="docutils literal notranslate"><span class="pre">hal_timer_init</span></code> for timer 0 at one point.</p>
+</div>
+</div>
+<div class="section" id="mynewt-syntax-and-semantics">
+<h3><a class="toc-backref" href="#id29">Mynewt Syntax and Semantics</a><a class="headerlink" href="#mynewt-syntax-and-semantics" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="ending-the-delay-of-a-task-blocking-a-call-early">
+<h4><a class="toc-backref" href="#id30">Ending the Delay of a Task Blocking a Call Early</a><a class="headerlink" href="#ending-the-delay-of-a-task-blocking-a-call-early" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I have a task which is blocking on a call to <code class="docutils literal notranslate"><span class="pre">os_time_delay()</span></code>. What is the recommended way to end the delay early in an ISR (e.g. button press)?</p>
+<p><strong>A</strong>: The best way would be to use a semaphore. Initialize the semaphore with a count of 0 (<code class="docutils literal notranslate"><span class="pre">os_sem_init()</span></code>), then block on the semaphore with the maximum delay you want to wait for (<code class="docutils literal notranslate"><span class="pre">os_sem_pend()</span></code>).  The button press event would wake the first task up early by calling <code class="docutils literal notranslate"><span class="pre">os_sem_release()</span></code>.</p>
+</div>
+<div class="section" id="random-function-device">
+<h4><a class="toc-backref" href="#id31">Random Function / Device</a><a class="headerlink" href="#random-function-device" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Does Mynewt have a random function or random device?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">baselibc</span></code> has <code class="docutils literal notranslate"><span class="pre">rand()</span></code>, and <code class="docutils literal notranslate"><span class="pre">crypto/tinycrypt</span></code> has <code class="docutils literal notranslate"><span class="pre">hmac-prng</span></code>.</p>
+</div>
+<div class="section" id="setting-serial-and-mfghash">
+<h4><a class="toc-backref" href="#id32">Setting <code class="docutils literal notranslate"><span class="pre">serial</span></code> and <code class="docutils literal notranslate"><span class="pre">mfghash</span></code></a><a class="headerlink" href="#setting-serial-and-mfghash" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: What is <code class="docutils literal notranslate"><span class="pre">mfghash</span></code>? How do I set <code class="docutils literal notranslate"><span class="pre">serial</span></code> and <code class="docutils literal notranslate"><span class="pre">mfghash</span></code> (currently blank in my app)?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">mfghash</span></code> is computed if you’re using <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">mfg</span></code> to construct your flash image, and it identifies the build of your bootloader. <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">mfg</span></code> bundles togetherthe bootloader, target image, and other data you’d want to bundle when creating an image to burn to flash. See &lt;mynewt.apache.org/newt/newt/mfg&gt; for the construction side of things and <code class="docutils literal notranslate"><span class="pre">apache-mynewt-core/sys/mfg/src/mfg.c</span></code> for the firmware side. <code class="docutils literal notranslate"><span class="pre">serial</span></code> was intended to be used if you want to have your own naming scheme per device when building products; i.e. you want something other than the mcu serial number, or if you don’t have serial number available.</p>
+</div>
+<div class="section" id="purpose-of-the-module-argument">
+<h4><a class="toc-backref" href="#id33">Purpose of the <code class="docutils literal notranslate"><span class="pre">module</span></code> Argument</a><a class="headerlink" href="#purpose-of-the-module-argument" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Can you tell me what the purpose of the module argument is in the Mynewt logging library? It looks like it just takes an int. Is this just to assign an integer ID for each module that logs?</p>
+<p><strong>A</strong>: It is just an integer which accompanies each log entry.  It provides context for each log entry, and it allows a client to filter messages based on module (e.g. “give me all the file system log entries”).</p>
+<p><strong>Q</strong>: So, what is the conceptual difference between a log name, and a module number? It seems like a log type would be assigned the same name as the module that is using it, and that the module number is just a numerical ID for the module. Basically, I don’t understand what the purpose of storing the name into the log type is, and passing the module number in as part of LOG_&lt;LEVEL&gt; macro.</p>
+<p><strong>A</strong>: A log just represents a medium or region of storage (e.g., “console,” or “flash circular buffer in 12kB of flash, starting at 0x0007d000”).  Many parts of the system can write to the same log, so you may end up with Bluetooth, file system, and kernel scheduler entries all in the same log.  The module ID distinguishes these entries from one another. You can control level per module, so you can say, “give me all bluetooth warnings, but only give me system level errors”.</p>
+<p><strong>Q</strong>: Okay, so for something like console logging, we would likely register one log for the entire application, and give each module an ID?</p>
+<p><strong>A</strong>: I think the thought is that would be the debug log, and during development you could pipe that to console. In production, that might go in the spare image slot. I’m not sure if we support it yet, but we should make sure the log can write to multiple handlers at the same time.</p>
+</div>
+<div class="section" id="nmp">
+<h4><a class="toc-backref" href="#id34">NMP</a><a class="headerlink" href="#nmp" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: What does NMP stand for?</p>
+<p><strong>A</strong>: Newtmgr Management Protocol</p>
+</div>
+<div class="section" id="leading-zeros-format-in-printf">
+<h4><a class="toc-backref" href="#id35">Leading Zeros Format in <code class="docutils literal notranslate"><span class="pre">printf</span></code></a><a class="headerlink" href="#leading-zeros-format-in-printf" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is there a way to make printf and console_printf honor the leading zeroes format? As in:</p>
+<p><code class="docutils literal notranslate"><span class="pre">console_printf(&quot;%.2d&quot;,</span> <span class="pre">5);</span></code> outputting “05” instead of as for me now: “2d” ?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">console_printf(&quot;%02d&quot;,</span> <span class="pre">5);</span></code></p>
+</div>
+</div>
+<div class="section" id="miscellaneous">
+<h3><a class="toc-backref" href="#id36">Miscellaneous</a><a class="headerlink" href="#miscellaneous" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="greyed-out-files-on-ios-11">
+<h4><a class="toc-backref" href="#id37">Greyed out files on iOS 11</a><a class="headerlink" href="#greyed-out-files-on-ios-11" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I’m trying to use the Adafruit Mynewt Manager to upload a custom image over BLE. Uploading one of the provided bleuartx000.img works fine and I can boot into them, confirm etc. However, when I try to upload a custom image I can’t even seem to add it to the app. Images stored in the iCloud drive just appear as disabled icons. Anyone with a clue as to how to get that working?</p>
+<p><strong>A</strong>: The new iOS version no longer allows files with unrecognized extensions to be selected. Try renaming the file to something more compatible (e.g. .txt).</p>
+</div>
+<div class="section" id="alternatives-to-cmsis-nvic-c">
+<h4><a class="toc-backref" href="#id38">Alternatives to <code class="docutils literal notranslate"><span class="pre">cmsis_nvic.c</span></code></a><a class="headerlink" href="#alternatives-to-cmsis-nvic-c" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: What do I use instead of the full version of <code class="docutils literal notranslate"><span class="pre">cmsis_nvic.c</span></code> (i.e. for setting and getting irq priorities)?</p>
+<p><strong>A</strong>: Those functions are in the <code class="docutils literal notranslate"><span class="pre">core_cmx.h</span></code> files in <code class="docutils literal notranslate"><span class="pre">hw/cmsis-core</span></code>.</p>
+</div>
+<div class="section" id="inverted-pin-value-on-nrf52-dk">
+<h4><a class="toc-backref" href="#id39">Inverted Pin Value on nRF52-DK</a><a class="headerlink" href="#inverted-pin-value-on-nrf52-dk" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I’ve been experiencing what seems to be some oddities with hal_gpio_write. It appears as though the LED pin value on the nRF52-DK is inverted (0 sets the pin high, 1 sets it low). I am checking the gpio state by turning an LED on and off. Why is this the case?</p>
+<p><strong>A</strong>: LEDs on the nRF52-DK are connected to VDD and gpio so you need to set gpio to a low state in order to make it turn on.</p>
+</div>
+<div class="section" id="documentation-on-correct-values-for-ble-gap-disc-params">
+<h4><a class="toc-backref" href="#id40">Documentation on Correct Values for ble_gap_disc_params</a><a class="headerlink" href="#documentation-on-correct-values-for-ble-gap-disc-params" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is there documentation somewhere on correct values for <code class="docutils literal notranslate"><span class="pre">ble_gap_disc_params</span></code>? I’m trying to do a passive discovery and getting <code class="docutils literal notranslate"><span class="pre">BLE_HS_EINVAL</span></code>.</p>
+<p><strong>A</strong>: Unfortunately, not at the moment. Here is a brief description of the fields:
+<code class="docutils literal notranslate"><span class="pre">itvl</span></code> - This is defined as the time interval from when the Controller started its last LE scan until it begins the subsequent LE scan. (units=0.625 msec)
+<code class="docutils literal notranslate"><span class="pre">window</span></code> - The duration of the LE scan. <code class="docutils literal notranslate"><span class="pre">LE_Scan_Window</span></code> shall be less than or equal to <code class="docutils literal notranslate"><span class="pre">LE_Scan_Interval</span></code>. (units=0.625 msec)
+<code class="docutils literal notranslate"><span class="pre">filter_policy</span></code> - The only useful documentation is the table in the Bluetooth spec (section 2.E.7.8.10).  This field controls which types of devices to listen for.
+<code class="docutils literal notranslate"><span class="pre">limited</span></code> - If set, only discover devices in limited discoverable mode.
+<code class="docutils literal notranslate"><span class="pre">passive</span></code> - If set, don’t send scan requests to advertisers (i.e., don’t request additional advertising data).
+<code class="docutils literal notranslate"><span class="pre">filter_duplicates</span></code> - If set, the controller ignores all but the first advertisement from each device.</p>
+</div>
+<div class="section" id="arm-none-eabi-gcc-build-error-for-project">
+<h4><a class="toc-backref" href="#id41"><code class="docutils literal notranslate"><span class="pre">arm-none-eabi-gcc</span></code> Build Error for Project</a><a class="headerlink" href="#arm-none-eabi-gcc-build-error-for-project" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I am having this error when I try to build my project:</p>
+<p><code class="docutils literal notranslate"><span class="pre">Building</span> <span class="pre">target</span> <span class="pre">targets/stm32l072czy6tr_boot</span>
+<span class="pre">Error:</span> <span class="pre">exec:</span> <span class="pre">&quot;arm-none-eabi-gcc&quot;:</span> <span class="pre">executable</span> <span class="pre">file</span> <span class="pre">not</span> <span class="pre">found</span> <span class="pre">in</span> <span class="pre">$PATH</span></code></p>
+<p>How do I add it?</p>
+<p><strong>A</strong>: First, install the GNU Arm Embedded Toolchain if you haven’t already. Then, depending on your OS, add the link to your <code class="docutils literal notranslate"><span class="pre">arm-none-eabi-gcc</span></code> executable path to your PATH environment variable.</p>
+</div>
+<div class="section" id="time-precision-on-nrf52">
+<h4><a class="toc-backref" href="#id42">Time Precision on nRF52</a><a class="headerlink" href="#time-precision-on-nrf52" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Can <code class="docutils literal notranslate"><span class="pre">OS_TICKS_PER_SEC</span></code> be changed per app? I’m on the nRF52 and I need better time precision than 128Hz.</p>
+<p><strong>A</strong>: No, it isn’t possible to change the ticks per second for a single app.  That constant is defined to be most efficient for the particular MCU.</p>
+<p>If you need precision, the OS tick timer is probably not the right thing to use.  Take a look at the OS cputime timer: <a class="reference external" href="http://mynewt.apache.org/latest/os/core_os/cputime/os_cputime/">http://mynewt.apache.org/latest/os/core_os/cputime/os_cputime/</a>. <code class="docutils literal notranslate"><span class="pre">os_cputime</span></code> has 1MHz frequency by default, and enabled by default. It is recommended to use this for higher precision applications.</p>
+</div>
+<div class="section" id="issues-running-image-on-boot">
+<h4><a class="toc-backref" href="#id43">Issues Running Image on Boot</a><a class="headerlink" href="#issues-running-image-on-boot" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I was able to successfully create a BSP for my custom board (using nRF52 MCU), then build and run that image in the debugger. However, it does not run on boot. Any ideas to fix the issue?</p>
+<p><strong>A</strong>: A good process in general is to do a full flash erase, then flash the bootloader and the running image. Make sure to dump the contents of flash and see that it actually gets written there as well. If you experience the issue again after a reboot, you will also want to set <code class="docutils literal notranslate"><span class="pre">MCU_DCDC_ENABLED:0</span></code> then redo the process of erase, rebuild, and reload.</p>
+</div>
+<div class="section" id="multicast-messaging-and-group-messaging">
+<h4><a class="toc-backref" href="#id44">Multicast Messaging and Group Messaging</a><a class="headerlink" href="#multicast-messaging-and-group-messaging" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is it possible to send a broadcast message by one of the devices present in the mesh (e.g. broadcast an event which happened)? Something like a push notification instead of continuously polling for it by a client.</p>
+<p><strong>A</strong>: It is possible to do so with a publish model. Group address or virtual address should help here, according to the Mesh spec. There is no real documentation on it but you can try it out on our <code class="docutils literal notranslate"><span class="pre">btmesh_shell</span></code> app. There is a <code class="docutils literal notranslate"><span class="pre">shell.c</span></code> file which exposes configuration client which you can use for testing (e.g. you can subscribe to virtual addresses). You can also trigger sending messages to devices. By playing with the <code class="docutils literal notranslate"><span class="pre">dst</span></code> command, you probably should be able to set destination to some group. However, since we do not support the provisioner role, there is a command provision which sets fixed keys so you can create a mesh network out of a couple of nodes without the actual provisioner.</p>
+</div>
+<div class="section" id="difference-between-compiler-yml-vs-pkg-yml">
+<h4><a class="toc-backref" href="#id45">Difference between <code class="docutils literal notranslate"><span class="pre">compiler.yml</span></code> vs. <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code></a><a class="headerlink" href="#difference-between-compiler-yml-vs-pkg-yml" title="Permalink to this headline">¶</a></h4>
+<p><code class="docutils literal notranslate"><span class="pre">compiler.yml</span></code> <em>defines</em> a compiler. <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> contains metadata about the package. All packages have a <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file, even compiler packages.</p>
+</div>
+<div class="section" id="drivers-in-mynewt">
+<h4><a class="toc-backref" href="#id46">Drivers in Mynewt</a><a class="headerlink" href="#drivers-in-mynewt" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: Is this a correct assumption about Mynewt, that if there exists no driver implementation for a specific SoC, in <code class="docutils literal notranslate"><span class="pre">hw/drivers/</span></code>, then it is not supported. For instance, there exists a flash driver for <code class="docutils literal notranslate"><span class="pre">at45db</span></code>, this implies that the Nordic nRF52 SoC is not supported at the moment?</p>
+<p><strong>A</strong>: <code class="docutils literal notranslate"><span class="pre">at45db</span></code> is SPI, and any SPI would work. You send SPI configuration info when initializing. SPI drivers are below the <code class="docutils literal notranslate"><span class="pre">hw/mcu/</span></code> tree. <code class="docutils literal notranslate"><span class="pre">hw/drivers/pwm</span></code> and <code class="docutils literal notranslate"><span class="pre">hw/drivers/adc</span></code> are SoC specific. In general, drivers are for peripherals that aren’t universally supported. Features that all (or nearly all) MCUs support are implemented in the HAL. For example, internal flash support is a HAL feature. For more information visit: <a class="reference external" href="http://mynewt.apache.org/latest/os/modules/hal/hal/">http://mynewt.apache.org/latest/os/modules/hal/hal/</a></p>
+</div>
+<div class="section" id="reduce-code-size-for-mynewt-image">
+<h4><a class="toc-backref" href="#id47">Reduce Code Size for Mynewt Image</a><a class="headerlink" href="#reduce-code-size-for-mynewt-image" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: How do I reduce the code size for my Mynewt image?</p>
+<p><strong>A</strong>: Please refer to the tutorial documentation on <a class="reference internal" href="../tutorials/other/codesize.html"><span class="doc">reducing application code size</span></a>.</p>
+</div>
+<div class="section" id="issues-with-the-adafruit-nrf52dk">
+<h4><a class="toc-backref" href="#id48">Issues with the Adafruit nRF52DK</a><a class="headerlink" href="#issues-with-the-adafruit-nrf52dk" title="Permalink to this headline">¶</a></h4>
+<p><strong>Q</strong>: I’m having issues using Newt Manager with the Adafruit nRF52DK. What do I do?</p>
+<p><strong>A</strong>: There are two things you will need to do to fix any issues you encounter when working with the Adafruit nRF52DK and Newt Manager:</p>
+<ol class="arabic">
+<li><p class="first">Specify a reduced MTU:</p>
+<p>You can specify the reduced MTU by adding <code class="docutils literal notranslate"><span class="pre">mtu=128</span></code> to your connection string. The reason for this change is that MTU is the serial boot loader used to have a smaller receive buffer (128 bytes). The newtmgr tool sends larger image chunks by default, so specifying the MTU will reduce the image size.</p>
+</li>
+</ol>
+<p></p>
+<ol class="arabic" start="2">
+<li><p class="first">Indicate that the existing image should not be erased:</p>
+<p>This is accomplished with the <code class="docutils literal notranslate"><span class="pre">-e</span></code> command line option. Your command line should look similar to the following:</p>
+<p><code class="docutils literal notranslate"><span class="pre">$</span> <span class="pre">newtmgr</span> <span class="pre">--conntype</span> <span class="pre">serial</span> <span class="pre">--connextra</span> <span class="pre">'dev=/dev/ttyUSB0,mtu=128'</span> <span class="pre">image</span> <span class="pre">upload</span> <span class="pre">-e</span> <span class="pre">&lt;image-path&gt;</span></code></p>
+<p>This change is needed because the serial boot loader doesn’t support the standalone “erase image” command - as a result, it drops the request. The newtmgr image upload command starts by sending an erase command, then times out when it doesn’t receive a response. The older version of newtmgr would use smaller chunk size for images, and it did not send the standalone erase command. When newtmgr was changed in versions 1.2 and 1.3, the serial boot loader changed along with it. The latest newtmgr is not compatible with an older version of the boot loader (which your board will probably ship with) without the above workarounds.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
 </div>
 
 
diff --git a/develop/searchindex.js b/develop/searchindex.js
index b2d426b02fa..79a01a296ba 100644
--- a/develop/searchindex.js
+++ b/develop/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["_static/common","concepts","get_started/docker","get_started/index","get_started/native_install/cross_tools","get_started/native_install/index","get_started/native_install/native_tools","get_started/project_create","get_started/serial_access","index","misc/faq","misc/go_env","misc/ide","misc/index","network/ble/ble_hs/ble_att","network/ble/ble_hs/ble_gap","network/ble/ble_hs/ble_gattc","network/ble/ble_hs/ble_gatts","network/ble/ble_hs/ble_hs","network/ble/ble_hs/ble_hs_id","network/ble/ble_hs/ble_hs_return_codes","network/ble/ble_intro","network/ble/ble_sec","network/ble/ble_setup/ble_addr","network/ble/ble_setup/ble_lp_clock","network/ble/ble_setup/ble_setup_intro","network/ble/ble_setup/ble_sync_cb","network/ble/btshell/btshell_GAP","network/ble/btshell/btshell_GATT","network/ble/btshell/btshell_advdata","network/ble/btshell/btshell_api","network/ble/mesh/index","network/ble/mesh/sample","newt/README","newt/command_list/newt_build","newt/command_list/newt_clean","newt/command_list/newt_complete","newt/command_list/newt_create_image","newt/command_list/newt_debug","newt/command_list/newt_help","newt/command_list/newt_info","newt/command_list/newt_install","newt/command_list/newt_load","newt/command_list/newt_mfg","newt/command_list/newt_new","newt/command_list/newt_pkg","newt/command_list/newt_resign_image","newt/command_list/newt_run","newt/command_list/newt_size","newt/command_list/newt_sync","newt/command_list/newt_target","newt/command_list/newt_test","newt/command_list/newt_upgrade","newt/command_list/newt_vals","newt/command_list/newt_version","newt/index","newt/install/index","newt/install/newt_linux","newt/install/newt_mac","newt/install/newt_windows","newt/install/prev_releases","newt/newt_operation","newt/newt_ops","newtmgr/README","newtmgr/command_list/index","newtmgr/command_list/newtmgr_config","newtmgr/command_list/newtmgr_conn","newtmgr/command_list/newtmgr_crash","newtmgr/command_list/newtmgr_datetime","newtmgr/command_list/newtmgr_echo","newtmgr/command_list/newtmgr_fs","newtmgr/command_list/newtmgr_image","newtmgr/command_list/newtmgr_logs","newtmgr/command_list/newtmgr_mpstats","newtmgr/command_list/newtmgr_reset","newtmgr/command_list/newtmgr_run","newtmgr/command_list/newtmgr_stat","newtmgr/command_list/newtmgr_taskstats","newtmgr/index","newtmgr/install/index","newtmgr/install/install_linux","newtmgr/install/install_mac","newtmgr/install/install_windows","newtmgr/install/prev_releases","os/core_os/callout/callout","os/core_os/context_switch/context_switch","os/core_os/cputime/os_cputime","os/core_os/event_queue/event_queue","os/core_os/heap/heap","os/core_os/mbuf/mbuf","os/core_os/memory_pool/memory_pool","os/core_os/mutex/mutex","os/core_os/mynewt_os","os/core_os/porting/port_bsp","os/core_os/porting/port_cpu","os/core_os/porting/port_mcu","os/core_os/porting/port_os","os/core_os/sanity/sanity","os/core_os/semaphore/semaphore","os/core_os/task/task","os/core_os/time/os_time","os/modules/baselibc","os/modules/bootloader/boot_build_status","os/modules/bootloader/boot_build_status_one","os/modules/bootloader/boot_clear_status","os/modules/bootloader/boot_copy_area","os/modules/bootloader/boot_copy_image","os/modules/bootloader/boot_erase_area","os/modules/bootloader/boot_fill_slot","os/modules/bootloader/boot_find_image_area_idx","os/modules/bootloader/boot_find_image_part","os/modules/bootloader/boot_find_image_slot","os/modules/bootloader/boot_go","os/modules/bootloader/boot_init_flash","os/modules/bootloader/boot_move_area","os/modules/bootloader/boot_read_image_header","os/modules/bootloader/boot_read_image_headers","os/modules/bootloader/boot_read_status","os/modules/bootloader/boot_select_image_slot","os/modules/bootloader/boot_slot_addr","os/modules/bootloader/boot_slot_to_area_idx","os/modules/bootloader/boot_swap_areas","os/modules/bootloader/boot_vect_delete_main","os/modules/bootloader/boot_vect_delete_test","os/modules/bootloader/boot_vect_read_main","os/modules/bootloader/boot_vect_read_one","os/modules/bootloader/boot_vect_read_test","os/modules/bootloader/boot_write_status","os/modules/bootloader/bootloader","os/modules/config/config","os/modules/console/console","os/modules/devmgmt/customize_newtmgr","os/modules/devmgmt/newtmgr","os/modules/devmgmt/oicmgr","os/modules/drivers/driver","os/modules/drivers/flash","os/modules/drivers/mmc","os/modules/elua/elua","os/modules/elua/lua_init","os/modules/elua/lua_main","os/modules/fcb/fcb","os/modules/fcb/fcb_append","os/modules/fcb/fcb_append_finish","os/modules/fcb/fcb_append_to_scratch","os/modules/fcb/fcb_clear","os/modules/fcb/fcb_getnext","os/modules/fcb/fcb_init","os/modules/fcb/fcb_is_empty","os/modules/fcb/fcb_offset_last_n","os/modules/fcb/fcb_rotate","os/modules/fcb/fcb_walk","os/modules/fs/fatfs","os/modules/fs/fs/fs","os/modules/fs/fs/fs_close","os/modules/fs/fs/fs_closedir","os/modules/fs/fs/fs_dirent_is_dir","os/modules/fs/fs/fs_dirent_name","os/modules/fs/fs/fs_filelen","os/modules/fs/fs/fs_getpos","os/modules/fs/fs/fs_mkdir","os/modules/fs/fs/fs_open","os/modules/fs/fs/fs_opendir","os/modules/fs/fs/fs_ops","os/modules/fs/fs/fs_read","os/modules/fs/fs/fs_readdir","os/modules/fs/fs/fs_register","os/modules/fs/fs/fs_rename","os/modules/fs/fs/fs_return_codes","os/modules/fs/fs/fs_seek","os/modules/fs/fs/fs_unlink","os/modules/fs/fs/fs_write","os/modules/fs/fs/fsutil_read_file","os/modules/fs/fs/fsutil_write_file","os/modules/fs/nffs/nffs","os/modules/fs/nffs/nffs_area_desc","os/modules/fs/nffs/nffs_config","os/modules/fs/nffs/nffs_detect","os/modules/fs/nffs/nffs_format","os/modules/fs/nffs/nffs_init","os/modules/fs/nffs/nffs_internals","os/modules/fs/otherfs","os/modules/hal/hal","os/modules/hal/hal_bsp/hal_bsp","os/modules/hal/hal_creation","os/modules/hal/hal_flash/hal_flash","os/modules/hal/hal_flash/hal_flash_int","os/modules/hal/hal_gpio/hal_gpio","os/modules/hal/hal_i2c/hal_i2c","os/modules/hal/hal_in_libraries","os/modules/hal/hal_os_tick/hal_os_tick","os/modules/hal/hal_spi/hal_spi","os/modules/hal/hal_system/hal_sys","os/modules/hal/hal_timer/hal_timer","os/modules/hal/hal_uart/hal_uart","os/modules/hal/hal_watchdog/hal_watchdog","os/modules/imgmgr/imgmgr","os/modules/imgmgr/imgmgr_module_init","os/modules/imgmgr/imgr_ver_parse","os/modules/imgmgr/imgr_ver_str","os/modules/json/json","os/modules/json/json_encode_object_entry","os/modules/json/json_encode_object_finish","os/modules/json/json_encode_object_key","os/modules/json/json_encode_object_start","os/modules/json/json_read_object","os/modules/logs/logs","os/modules/sensor_framework/sensor_api","os/modules/sensor_framework/sensor_create","os/modules/sensor_framework/sensor_driver","os/modules/sensor_framework/sensor_framework_overview","os/modules/sensor_framework/sensor_listener_api","os/modules/sensor_framework/sensor_mgr_api","os/modules/sensor_framework/sensor_oic","os/modules/sensor_framework/sensor_shell","os/modules/shell/shell","os/modules/shell/shell_cmd_register","os/modules/shell/shell_evq_set","os/modules/shell/shell_nlip_input_register","os/modules/shell/shell_nlip_output","os/modules/shell/shell_register","os/modules/shell/shell_register_app_cmd_handler","os/modules/shell/shell_register_default_module","os/modules/split/split","os/modules/stats/stats","os/modules/sysinitconfig/sysconfig_error","os/modules/sysinitconfig/sysinitconfig","os/modules/testutil/test_assert","os/modules/testutil/test_case","os/modules/testutil/test_decl","os/modules/testutil/test_pass","os/modules/testutil/test_suite","os/modules/testutil/testutil","os/modules/testutil/tu_init","os/modules/testutil/tu_restart","os/os_user_guide","os/tutorials/STM32F303","os/tutorials/add_newtmgr","os/tutorials/define_target","os/tutorials/event_queue","os/tutorials/ota_upgrade_nrf52","os/tutorials/pin-wheel-mods","os/tutorials/tasks_lesson","os/tutorials/try_markdown","tutorials/ble/ble","tutorials/ble/ble_bare_bones","tutorials/ble/blehci_project","tutorials/ble/bleprph/bleprph","tutorials/ble/bleprph/bleprph-sections/bleprph-adv","tutorials/ble/bleprph/bleprph-sections/bleprph-app","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg","tutorials/ble/eddystone","tutorials/ble/ibeacon","tutorials/blinky/arduino_zero","tutorials/blinky/blinky","tutorials/blinky/blinky_console","tutorials/blinky/blinky_primo","tutorials/blinky/blinky_stm32f4disc","tutorials/blinky/nRF52","tutorials/blinky/olimex","tutorials/blinky/rbnano2","tutorials/lora/lorawanapp","tutorials/other/codesize","tutorials/other/other","tutorials/other/unit_test","tutorials/other/wi-fi_on_arduino","tutorials/repo/add_repos","tutorials/repo/create_repo","tutorials/repo/private_repo","tutorials/repo/upgrade_repo","tutorials/sensors/air_quality","tutorials/sensors/air_quality_ble","tutorials/sensors/air_quality_sensor","tutorials/sensors/nrf52_adc","tutorials/sensors/sensor_bleprph_oic","tutorials/sensors/sensor_nrf52_bno055","tutorials/sensors/sensor_nrf52_bno055_oic","tutorials/sensors/sensor_offboard_config","tutorials/sensors/sensor_oic_overview","tutorials/sensors/sensor_thingy_lis2dh12_onb","tutorials/sensors/sensors","tutorials/sensors/sensors_framework","tutorials/slinky/project-nrf52-slinky","tutorials/slinky/project-sim-slinky","tutorials/slinky/project-slinky","tutorials/slinky/project-stm32-slinky","tutorials/tooling/segger_rtt","tutorials/tooling/segger_sysview","tutorials/tooling/tooling","tutorials/tutorials"],envversion:52,filenames:["_static/common.rst","concepts.rst","get_started/docker.rst","get_started/index.rst","get_started/native_install/cross_tools.rst","get_started/native_install/index.rst","get_started/native_install/native_tools.rst","get_started/project_create.rst","get_started/serial_access.rst","index.rst","misc/faq.rst","misc/go_env.rst","misc/ide.rst","misc/index.rst","network/ble/ble_hs/ble_att.rst","network/ble/ble_hs/ble_gap.rst","network/ble/ble_hs/ble_gattc.rst","network/ble/ble_hs/ble_gatts.rst","network/ble/ble_hs/ble_hs.rst","network/ble/ble_hs/ble_hs_id.rst","network/ble/ble_hs/ble_hs_return_codes.rst","network/ble/ble_intro.rst","network/ble/ble_sec.rst","network/ble/ble_setup/ble_addr.rst","network/ble/ble_setup/ble_lp_clock.rst","network/ble/ble_setup/ble_setup_intro.rst","network/ble/ble_setup/ble_sync_cb.rst","network/ble/btshell/btshell_GAP.rst","network/ble/btshell/btshell_GATT.rst","network/ble/btshell/btshell_advdata.rst","network/ble/btshell/btshell_api.rst","network/ble/mesh/index.rst","network/ble/mesh/sample.rst","newt/README.rst","newt/command_list/newt_build.rst","newt/command_list/newt_clean.rst","newt/command_list/newt_complete.rst","newt/command_list/newt_create_image.rst","newt/command_list/newt_debug.rst","newt/command_list/newt_help.rst","newt/command_list/newt_info.rst","newt/command_list/newt_install.rst","newt/command_list/newt_load.rst","newt/command_list/newt_mfg.rst","newt/command_list/newt_new.rst","newt/command_list/newt_pkg.rst","newt/command_list/newt_resign_image.rst","newt/command_list/newt_run.rst","newt/command_list/newt_size.rst","newt/command_list/newt_sync.rst","newt/command_list/newt_target.rst","newt/command_list/newt_test.rst","newt/command_list/newt_upgrade.rst","newt/command_list/newt_vals.rst","newt/command_list/newt_version.rst","newt/index.rst","newt/install/index.rst","newt/install/newt_linux.rst","newt/install/newt_mac.rst","newt/install/newt_windows.rst","newt/install/prev_releases.rst","newt/newt_operation.rst","newt/newt_ops.rst","newtmgr/README.rst","newtmgr/command_list/index.rst","newtmgr/command_list/newtmgr_config.rst","newtmgr/command_list/newtmgr_conn.rst","newtmgr/command_list/newtmgr_crash.rst","newtmgr/command_list/newtmgr_datetime.rst","newtmgr/command_list/newtmgr_echo.rst","newtmgr/command_list/newtmgr_fs.rst","newtmgr/command_list/newtmgr_image.rst","newtmgr/command_list/newtmgr_logs.rst","newtmgr/command_list/newtmgr_mpstats.rst","newtmgr/command_list/newtmgr_reset.rst","newtmgr/command_list/newtmgr_run.rst","newtmgr/command_list/newtmgr_stat.rst","newtmgr/command_list/newtmgr_taskstats.rst","newtmgr/index.rst","newtmgr/install/index.rst","newtmgr/install/install_linux.rst","newtmgr/install/install_mac.rst","newtmgr/install/install_windows.rst","newtmgr/install/prev_releases.rst","os/core_os/callout/callout.rst","os/core_os/context_switch/context_switch.rst","os/core_os/cputime/os_cputime.rst","os/core_os/event_queue/event_queue.rst","os/core_os/heap/heap.rst","os/core_os/mbuf/mbuf.rst","os/core_os/memory_pool/memory_pool.rst","os/core_os/mutex/mutex.rst","os/core_os/mynewt_os.rst","os/core_os/porting/port_bsp.rst","os/core_os/porting/port_cpu.rst","os/core_os/porting/port_mcu.rst","os/core_os/porting/port_os.rst","os/core_os/sanity/sanity.rst","os/core_os/semaphore/semaphore.rst","os/core_os/task/task.rst","os/core_os/time/os_time.rst","os/modules/baselibc.rst","os/modules/bootloader/boot_build_status.rst","os/modules/bootloader/boot_build_status_one.rst","os/modules/bootloader/boot_clear_status.rst","os/modules/bootloader/boot_copy_area.rst","os/modules/bootloader/boot_copy_image.rst","os/modules/bootloader/boot_erase_area.rst","os/modules/bootloader/boot_fill_slot.rst","os/modules/bootloader/boot_find_image_area_idx.rst","os/modules/bootloader/boot_find_image_part.rst","os/modules/bootloader/boot_find_image_slot.rst","os/modules/bootloader/boot_go.rst","os/modules/bootloader/boot_init_flash.rst","os/modules/bootloader/boot_move_area.rst","os/modules/bootloader/boot_read_image_header.rst","os/modules/bootloader/boot_read_image_headers.rst","os/modules/bootloader/boot_read_status.rst","os/modules/bootloader/boot_select_image_slot.rst","os/modules/bootloader/boot_slot_addr.rst","os/modules/bootloader/boot_slot_to_area_idx.rst","os/modules/bootloader/boot_swap_areas.rst","os/modules/bootloader/boot_vect_delete_main.rst","os/modules/bootloader/boot_vect_delete_test.rst","os/modules/bootloader/boot_vect_read_main.rst","os/modules/bootloader/boot_vect_read_one.rst","os/modules/bootloader/boot_vect_read_test.rst","os/modules/bootloader/boot_write_status.rst","os/modules/bootloader/bootloader.rst","os/modules/config/config.rst","os/modules/console/console.rst","os/modules/devmgmt/customize_newtmgr.rst","os/modules/devmgmt/newtmgr.rst","os/modules/devmgmt/oicmgr.rst","os/modules/drivers/driver.rst","os/modules/drivers/flash.rst","os/modules/drivers/mmc.rst","os/modules/elua/elua.rst","os/modules/elua/lua_init.rst","os/modules/elua/lua_main.rst","os/modules/fcb/fcb.rst","os/modules/fcb/fcb_append.rst","os/modules/fcb/fcb_append_finish.rst","os/modules/fcb/fcb_append_to_scratch.rst","os/modules/fcb/fcb_clear.rst","os/modules/fcb/fcb_getnext.rst","os/modules/fcb/fcb_init.rst","os/modules/fcb/fcb_is_empty.rst","os/modules/fcb/fcb_offset_last_n.rst","os/modules/fcb/fcb_rotate.rst","os/modules/fcb/fcb_walk.rst","os/modules/fs/fatfs.rst","os/modules/fs/fs/fs.rst","os/modules/fs/fs/fs_close.rst","os/modules/fs/fs/fs_closedir.rst","os/modules/fs/fs/fs_dirent_is_dir.rst","os/modules/fs/fs/fs_dirent_name.rst","os/modules/fs/fs/fs_filelen.rst","os/modules/fs/fs/fs_getpos.rst","os/modules/fs/fs/fs_mkdir.rst","os/modules/fs/fs/fs_open.rst","os/modules/fs/fs/fs_opendir.rst","os/modules/fs/fs/fs_ops.rst","os/modules/fs/fs/fs_read.rst","os/modules/fs/fs/fs_readdir.rst","os/modules/fs/fs/fs_register.rst","os/modules/fs/fs/fs_rename.rst","os/modules/fs/fs/fs_return_codes.rst","os/modules/fs/fs/fs_seek.rst","os/modules/fs/fs/fs_unlink.rst","os/modules/fs/fs/fs_write.rst","os/modules/fs/fs/fsutil_read_file.rst","os/modules/fs/fs/fsutil_write_file.rst","os/modules/fs/nffs/nffs.rst","os/modules/fs/nffs/nffs_area_desc.rst","os/modules/fs/nffs/nffs_config.rst","os/modules/fs/nffs/nffs_detect.rst","os/modules/fs/nffs/nffs_format.rst","os/modules/fs/nffs/nffs_init.rst","os/modules/fs/nffs/nffs_internals.rst","os/modules/fs/otherfs.rst","os/modules/hal/hal.rst","os/modules/hal/hal_bsp/hal_bsp.rst","os/modules/hal/hal_creation.rst","os/modules/hal/hal_flash/hal_flash.rst","os/modules/hal/hal_flash/hal_flash_int.rst","os/modules/hal/hal_gpio/hal_gpio.rst","os/modules/hal/hal_i2c/hal_i2c.rst","os/modules/hal/hal_in_libraries.rst","os/modules/hal/hal_os_tick/hal_os_tick.rst","os/modules/hal/hal_spi/hal_spi.rst","os/modules/hal/hal_system/hal_sys.rst","os/modules/hal/hal_timer/hal_timer.rst","os/modules/hal/hal_uart/hal_uart.rst","os/modules/hal/hal_watchdog/hal_watchdog.rst","os/modules/imgmgr/imgmgr.rst","os/modules/imgmgr/imgmgr_module_init.rst","os/modules/imgmgr/imgr_ver_parse.rst","os/modules/imgmgr/imgr_ver_str.rst","os/modules/json/json.rst","os/modules/json/json_encode_object_entry.rst","os/modules/json/json_encode_object_finish.rst","os/modules/json/json_encode_object_key.rst","os/modules/json/json_encode_object_start.rst","os/modules/json/json_read_object.rst","os/modules/logs/logs.rst","os/modules/sensor_framework/sensor_api.rst","os/modules/sensor_framework/sensor_create.rst","os/modules/sensor_framework/sensor_driver.rst","os/modules/sensor_framework/sensor_framework_overview.rst","os/modules/sensor_framework/sensor_listener_api.rst","os/modules/sensor_framework/sensor_mgr_api.rst","os/modules/sensor_framework/sensor_oic.rst","os/modules/sensor_framework/sensor_shell.rst","os/modules/shell/shell.rst","os/modules/shell/shell_cmd_register.rst","os/modules/shell/shell_evq_set.rst","os/modules/shell/shell_nlip_input_register.rst","os/modules/shell/shell_nlip_output.rst","os/modules/shell/shell_register.rst","os/modules/shell/shell_register_app_cmd_handler.rst","os/modules/shell/shell_register_default_module.rst","os/modules/split/split.rst","os/modules/stats/stats.rst","os/modules/sysinitconfig/sysconfig_error.rst","os/modules/sysinitconfig/sysinitconfig.rst","os/modules/testutil/test_assert.rst","os/modules/testutil/test_case.rst","os/modules/testutil/test_decl.rst","os/modules/testutil/test_pass.rst","os/modules/testutil/test_suite.rst","os/modules/testutil/testutil.rst","os/modules/testutil/tu_init.rst","os/modules/testutil/tu_restart.rst","os/os_user_guide.rst","os/tutorials/STM32F303.rst","os/tutorials/add_newtmgr.rst","os/tutorials/define_target.rst","os/tutorials/event_queue.rst","os/tutorials/ota_upgrade_nrf52.rst","os/tutorials/pin-wheel-mods.rst","os/tutorials/tasks_lesson.rst","os/tutorials/try_markdown.rst","tutorials/ble/ble.rst","tutorials/ble/ble_bare_bones.rst","tutorials/ble/blehci_project.rst","tutorials/ble/bleprph/bleprph.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-adv.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-app.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst","tutorials/ble/eddystone.rst","tutorials/ble/ibeacon.rst","tutorials/blinky/arduino_zero.rst","tutorials/blinky/blinky.rst","tutorials/blinky/blinky_console.rst","tutorials/blinky/blinky_primo.rst","tutorials/blinky/blinky_stm32f4disc.rst","tutorials/blinky/nRF52.rst","tutorials/blinky/olimex.rst","tutorials/blinky/rbnano2.rst","tutorials/lora/lorawanapp.rst","tutorials/other/codesize.rst","tutorials/other/other.rst","tutorials/other/unit_test.rst","tutorials/other/wi-fi_on_arduino.rst","tutorials/repo/add_repos.rst","tutorials/repo/create_repo.rst","tutorials/repo/private_repo.rst","tutorials/repo/upgrade_repo.rst","tutorials/sensors/air_quality.rst","tutorials/sensors/air_quality_ble.rst","tutorials/sensors/air_quality_sensor.rst","tutorials/sensors/nrf52_adc.rst","tutorials/sensors/sensor_bleprph_oic.rst","tutorials/sensors/sensor_nrf52_bno055.rst","tutorials/sensors/sensor_nrf52_bno055_oic.rst","tutorials/sensors/sensor_offboard_config.rst","tutorials/sensors/sensor_oic_overview.rst","tutorials/sensors/sensor_thingy_lis2dh12_onb.rst","tutorials/sensors/sensors.rst","tutorials/sensors/sensors_framework.rst","tutorials/slinky/project-nrf52-slinky.rst","tutorials/slinky/project-sim-slinky.rst","tutorials/slinky/project-slinky.rst","tutorials/slinky/project-stm32-slinky.rst","tutorials/tooling/segger_rtt.rst","tutorials/tooling/segger_sysview.rst","tutorials/tooling/tooling.rst","tutorials/tutorials.rst"],objects:{"":{"HALGpio::HAL_GPIO_MODE_IN":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_IN"],"HALGpio::HAL_GPIO_MODE_NC":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_NC"],"HALGpio::HAL_GPIO_MODE_OUT":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_OUT"],"HALGpio::HAL_GPIO_PULL_DOWN":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_DOWN"],"HALGpio::HAL_GPIO_PULL_NONE":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_NONE"],"HALGpio::HAL_GPIO_PULL_UP":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_UP"],"HALGpio::HAL_GPIO_TRIG_BOTH":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_BOTH"],"HALGpio::HAL_GPIO_TRIG_FALLING":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_FALLING"],"HALGpio::HAL_GPIO_TRIG_HIGH":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_HIGH"],"HALGpio::HAL_GPIO_TRIG_LOW":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_LOW"],"HALGpio::HAL_GPIO_TRIG_NONE":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_NONE"],"HALGpio::HAL_GPIO_TRIG_RISING":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_RISING"],"HALGpio::hal_gpio_irq_trigger":[186,2,1,"c.HALGpio::hal_gpio_irq_trigger"],"HALGpio::hal_gpio_mode_e":[186,2,1,"c.HALGpio::hal_gpio_mode_e"],"HALGpio::hal_gpio_pull":[186,2,1,"c.HALGpio::hal_gpio_pull"],"HALSystem::HAL_RESET_BROWNOUT":[191,1,1,"c.HALSystem::HAL_RESET_BROWNOUT"],"HALSystem::HAL_RESET_PIN":[191,1,1,"c.HALSystem::HAL_RESET_PIN"],"HALSystem::HAL_RESET_POR":[191,1,1,"c.HALSystem::HAL_RESET_POR"],"HALSystem::HAL_RESET_REQUESTED":[191,1,1,"c.HALSystem::HAL_RESET_REQUESTED"],"HALSystem::HAL_RESET_SOFT":[191,1,1,"c.HALSystem::HAL_RESET_SOFT"],"HALSystem::HAL_RESET_WATCHDOG":[191,1,1,"c.HALSystem::HAL_RESET_WATCHDOG"],"HALSystem::hal_reset_reason":[191,2,1,"c.HALSystem::hal_reset_reason"],"HALUart::HAL_UART_FLOW_CTL_NONE":[193,1,1,"c.HALUart::HAL_UART_FLOW_CTL_NONE"],"HALUart::HAL_UART_FLOW_CTL_RTS_CTS":[193,1,1,"c.HALUart::HAL_UART_FLOW_CTL_RTS_CTS"],"HALUart::HAL_UART_PARITY_EVEN":[193,1,1,"c.HALUart::HAL_UART_PARITY_EVEN"],"HALUart::HAL_UART_PARITY_NONE":[193,1,1,"c.HALUart::HAL_UART_PARITY_NONE"],"HALUart::HAL_UART_PARITY_ODD":[193,1,1,"c.HALUart::HAL_UART_PARITY_ODD"],"HALUart::hal_uart_flow_ctl":[193,2,1,"c.HALUart::hal_uart_flow_ctl"],"HALUart::hal_uart_parity":[193,2,1,"c.HALUart::hal_uart_parity"],"OSTask::OS_TASK_READY":[99,1,1,"c.OSTask::OS_TASK_READY"],"OSTask::OS_TASK_SLEEP":[99,1,1,"c.OSTask::OS_TASK_SLEEP"],"OSTask::os_task_state":[99,2,1,"c.OSTask::os_task_state"],"hal_i2c_master_data::address":[187,6,1,"c.hal_i2c_master_data::address"],"hal_i2c_master_data::buffer":[187,6,1,"c.hal_i2c_master_data::buffer"],"hal_spi_settings::baudrate":[190,6,1,"c.hal_spi_settings::baudrate"],"hal_spi_settings::data_mode":[190,6,1,"c.hal_spi_settings::data_mode"],"hal_spi_settings::data_order":[190,6,1,"c.hal_spi_settings::data_order"],"hal_spi_settings::word_size":[190,6,1,"c.hal_spi_settings::word_size"],"hal_timer::bsp_timer":[192,6,1,"c.hal_timer::bsp_timer"],"hal_timer::cb_arg":[192,6,1,"c.hal_timer::cb_arg"],"hal_timer::cb_func":[192,6,1,"c.hal_timer::cb_func"],"hal_timer::expiry":[192,6,1,"c.hal_timer::expiry"],"os_callout::c_ev":[84,6,1,"c.os_callout::c_ev"],"os_callout::c_evq":[84,6,1,"c.os_callout::c_evq"],"os_callout::c_ticks":[84,6,1,"c.os_callout::c_ticks"],"os_event::ev_arg":[87,6,1,"c.os_event::ev_arg"],"os_event::ev_cb":[87,6,1,"c.os_event::ev_cb"],"os_event::ev_queued":[87,6,1,"c.os_event::ev_queued"],"os_eventq::evq_owner":[87,6,1,"c.os_eventq::evq_owner"],"os_eventq::evq_task":[87,6,1,"c.os_eventq::evq_task"],"os_mbuf::om_data":[89,6,1,"c.os_mbuf::om_data"],"os_mbuf::om_flags":[89,6,1,"c.os_mbuf::om_flags"],"os_mbuf::om_len":[89,6,1,"c.os_mbuf::om_len"],"os_mbuf::om_omp":[89,6,1,"c.os_mbuf::om_omp"],"os_mbuf::om_pkthdr_len":[89,6,1,"c.os_mbuf::om_pkthdr_len"],"os_mbuf_pkthdr::omp_flags":[89,6,1,"c.os_mbuf_pkthdr::omp_flags"],"os_mbuf_pkthdr::omp_len":[89,6,1,"c.os_mbuf_pkthdr::omp_len"],"os_mbuf_pool::omp_databuf_len":[89,6,1,"c.os_mbuf_pool::omp_databuf_len"],"os_mbuf_pool::omp_pool":[89,6,1,"c.os_mbuf_pool::omp_pool"],"os_mempool::mp_block_size":[90,6,1,"c.os_mempool::mp_block_size"],"os_mempool::mp_flags":[90,6,1,"c.os_mempool::mp_flags"],"os_mempool::mp_membuf_addr":[90,6,1,"c.os_mempool::mp_membuf_addr"],"os_mempool::mp_min_free":[90,6,1,"c.os_mempool::mp_min_free"],"os_mempool::mp_num_blocks":[90,6,1,"c.os_mempool::mp_num_blocks"],"os_mempool::mp_num_free":[90,6,1,"c.os_mempool::mp_num_free"],"os_mempool::name":[90,6,1,"c.os_mempool::name"],"os_mempool_info::omi_block_size":[90,6,1,"c.os_mempool_info::omi_block_size"],"os_mempool_info::omi_min_free":[90,6,1,"c.os_mempool_info::omi_min_free"],"os_mempool_info::omi_num_blocks":[90,6,1,"c.os_mempool_info::omi_num_blocks"],"os_mempool_info::omi_num_free":[90,6,1,"c.os_mempool_info::omi_num_free"],"os_mqueue::mq_ev":[89,6,1,"c.os_mqueue::mq_ev"],"os_mutex::SLIST_HEAD":[91,3,1,"c.os_mutex::SLIST_HEAD"],"os_mutex::_pad":[91,6,1,"c.os_mutex::_pad"],"os_mutex::mu_level":[91,6,1,"c.os_mutex::mu_level"],"os_mutex::mu_owner":[91,6,1,"c.os_mutex::mu_owner"],"os_mutex::mu_prio":[91,6,1,"c.os_mutex::mu_prio"],"os_sanity_check::sc_arg":[97,6,1,"c.os_sanity_check::sc_arg"],"os_sanity_check::sc_checkin_itvl":[97,6,1,"c.os_sanity_check::sc_checkin_itvl"],"os_sanity_check::sc_checkin_last":[97,6,1,"c.os_sanity_check::sc_checkin_last"],"os_sanity_check::sc_func":[97,6,1,"c.os_sanity_check::sc_func"],"os_sem::sem_tokens":[98,6,1,"c.os_sem::sem_tokens"],"os_task::t_arg":[99,6,1,"c.os_task::t_arg"],"os_task::t_ctx_sw_cnt":[99,6,1,"c.os_task::t_ctx_sw_cnt"],"os_task::t_flags":[99,6,1,"c.os_task::t_flags"],"os_task::t_func":[99,6,1,"c.os_task::t_func"],"os_task::t_name":[99,6,1,"c.os_task::t_name"],"os_task::t_next_wakeup":[99,6,1,"c.os_task::t_next_wakeup"],"os_task::t_obj":[99,6,1,"c.os_task::t_obj"],"os_task::t_prio":[99,6,1,"c.os_task::t_prio"],"os_task::t_run_time":[99,6,1,"c.os_task::t_run_time"],"os_task::t_sanity_check":[99,6,1,"c.os_task::t_sanity_check"],"os_task::t_stackptr":[99,6,1,"c.os_task::t_stackptr"],"os_task::t_stacksize":[99,6,1,"c.os_task::t_stacksize"],"os_task::t_stacktop":[99,6,1,"c.os_task::t_stacktop"],"os_task::t_taskid":[99,6,1,"c.os_task::t_taskid"],"os_task_info::oti_cswcnt":[99,6,1,"c.os_task_info::oti_cswcnt"],"os_task_info::oti_last_checkin":[99,6,1,"c.os_task_info::oti_last_checkin"],"os_task_info::oti_next_checkin":[99,6,1,"c.os_task_info::oti_next_checkin"],"os_task_info::oti_prio":[99,6,1,"c.os_task_info::oti_prio"],"os_task_info::oti_runtime":[99,6,1,"c.os_task_info::oti_runtime"],"os_task_info::oti_state":[99,6,1,"c.os_task_info::oti_state"],"os_task_info::oti_stksize":[99,6,1,"c.os_task_info::oti_stksize"],"os_task_info::oti_stkusage":[99,6,1,"c.os_task_info::oti_stkusage"],"os_task_info::oti_taskid":[99,6,1,"c.os_task_info::oti_taskid"],"os_timezone::tz_dsttime":[100,6,1,"c.os_timezone::tz_dsttime"],"os_timezone::tz_minuteswest":[100,6,1,"c.os_timezone::tz_minuteswest"],CPUTIME_GEQ:[86,0,1,"c.CPUTIME_GEQ"],CPUTIME_GT:[86,0,1,"c.CPUTIME_GT"],CPUTIME_LEQ:[86,0,1,"c.CPUTIME_LEQ"],CPUTIME_LT:[86,0,1,"c.CPUTIME_LT"],HAL_BSP_MAX_ID_LEN:[182,0,1,"c.HAL_BSP_MAX_ID_LEN"],HAL_BSP_POWER_DEEP_SLEEP:[182,0,1,"c.HAL_BSP_POWER_DEEP_SLEEP"],HAL_BSP_POWER_OFF:[182,0,1,"c.HAL_BSP_POWER_OFF"],HAL_BSP_POWER_ON:[182,0,1,"c.HAL_BSP_POWER_ON"],HAL_BSP_POWER_PERUSER:[182,0,1,"c.HAL_BSP_POWER_PERUSER"],HAL_BSP_POWER_SLEEP:[182,0,1,"c.HAL_BSP_POWER_SLEEP"],HAL_BSP_POWER_WFI:[182,0,1,"c.HAL_BSP_POWER_WFI"],HAL_SPI_LSB_FIRST:[190,0,1,"c.HAL_SPI_LSB_FIRST"],HAL_SPI_MODE0:[190,0,1,"c.HAL_SPI_MODE0"],HAL_SPI_MODE1:[190,0,1,"c.HAL_SPI_MODE1"],HAL_SPI_MODE2:[190,0,1,"c.HAL_SPI_MODE2"],HAL_SPI_MODE3:[190,0,1,"c.HAL_SPI_MODE3"],HAL_SPI_MSB_FIRST:[190,0,1,"c.HAL_SPI_MSB_FIRST"],HAL_SPI_TYPE_MASTER:[190,0,1,"c.HAL_SPI_TYPE_MASTER"],HAL_SPI_TYPE_SLAVE:[190,0,1,"c.HAL_SPI_TYPE_SLAVE"],HAL_SPI_WORD_SIZE_8BIT:[190,0,1,"c.HAL_SPI_WORD_SIZE_8BIT"],HAL_SPI_WORD_SIZE_9BIT:[190,0,1,"c.HAL_SPI_WORD_SIZE_9BIT"],OS_CALLOUT_F_QUEUED:[84,0,1,"c.OS_CALLOUT_F_QUEUED"],OS_EVENT_QUEUED:[87,0,1,"c.OS_EVENT_QUEUED"],OS_MBUF_DATA:[89,0,1,"c.OS_MBUF_DATA"],OS_MBUF_F_MASK:[89,0,1,"c.OS_MBUF_F_MASK"],OS_MBUF_IS_PKTHDR:[89,0,1,"c.OS_MBUF_IS_PKTHDR"],OS_MBUF_LEADINGSPACE:[89,0,1,"c.OS_MBUF_LEADINGSPACE"],OS_MBUF_PKTHDR:[89,0,1,"c.OS_MBUF_PKTHDR"],OS_MBUF_PKTHDR_TO_MBUF:[89,0,1,"c.OS_MBUF_PKTHDR_TO_MBUF"],OS_MBUF_PKTLEN:[89,0,1,"c.OS_MBUF_PKTLEN"],OS_MBUF_TRAILINGSPACE:[89,0,1,"c.OS_MBUF_TRAILINGSPACE"],OS_MBUF_USRHDR:[89,0,1,"c.OS_MBUF_USRHDR"],OS_MBUF_USRHDR_LEN:[89,0,1,"c.OS_MBUF_USRHDR_LEN"],OS_MEMPOOL_BYTES:[90,0,1,"c.OS_MEMPOOL_BYTES"],OS_MEMPOOL_F_EXT:[90,0,1,"c.OS_MEMPOOL_F_EXT"],OS_MEMPOOL_INFO_NAME_LEN:[90,0,1,"c.OS_MEMPOOL_INFO_NAME_LEN"],OS_MEMPOOL_SIZE:[90,0,1,"c.OS_MEMPOOL_SIZE"],OS_SANITY_CHECK_SETFUNC:[97,0,1,"c.OS_SANITY_CHECK_SETFUNC"],OS_TASK_FLAG_EVQ_WAIT:[99,0,1,"c.OS_TASK_FLAG_EVQ_WAIT"],OS_TASK_FLAG_MUTEX_WAIT:[99,0,1,"c.OS_TASK_FLAG_MUTEX_WAIT"],OS_TASK_FLAG_NO_TIMEOUT:[99,0,1,"c.OS_TASK_FLAG_NO_TIMEOUT"],OS_TASK_FLAG_SEM_WAIT:[99,0,1,"c.OS_TASK_FLAG_SEM_WAIT"],OS_TASK_MAX_NAME_LEN:[99,0,1,"c.OS_TASK_MAX_NAME_LEN"],OS_TASK_PRI_HIGHEST:[99,0,1,"c.OS_TASK_PRI_HIGHEST"],OS_TASK_PRI_LOWEST:[99,0,1,"c.OS_TASK_PRI_LOWEST"],OS_TASK_STACK_DEFINE:[99,0,1,"c.OS_TASK_STACK_DEFINE"],OS_TIMEOUT_NEVER:[100,0,1,"c.OS_TIMEOUT_NEVER"],OS_TIME_MAX:[100,0,1,"c.OS_TIME_MAX"],OS_TIME_TICK_GEQ:[100,0,1,"c.OS_TIME_TICK_GEQ"],OS_TIME_TICK_GT:[100,0,1,"c.OS_TIME_TICK_GT"],OS_TIME_TICK_LT:[100,0,1,"c.OS_TIME_TICK_LT"],_sbrk:[182,3,1,"c._sbrk"],completion_cb:[130,4,1,"c.completion_cb"],console_append_char_cb:[130,4,1,"c.console_append_char_cb"],console_blocking_mode:[130,3,1,"c.console_blocking_mode"],console_echo:[130,3,1,"c.console_echo"],console_handle_char:[130,3,1,"c.console_handle_char"],console_init:[130,3,1,"c.console_init"],console_input:[130,5,1,"c.console_input"],console_is_init:[130,3,1,"c.console_is_init"],console_is_midline:[130,6,1,"c.console_is_midline"],console_non_blocking_mode:[130,3,1,"c.console_non_blocking_mode"],console_out:[130,3,1,"c.console_out"],console_printf:[130,3,1,"c.console_printf"],console_read:[130,3,1,"c.console_read"],console_rx_cb:[130,4,1,"c.console_rx_cb"],console_set_completion_cb:[130,3,1,"c.console_set_completion_cb"],console_set_queues:[130,3,1,"c.console_set_queues"],console_write:[130,3,1,"c.console_write"],hal_bsp_core_dump:[182,3,1,"c.hal_bsp_core_dump"],hal_bsp_flash_dev:[182,3,1,"c.hal_bsp_flash_dev"],hal_bsp_get_nvic_priority:[182,3,1,"c.hal_bsp_get_nvic_priority"],hal_bsp_hw_id:[182,3,1,"c.hal_bsp_hw_id"],hal_bsp_init:[182,3,1,"c.hal_bsp_init"],hal_bsp_power_state:[182,3,1,"c.hal_bsp_power_state"],hal_debugger_connected:[191,3,1,"c.hal_debugger_connected"],hal_flash_align:[184,3,1,"c.hal_flash_align"],hal_flash_erase:[184,3,1,"c.hal_flash_erase"],hal_flash_erase_sector:[184,3,1,"c.hal_flash_erase_sector"],hal_flash_init:[184,3,1,"c.hal_flash_init"],hal_flash_ioctl:[184,3,1,"c.hal_flash_ioctl"],hal_flash_read:[184,3,1,"c.hal_flash_read"],hal_flash_write:[184,3,1,"c.hal_flash_write"],hal_gpio_init_in:[186,3,1,"c.hal_gpio_init_in"],hal_gpio_init_out:[186,3,1,"c.hal_gpio_init_out"],hal_gpio_irq_disable:[186,3,1,"c.hal_gpio_irq_disable"],hal_gpio_irq_enable:[186,3,1,"c.hal_gpio_irq_enable"],hal_gpio_irq_handler_t:[186,4,1,"c.hal_gpio_irq_handler_t"],hal_gpio_irq_init:[186,3,1,"c.hal_gpio_irq_init"],hal_gpio_irq_release:[186,3,1,"c.hal_gpio_irq_release"],hal_gpio_irq_trig_t:[186,4,1,"c.hal_gpio_irq_trig_t"],hal_gpio_mode_t:[186,4,1,"c.hal_gpio_mode_t"],hal_gpio_pull_t:[186,4,1,"c.hal_gpio_pull_t"],hal_gpio_read:[186,3,1,"c.hal_gpio_read"],hal_gpio_toggle:[186,3,1,"c.hal_gpio_toggle"],hal_gpio_write:[186,3,1,"c.hal_gpio_write"],hal_i2c_init:[187,3,1,"c.hal_i2c_init"],hal_i2c_master_data:[187,7,1,"_CPPv319hal_i2c_master_data"],hal_i2c_master_probe:[187,3,1,"c.hal_i2c_master_probe"],hal_i2c_master_read:[187,3,1,"c.hal_i2c_master_read"],hal_i2c_master_write:[187,3,1,"c.hal_i2c_master_write"],hal_reset_cause:[191,3,1,"c.hal_reset_cause"],hal_spi_abort:[190,3,1,"c.hal_spi_abort"],hal_spi_config:[190,3,1,"c.hal_spi_config"],hal_spi_data_mode_breakout:[190,3,1,"c.hal_spi_data_mode_breakout"],hal_spi_disable:[190,3,1,"c.hal_spi_disable"],hal_spi_enable:[190,3,1,"c.hal_spi_enable"],hal_spi_init:[190,3,1,"c.hal_spi_init"],hal_spi_set_txrx_cb:[190,3,1,"c.hal_spi_set_txrx_cb"],hal_spi_settings:[190,7,1,"_CPPv316hal_spi_settings"],hal_spi_slave_set_def_tx_val:[190,3,1,"c.hal_spi_slave_set_def_tx_val"],hal_spi_tx_val:[190,3,1,"c.hal_spi_tx_val"],hal_spi_txrx:[190,3,1,"c.hal_spi_txrx"],hal_spi_txrx_cb:[190,4,1,"c.hal_spi_txrx_cb"],hal_spi_txrx_noblock:[190,3,1,"c.hal_spi_txrx_noblock"],hal_system_clock_start:[191,3,1,"c.hal_system_clock_start"],hal_system_reset:[191,3,1,"c.hal_system_reset"],hal_system_restart:[191,3,1,"c.hal_system_restart"],hal_system_start:[191,3,1,"c.hal_system_start"],hal_timer:[192,7,1,"_CPPv39hal_timer"],hal_timer_cb:[192,4,1,"c.hal_timer_cb"],hal_timer_config:[192,3,1,"c.hal_timer_config"],hal_timer_deinit:[192,3,1,"c.hal_timer_deinit"],hal_timer_delay:[192,3,1,"c.hal_timer_delay"],hal_timer_get_resolution:[192,3,1,"c.hal_timer_get_resolution"],hal_timer_init:[192,3,1,"c.hal_timer_init"],hal_timer_read:[192,3,1,"c.hal_timer_read"],hal_timer_set_cb:[192,3,1,"c.hal_timer_set_cb"],hal_timer_start:[192,3,1,"c.hal_timer_start"],hal_timer_start_at:[192,3,1,"c.hal_timer_start_at"],hal_timer_stop:[192,3,1,"c.hal_timer_stop"],hal_uart_blocking_tx:[193,3,1,"c.hal_uart_blocking_tx"],hal_uart_close:[193,3,1,"c.hal_uart_close"],hal_uart_config:[193,3,1,"c.hal_uart_config"],hal_uart_init:[193,3,1,"c.hal_uart_init"],hal_uart_init_cbs:[193,3,1,"c.hal_uart_init_cbs"],hal_uart_rx_char:[193,4,1,"c.hal_uart_rx_char"],hal_uart_start_rx:[193,3,1,"c.hal_uart_start_rx"],hal_uart_start_tx:[193,3,1,"c.hal_uart_start_tx"],hal_uart_tx_char:[193,4,1,"c.hal_uart_tx_char"],hal_uart_tx_done:[193,4,1,"c.hal_uart_tx_done"],hal_watchdog_enable:[194,3,1,"c.hal_watchdog_enable"],hal_watchdog_init:[194,3,1,"c.hal_watchdog_init"],hal_watchdog_tickle:[194,3,1,"c.hal_watchdog_tickle"],os_callout:[84,7,1,"_CPPv310os_callout"],os_callout_init:[84,3,1,"c.os_callout_init"],os_callout_queued:[84,3,1,"c.os_callout_queued"],os_callout_remaining_ticks:[84,3,1,"c.os_callout_remaining_ticks"],os_callout_reset:[84,3,1,"c.os_callout_reset"],os_callout_stop:[84,3,1,"c.os_callout_stop"],os_cputime_delay_nsecs:[86,3,1,"c.os_cputime_delay_nsecs"],os_cputime_delay_ticks:[86,3,1,"c.os_cputime_delay_ticks"],os_cputime_delay_usecs:[86,3,1,"c.os_cputime_delay_usecs"],os_cputime_get32:[86,3,1,"c.os_cputime_get32"],os_cputime_init:[86,3,1,"c.os_cputime_init"],os_cputime_nsecs_to_ticks:[86,3,1,"c.os_cputime_nsecs_to_ticks"],os_cputime_ticks_to_nsecs:[86,3,1,"c.os_cputime_ticks_to_nsecs"],os_cputime_ticks_to_usecs:[86,3,1,"c.os_cputime_ticks_to_usecs"],os_cputime_timer_init:[86,3,1,"c.os_cputime_timer_init"],os_cputime_timer_relative:[86,3,1,"c.os_cputime_timer_relative"],os_cputime_timer_start:[86,3,1,"c.os_cputime_timer_start"],os_cputime_timer_stop:[86,3,1,"c.os_cputime_timer_stop"],os_cputime_usecs_to_ticks:[86,3,1,"c.os_cputime_usecs_to_ticks"],os_event:[87,7,1,"_CPPv38os_event"],os_event_fn:[87,4,1,"c.os_event_fn"],os_eventq:[87,7,1,"_CPPv39os_eventq"],os_eventq_dflt_get:[87,3,1,"c.os_eventq_dflt_get"],os_eventq_get:[87,3,1,"c.os_eventq_get"],os_eventq_get_no_wait:[87,3,1,"c.os_eventq_get_no_wait"],os_eventq_init:[87,3,1,"c.os_eventq_init"],os_eventq_inited:[87,3,1,"c.os_eventq_inited"],os_eventq_poll:[87,3,1,"c.os_eventq_poll"],os_eventq_put:[87,3,1,"c.os_eventq_put"],os_eventq_remove:[87,3,1,"c.os_eventq_remove"],os_eventq_run:[87,3,1,"c.os_eventq_run"],os_get_uptime_usec:[100,3,1,"c.os_get_uptime_usec"],os_gettimeofday:[100,3,1,"c.os_gettimeofday"],os_mbuf:[89,7,1,"_CPPv37os_mbuf"],os_mbuf_adj:[89,3,1,"c.os_mbuf_adj"],os_mbuf_append:[89,3,1,"c.os_mbuf_append"],os_mbuf_appendfrom:[89,3,1,"c.os_mbuf_appendfrom"],os_mbuf_cmpf:[89,3,1,"c.os_mbuf_cmpf"],os_mbuf_cmpm:[89,3,1,"c.os_mbuf_cmpm"],os_mbuf_concat:[89,3,1,"c.os_mbuf_concat"],os_mbuf_copydata:[89,3,1,"c.os_mbuf_copydata"],os_mbuf_copyinto:[89,3,1,"c.os_mbuf_copyinto"],os_mbuf_dup:[89,3,1,"c.os_mbuf_dup"],os_mbuf_extend:[89,3,1,"c.os_mbuf_extend"],os_mbuf_free:[89,3,1,"c.os_mbuf_free"],os_mbuf_free_chain:[89,3,1,"c.os_mbuf_free_chain"],os_mbuf_get:[89,3,1,"c.os_mbuf_get"],os_mbuf_get_pkthdr:[89,3,1,"c.os_mbuf_get_pkthdr"],os_mbuf_off:[89,3,1,"c.os_mbuf_off"],os_mbuf_pkthdr:[89,7,1,"_CPPv314os_mbuf_pkthdr"],os_mbuf_pool:[89,7,1,"_CPPv312os_mbuf_pool"],os_mbuf_pool_init:[89,3,1,"c.os_mbuf_pool_init"],os_mbuf_prepend:[89,3,1,"c.os_mbuf_prepend"],os_mbuf_prepend_pullup:[89,3,1,"c.os_mbuf_prepend_pullup"],os_mbuf_pullup:[89,3,1,"c.os_mbuf_pullup"],os_mbuf_trim_front:[89,3,1,"c.os_mbuf_trim_front"],os_memblock:[90,7,1,"_CPPv311os_memblock"],os_memblock_from:[90,3,1,"c.os_memblock_from"],os_memblock_get:[90,3,1,"c.os_memblock_get"],os_memblock_put:[90,3,1,"c.os_memblock_put"],os_memblock_put_from_cb:[90,3,1,"c.os_memblock_put_from_cb"],os_membuf_t:[90,4,1,"c.os_membuf_t"],os_mempool:[90,7,1,"_CPPv310os_mempool"],os_mempool_ext_init:[90,3,1,"c.os_mempool_ext_init"],os_mempool_info:[90,7,1,"_CPPv315os_mempool_info"],os_mempool_info_get_next:[90,3,1,"c.os_mempool_info_get_next"],os_mempool_init:[90,3,1,"c.os_mempool_init"],os_mempool_is_sane:[90,3,1,"c.os_mempool_is_sane"],os_mempool_put_fn:[90,4,1,"c.os_mempool_put_fn"],os_mqueue:[89,7,1,"_CPPv39os_mqueue"],os_mqueue_get:[89,3,1,"c.os_mqueue_get"],os_mqueue_init:[89,3,1,"c.os_mqueue_init"],os_mqueue_put:[89,3,1,"c.os_mqueue_put"],os_msys_count:[89,3,1,"c.os_msys_count"],os_msys_get:[89,3,1,"c.os_msys_get"],os_msys_get_pkthdr:[89,3,1,"c.os_msys_get_pkthdr"],os_msys_num_free:[89,3,1,"c.os_msys_num_free"],os_msys_register:[89,3,1,"c.os_msys_register"],os_msys_reset:[89,3,1,"c.os_msys_reset"],os_mutex:[91,7,1,"_CPPv38os_mutex"],os_mutex_init:[91,3,1,"c.os_mutex_init"],os_mutex_pend:[91,3,1,"c.os_mutex_pend"],os_mutex_release:[91,3,1,"c.os_mutex_release"],os_sanity_check:[97,7,1,"_CPPv315os_sanity_check"],os_sanity_check_func_t:[97,4,1,"c.os_sanity_check_func_t"],os_sanity_check_init:[97,3,1,"c.os_sanity_check_init"],os_sanity_check_register:[97,3,1,"c.os_sanity_check_register"],os_sanity_check_reset:[97,3,1,"c.os_sanity_check_reset"],os_sanity_task_checkin:[97,3,1,"c.os_sanity_task_checkin"],os_sched_get_current_task:[85,3,1,"c.os_sched_get_current_task"],os_sem:[98,7,1,"_CPPv36os_sem"],os_sem_get_count:[98,3,1,"c.os_sem_get_count"],os_sem_init:[98,3,1,"c.os_sem_init"],os_sem_pend:[98,3,1,"c.os_sem_pend"],os_sem_release:[98,3,1,"c.os_sem_release"],os_settimeofday:[100,3,1,"c.os_settimeofday"],os_stime_t:[100,4,1,"c.os_stime_t"],os_task:[99,7,1,"_CPPv37os_task"],os_task_count:[99,3,1,"c.os_task_count"],os_task_func_t:[99,4,1,"c.os_task_func_t"],os_task_info:[99,7,1,"_CPPv312os_task_info"],os_task_info_get_next:[99,3,1,"c.os_task_info_get_next"],os_task_init:[99,3,1,"c.os_task_init"],os_task_remove:[99,3,1,"c.os_task_remove"],os_task_state_t:[99,4,1,"c.os_task_state_t"],os_tick_idle:[189,3,1,"c.os_tick_idle"],os_tick_init:[189,3,1,"c.os_tick_init"],os_time_advance:[100,3,1,"c.os_time_advance"],os_time_delay:[100,3,1,"c.os_time_delay"],os_time_get:[100,3,1,"c.os_time_get"],os_time_ms_to_ticks:[100,3,1,"c.os_time_ms_to_ticks"],os_time_t:[100,4,1,"c.os_time_t"],os_timeradd:[100,0,1,"c.os_timeradd"],os_timersub:[100,0,1,"c.os_timersub"],os_timeval:[100,7,1,"_CPPv310os_timeval"],os_timezone:[100,7,1,"_CPPv311os_timezone"]}},objnames:{"0":["c","define","define"],"1":["c","enumvalue","enumvalue"],"2":["c","enum","enum"],"3":["c","function","C function"],"4":["c","typedef","typedef"],"5":["c","struct","struct"],"6":["c","variable","variable"],"7":["cpp","class","C++ class"]},objtypes:{"0":"c:define","1":"c:enumvalue","2":"c:enum","3":"c:function","4":"c:typedef","5":"c:struct","6":"c:variable","7":"cpp:class"},terms:{"000s":[257,259,262,274],"008s":[257,259,262,274],"00z":265,"01t22":68,"02t22":265,"04x":20,"05t02":265,"093s":[257,259,262,274],"0b1000110":187,"0mb":11,"0ubuntu5":6,"0x0":[254,261,274],"0x00":[20,261,262,273],"0x0000":[245,273],"0x00000000":[179,222,224,225],"0x00000001":128,"0x00000002":[128,261],"0x00000004":128,"0x00000008":128,"0x00000010":128,"0x000000b8":254,"0x000000d8":[287,288],"0x000000dc":[244,280,287,288],"0x00004000":[222,224,225],"0x00008000":[93,222,224,225],"0x00009ef4":261,"0x0000fca6":254,"0x00023800":222,"0x0003f000":222,"0x0003f800":222,"0x0006":29,"0x0007d000":225,"0x000e0000":224,"0x0010":27,"0x01":[20,27,30,128,262],"0x0100":27,"0x01000000":260,"0x0101":20,"0x0102":20,"0x0103":20,"0x0104":20,"0x0105":20,"0x0106":20,"0x0107":20,"0x0108":20,"0x0109":20,"0x010a":20,"0x010b":20,"0x010c":20,"0x010d":20,"0x010e":20,"0x010f":20,"0x0110":20,"0x0111":20,"0x02":[20,27,30,128,262,273],"0x0201":20,"0x0202":20,"0x0203":20,"0x0204":20,"0x0205":20,"0x0206":20,"0x0207":20,"0x0208":20,"0x0209":20,"0x020a":20,"0x020b":20,"0x020c":20,"0x020d":20,"0x020e":20,"0x020f":20,"0x0210":20,"0x0211":20,"0x0212":20,"0x0213":20,"0x0214":20,"0x0215":20,"0x0216":20,"0x0217":20,"0x0218":20,"0x0219":20,"0x021a":20,"0x021b":20,"0x021c":20,"0x021d":20,"0x021e":20,"0x021f":20,"0x0220":20,"0x0221":20,"0x0222":20,"0x0223":20,"0x0224":20,"0x0225":20,"0x0226":20,"0x0227":20,"0x0228":20,"0x0229":20,"0x022a":20,"0x022c":20,"0x022d":20,"0x022e":20,"0x022f":20,"0x0230":20,"0x0232":20,"0x0234":20,"0x0235":20,"0x0236":20,"0x0237":20,"0x0238":20,"0x0239":20,"0x023a":20,"0x023b":20,"0x023c":20,"0x023d":20,"0x023e":20,"0x023f":20,"0x0240":20,"0x03":[20,30,128],"0x0300":[20,27],"0x0301":20,"0x0302":20,"0x04":[20,27],"0x0401":20,"0x0402":20,"0x0403":20,"0x0404":20,"0x0405":20,"0x0406":20,"0x0407":20,"0x0408":20,"0x0409":20,"0x040a":20,"0x040b":20,"0x040c":20,"0x040d":20,"0x040e":20,"0x0483":258,"0x05":20,"0x0501":20,"0x0502":20,"0x0503":20,"0x0504":20,"0x0505":20,"0x0506":20,"0x0507":20,"0x0508":20,"0x0509":20,"0x050a":20,"0x050b":20,"0x050c":20,"0x050d":20,"0x050e":20,"0x06":[20,245],"0x07":20,"0x08":[20,27,273],"0x08000000":260,"0x08000020":260,"0x08000250":260,"0x08021e90":258,"0x09":20,"0x0a":20,"0x0b":20,"0x0bc11477":254,"0x0c":20,"0x0c80":29,"0x0d":20,"0x0e":20,"0x0f":[20,276],"0x0f505235":128,"0x0fffffff":179,"0x1":[274,276,278,280],"0x10":[20,254,261,262,276],"0x100":20,"0x1000":[89,276,278],"0x10000":93,"0x10000000":179,"0x10010000":260,"0x10036413":260,"0x10076413":258,"0x1010":89,"0x103":20,"0x11":[20,23,253,262],"0x12":20,"0x13":20,"0x14":20,"0x1400":273,"0x15":[20,272,274,276],"0x16":20,"0x17":20,"0x18":20,"0x1800":30,"0x1808":30,"0x180a":30,"0x19":[20,207],"0x1a":20,"0x1b":20,"0x1c":[20,272,274],"0x1d":20,"0x1e":20,"0x1f":20,"0x2":[276,278],"0x20":[20,32,93,254,261,272,274],"0x200":[20,276,278],"0x2000":[276,278],"0x20000":274,"0x20000000":93,"0x20002290":258,"0x20002408":254,"0x20008000":254,"0x21":[20,32],"0x21000000":254,"0x22":[20,23,32,262],"0x23":[20,32],"0x24":20,"0x25":[20,273],"0x26":20,"0x27":20,"0x28":20,"0x2800":273,"0x29":20,"0x2a":20,"0x2ba01477":261,"0x2c":20,"0x2d":20,"0x2e":20,"0x2f":20,"0x30":[20,254,261],"0x300":20,"0x311":276,"0x32":[20,276],"0x33":23,"0x34":20,"0x35":20,"0x36":20,"0x37":20,"0x374b":258,"0x38":20,"0x39":20,"0x3a":20,"0x3a000":93,"0x3b":20,"0x3c":20,"0x3c00":273,"0x3d":20,"0x3e":20,"0x3f":20,"0x4":[276,278],"0x40":[20,254,261,272,274],"0x400":20,"0x4000":[276,278],"0x40007000":274,"0x4001e504":261,"0x4001e50c":261,"0x40number":187,"0x41000000":258,"0x42000":61,"0x44":[23,273],"0x4400":273,"0x46":187,"0x4f":[272,274],"0x50":[254,261],"0x500":20,"0x5000":273,"0x55":23,"0x60":[254,261],"0x61":[272,274],"0x66":23,"0x6c00":273,"0x70":[254,261],"0x72":[272,274],"0x7800":273,"0x7fefd260":128,"0x7fff8000":274,"0x7fffffff":179,"0x80":[272,274],"0x8000":61,"0x8000000":260,"0x80000000":179,"0x8079b62c":128,"0x81":187,"0x8801":273,"0x8c":187,"0x8d":187,"0x90":[272,274],"0x96f3b83c":128,"0x9c01":273,"0x9f":273,"0xa0":276,"0xa001":273,"0xa7":[272,274],"0xaf":[272,274],"0xb3":[272,274],"0xb401":273,"0xb5":[272,274],"0xbead":[272,274],"0xcc01":273,"0xd2":[272,274],"0xd801":273,"0xdead":[272,274],"0xe401":273,"0xe7":[272,274],"0xf":273,"0xf001":273,"0xf395c277":128,"0xfb":276,"0xfe":273,"0xff":[128,179],"0xffff":[29,190,273],"0xfffffffe":179,"0xffffffff":[91,98,128,179,206,254],"0xffffffff0xffffffff0xffffffff0xffffffff":261,"100kb":101,"1024kbyte":[258,260],"103kb":222,"10m":27,"110kb":222,"128kb":[9,224],"12c":[257,259,262,274],"12kb":225,"12mhz":9,"132425ssb":30,"132428ssb":30,"132433ssb":30,"132437ssb":30,"132441ssb":30,"14e":287,"14h":[280,287],"1503a0":266,"16kb":[9,224,225],"16kbram":53,"16mb":9,"190a192":273,"1_amd64":[57,60,80,83],"1c15":[272,274],"1d11":283,"1d13":[266,286],"1d560":222,"1eec4":222,"1kb":222,"1st":68,"1ubuntu1":6,"1wx":261,"200mhz":9,"2015q2":[4,12],"2022609336ssb":248,"2022687456ssb":248,"2022789012ssb":248,"2022851508ssb":248,"2042859320ssb":248,"2042937440ssb":248,"248m":6,"250m":238,"256kb":254,"262s":[257,259,262,274],"28a29":273,"28t22":265,"291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682":239,"296712s":260,"2a24":48,"2d5217f":81,"2m_interval_max":27,"2m_interval_min":27,"2m_latenc":27,"2m_max_conn_event_len":27,"2m_min_conn_event_len":27,"2m_scan_interv":27,"2m_scan_window":27,"2m_timeout":27,"2msym":21,"300v":[257,259,262,274],"32kb":[225,254],"32mb":9,"32wx":[254,261],"363s":[257,259,262,274],"3_1":36,"3mb":81,"4_9":4,"4fa7":[272,274],"500m":238,"512kb":93,"575c":222,"5kb":101,"6lowpan":21,"73d77f":71,"78e4d263eeb5af5635705b7cae026cc184f14aa6c6c59c6e80616035cd2efc8f":222,"7b3w9m4n2mg3sqmgw2q1b9p80000gn":55,"7kb":222,"8ab6433f8971b05c2a9c3341533e8ddb754e404":269,"948f118966f7989628f8f3be28840fd23a200fc219bb72acdfe9096f06c4b39b":222,"9cf8af22b1b573909a8290a90c066d4e190407e97680b7a32243960ec2bf3a7f":286,"9mb":58,"abstract":[9,20,95,96,134,151,162,165,173,180,206,208,209,238,273,290],"boolean":[199,225],"break":[20,89,136,233,249,273],"byte":[10,19,23,27,46,66,71,73,89,90,99,128,130,132,140,141,153,157,158,160,163,168,169,170,171,172,173,174,179,182,187,190,193,199,222,226,239,241,252,253,262],"case":[2,6,7,20,21,30,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,92,93,97,98,99,128,134,173,179,183,222,223,225,226,227,228,229,230,231,233,235,241,245,249,250,252,253,254,265,266,272,273,274,288],"catch":20,"char":[90,92,97,99,129,130,134,138,139,152,154,155,156,159,160,161,162,164,166,169,171,172,176,177,179,193,197,198,199,200,202,205,214,215,219,220,221,223,225,232,238,241,249,252,253,256,265,273,278,280],"class":[134,262],"const":[87,89,90,93,99,128,130,135,152,154,155,156,157,158,159,160,161,162,164,165,166,169,170,171,172,176,177,180,182,184,185,199,204,205,208,214,219,221,223,249,251,252,253,265,272,273,274],"default":[1,2,4,6,7,10,12,20,24,26,27,28,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,91,92,93,94,96,97,99,130,131,133,134,135,151,175,190,199,205,206,207,208,209,211,212,213,214,216,221,222,223,224,225,235,236,238,239,245,247,249,252,253,254,255,262,267,272,273,274,276,277,279,280,282,287],"enum":[99,129,186,191,193,199,206,272,273],"export":[1,11,23,60,61,80,82,83,87,130,134,136,205,206,207,208,209,236,275,276,278],"final":[8,55,89,91,93,128,142,179,181,201,222,240,241,244,247,272,274],"float":[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,101,199,206,275],"function":[1,7,9,14,20,23,31,61,84,86,87,88,89,90,92,94,95,96,97,99,128,129,130,134,135,136,138,146,150,151,152,153,154,155,156,158,160,161,162,164,166,167,168,169,171,173,174,176,179,180,181,183,186,187,188,189,190,191,192,193,196,198,200,201,202,203,204,205,207,209,212,214,215,216,217,219,220,222,226,227,228,229,230,232,233,235,236,238,239,244,247,248,250,252,253,255,256,262,265,267,272,273,274,276,280,285,287,288,290],"goto":[97,159,204,208,217,218,272,273,274],"i\u00b2c":187,"import":[11,55,57,80,89,93,100,101,187,241,244,247,250,274],"int":[1,20,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,86,87,89,90,92,97,99,100,129,130,134,135,136,138,139,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,159,160,161,162,163,164,165,166,168,169,170,171,172,176,177,178,180,182,183,184,186,187,189,190,191,192,193,194,197,198,199,200,201,202,203,204,207,208,214,215,217,218,219,220,221,223,225,226,227,228,230,231,232,238,240,241,247,249,250,251,252,253,256,265,272,273,274,278,280],"long":[3,21,24,28,89,92,98,101,151,169,179,187,222,261,280],"new":[2,3,4,6,10,11,21,23,24,27,30,31,34,39,41,45,46,50,53,57,58,59,61,85,89,93,96,99,128,130,140,141,142,151,152,161,166,173,176,177,181,187,195,214,222,223,225,235,239,241,243,244,245,250,251,252,253,254,257,258,259,260,261,262,265,266,267,273,274,275,277,290],"null":[84,86,87,89,90,91,92,93,97,98,99,130,135,152,156,160,163,171,173,179,185,190,204,205,207,208,214,219,221,224,225,238,241,247,250,251,252,253,256,272,273,274,275,278,280],"public":[19,25,27,29,30,32,57,66,80,84,87,89,90,91,97,98,99,100,128,130,187,190,192,252,253],"return":[18,26,84,85,86,87,89,90,91,92,93,97,98,99,100,129,130,135,140,152,182,185,186,187,190,191,192,193,194,199,207,208,211,225,238,241,247,249,250,251,254,256,262,265,272,273,274,276,278,280,284],"short":[89,91,214,241],"static":[19,26,66,84,87,90,92,93,97,98,129,130,135,139,180,198,200,201,203,204,205,207,208,215,217,218,219,220,221,226,235,238,245,247,249,250,251,252,253,256,272,273,274,275,278,280],"switch":[10,12,20,58,71,77,81,85,92,93,99,128,181,195,214,236,244,245,249,250,272,273,274,280,287],"transient":250,"true":[8,12,86,90,97,100,204,222,226,239,265,274,283,286],"try":[2,20,21,23,89,152,179,187,235,240,244,245,248,254,255,256,257,258,259,261,266,268,274,276,280,282,287],"var":[50,55,65,66,97,166],"void":[20,26,84,85,86,87,89,90,92,97,99,100,129,130,134,135,136,138,150,152,153,157,159,160,162,163,166,168,169,170,171,172,178,180,182,183,184,186,187,189,190,191,192,193,194,196,198,199,205,207,208,210,215,216,217,219,220,221,225,226,227,228,230,231,232,233,238,241,247,249,250,251,252,253,256,272,273,274,275,278,280],"while":[4,6,7,8,21,23,26,49,55,61,89,90,92,93,97,99,101,130,136,138,152,154,155,156,161,164,179,193,199,204,208,222,225,226,231,236,238,241,252,253,256,263,265,272,273,274,278,280,287,288],AES:22,ANS:246,Adding:[56,79,290],And:[61,128,140,222,224,240,241,243,248,272,273,274],But:274,CTS:[193,245],FOR:4,For:[2,3,5,6,7,8,11,12,20,22,23,24,29,30,34,37,39,50,53,55,57,58,59,60,61,62,66,83,84,89,92,93,96,100,101,128,134,135,152,170,173,174,179,180,183,186,187,190,199,205,206,207,208,209,210,220,222,223,224,225,231,233,235,238,239,244,249,250,251,252,253,254,256,258,259,260,262,265,266,267,268,273,274,276,278,280,283,286,287,288,290],IDE:[5,12],IDs:128,Its:[94,100,101,235,268],NOT:[156,187,192,274],Not:[7,20,29,86,89,179,181,186,190,222,274],One:[6,20,92,101,179,222,235,247,266,273],PCs:8,QoS:[20,21],RTS:[193,245],Such:[179,252,253,268],TMS:254,That:[2,20,61,140,179,225,252,253,254,262,266,267,273,274],The:[1,2,3,4,5,6,7,8,10,11,12,14,15,16,17,18,19,20,21,22,23,24,26,27,29,30,31,33,34,37,43,45,46,47,50,55,57,58,59,61,63,64,66,70,71,72,73,75,76,77,78,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,128,129,130,131,132,133,134,135,136,140,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,189,190,191,192,193,194,195,197,198,199,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,222,223,224,225,226,229,231,233,234,235,236,238,239,240,241,242,243,244,245,247,249,250,251,252,253,254,255,257,258,259,260,261,262,263,265,266,267,268,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],Then:[10,33,63,128,140,179,222,235,245,265,273,274,287],There:[4,8,10,22,23,28,57,61,80,84,89,91,93,94,98,99,100,101,129,130,134,160,179,181,186,205,206,211,214,222,223,249,254,262,265,269,274,280,287,288],These:[5,20,27,50,61,89,93,94,96,98,128,129,134,179,187,206,209,210,211,214,224,236,243,247,251,252,253,254,255,260,267,268,275,276],Use:[1,7,8,11,27,28,50,57,58,59,62,71,80,81,82,93,132,140,142,222,235,249,252,253,254,257,262,266,267,274,275,277,285],Used:[93,190,193,227,228,230],Uses:[31,42,133,224],Using:[20,49,91,256,285,290],Was:262,Will:20,With:[9,20,21,30,89,92,96,128,222,224,240,241,244,273,287,288,290],Yes:[10,19,89,128,133,242],__arg:97,__asm:258,__builtin_offsetof:223,__etext:260,__ev:87,__f:97,__hdr:89,__itvl:97,__n:89,__name:99,__om:89,__omp:89,__sc:97,__size:99,__t1:[86,100],__t2:[86,100],__type:89,__wfi:258,_access:249,_adc:274,_addr:252,_addr_:[252,253],_app:252,_build:[33,63],_cfg:[207,208],_cli:[208,209,276],_cnt:140,_config:[206,207,208,278],_file:152,_gatt_ac:249,_imghdr_siz:93,_init:[206,207,208],_log:208,_name:225,_nrf52_adc_h_:274,_object:199,_ofb:[207,209,276],_onb:[207,209,280],_pad1:128,_pad2:128,_pad3:128,_pad:[91,128],_param:214,_rea:199,_reserv:206,_resource_t:275,_sbrk:182,_senseair_h_:273,_sensor:207,_set:252,_shell_init:[208,276],_stage:225,_stat:208,a600anj1:222,abbrevi:247,abc:265,abil:[6,22,31,55,89,241],abl:[2,89,93,134,135,236,242,248,252,253,254,267,273,274],abort:[49,190,215,219,224,225,226,265,278],about:[1,3,10,23,29,40,57,58,59,62,64,80,81,82,90,92,93,97,99,100,140,141,145,179,199,210,222,223,234,235,238,241,247,250,251,252,253,257,261,262,268,273,274],abov:[9,10,14,19,89,92,97,100,128,152,160,179,187,190,214,222,223,224,225,236,244,247,249,252,253,256,262,265,267,272,274],absent:[128,179],absolut:[89,192],abstrat:140,acc:276,accel:[276,280],accel_rev:276,acceleromet:[206,208,275,276,277,280],accept:[20,27,136,160,179,187,193,195,235,254,258,260,262,267],access:[15,20,21,27,59,61,64,70,80,81,82,86,88,89,91,92,93,98,134,135,136,140,152,160,167,169,173,180,181,187,195,205,206,208,209,222,225,231,238,244,251,254,265,273],access_:251,access_cb:[249,251,272],access_fla:160,access_flag:[160,162],accgyro:276,accommod:[24,89,96,128,179,252],accomplish:[9,10,55,173,179,249],accord:[93,128,231,232],accordingli:[24,93,99],account:[10,61,89,128],accur:260,achiev:[26,179,252,253],ack_rxd:262,acknowledg:262,acl:20,acquir:[26,91,98,179,187],acquisit:187,across:[30,31,55,61,62,134,179,181],act:[22,30,195,222],action:[9,27,62,235,241,247,251,262,274],activ:[12,16,17,21,47,71,93,99,190,195,222,235,239,247,262,283,286,287,288],actual:[2,7,34,77,89,93,99,128,156,163,171,179,183,194,222,224,226,234,241,244,252,253,254,267,268,269,273,274],ad_fil:152,adafruit:[8,274,276],adapt:[21,96,254,257,258,266,280],adapter_nsrst_delai:[254,258],adaptor:260,adc0:274,adc:[9,53,134],adc_0:274,adc_0_interrupt_prior:274,adc_0_oversampl:274,adc_0_resolut:274,adc_buf_read:274,adc_buf_releas:274,adc_buf_s:274,adc_buf_set:274,adc_chan_config:274,adc_config:274,adc_dev:274,adc_event_handler_set:274,adc_evq:274,adc_hw_impl:53,adc_init:274,adc_nrf52:274,adc_number_channel:274,adc_number_sampl:274,adc_read:274,adc_read_ev:274,adc_result:274,adc_result_mv:274,adc_sampl:274,adc_sns_str:274,adc_sns_typ:274,adc_sns_val:274,adc_stack:274,adc_stack_s:274,adc_stm32f4:134,adc_task:274,adc_task_handl:274,adc_task_prio:274,add:[1,2,4,6,7,11,12,27,37,39,50,55,57,58,59,61,62,80,87,89,92,96,98,100,101,130,131,140,152,181,187,207,208,215,223,225,235,236,238,239,240,241,244,245,248,254,255,256,263,265,266,267,276,277,278,279,281,283,284,285,286,290],added:[10,12,32,53,55,81,89,93,98,99,128,130,135,137,152,187,214,238,239,254,256,266,268,272,273,283,284,286,290],adding:[2,10,31,37,55,89,93,94,100,140,223,244,256,265,267,268,272,273,274],addit:[1,12,21,29,43,55,61,62,89,93,94,96,128,134,152,179,187,205,222,225,226,229,235,236,241,244,247,254,255,257,258,260,261,262,273,284],addition:62,addr:[27,30,135,199,204,245,252,253,276],addr_typ:[27,30],address:[20,21,22,25,27,29,31,32,55,66,89,90,92,128,134,135,136,151,179,184,187,190,199,206,208,222,239,245,249,262,266,280,287],aditihilbert:4,adjust:[20,89,93,238,240],admin:[4,245],adress:27,adsertis:27,adv:[21,27,30,31],adv_data:27,adv_field:[247,252],adv_param:[247,250,252,253],advanc:[59,168,179,287,288],advantag:250,advantang:247,adverb:62,adverti:[252,253],advertis:[15,20,21,24,26,31,32,66,239,246,248,250,272,274,275],advertise_128bit_uuid:275,advertise_16bit_uuid:275,advertising_interv:[27,29],advic:[94,95],advinterv:29,aes:[254,257,259,261,266,283,284,286],aesni:[283,284],af80:[272,274],affect:[128,168,173,174,180,205,222,244,263],aflag:[1,50,61],after:[4,8,11,22,26,30,41,50,55,57,58,61,80,81,86,89,90,94,99,100,128,129,134,138,142,146,152,173,179,187,190,193,208,222,224,229,235,236,239,241,242,245,247,249,250,251,254,255,266,267,276,280],again:[8,20,26,57,59,80,93,99,128,140,222,223,241,247,254,257,258,259,260,261,262,272,274,286],against:[22,89,92,100],agnost:152,agre:[273,274],agreement:[273,274],ah02mie2:273,ahead:100,aid:[61,208],aim:[20,135,152,246,290],ain0:274,ain1:274,air:[20,89,222,236,262,281,290],air_q:273,air_qual:[272,273,274],albeit:243,alert:246,algorithm:[21,85],align:[89,90,140,241],all201612161220:75,all:[1,2,3,6,7,8,9,10,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,35,40,41,43,49,50,51,52,53,55,61,66,72,75,89,91,92,93,94,96,97,99,100,128,129,130,134,140,144,150,152,159,160,163,165,166,169,171,173,175,177,179,180,181,183,190,199,205,206,207,208,209,210,211,212,214,219,222,223,224,225,229,231,234,235,236,240,242,244,245,246,247,248,249,250,251,252,253,256,258,260,262,263,265,267,268,269,270,272,273,274,276,278,280,283,286],alloc:[73,77,87,88,89,90,151,179,219,247,249],allow:[2,3,4,6,8,9,12,20,21,27,31,39,50,55,57,58,59,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,91,92,96,98,128,130,134,152,173,179,182,187,190,191,205,209,210,211,213,214,222,223,225,228,232,235,236,238,241,245,247,250,252,256,257,262,266,274,276,280,282],almost:[8,241],alon:232,along:[10,61,89,90,99,217,273],alongsid:[241,252],alphabet:[179,225],alreadi:[6,7,8,11,20,24,31,43,58,59,81,82,86,95,96,128,135,146,153,159,160,165,166,167,172,179,186,192,235,240,243,244,254,256,257,258,259,260,261,262,266,272,273,274,275,283,286,287,288],also:[1,3,5,6,7,8,11,12,21,23,24,27,34,37,40,55,57,58,59,60,61,66,80,83,89,90,92,93,96,98,99,100,128,129,130,131,134,135,140,152,173,179,190,193,195,205,206,207,208,210,212,214,222,223,224,225,235,236,238,241,244,247,250,251,255,256,262,263,265,266,267,268,272,273,274,276,277,278,279,280,283,284,286],alt:286,altern:[6,128,140,222,249],although:267,altogeth:[84,272],alwai:[8,61,93,100,128,156,158,160,161,168,170,179,183,243,249,252,253,260,265,267,268,273,290],ambigu:20,ambiti:244,amd64:[57,80],amend:[1,32,50,62,239,263,287,288],amg:276,among:[85,93,128,176,222],amongst:89,amount:[24,89,90,95,152,171,205,222,241,247],analog:[134,281],analyz:[12,288],android:[275,277,279,282],ani:[1,4,8,10,14,21,22,27,33,49,50,59,61,63,64,66,73,76,77,80,81,82,84,86,87,89,90,91,92,93,95,97,98,99,100,128,130,135,136,152,159,169,173,174,175,176,178,179,190,193,205,208,209,214,222,223,225,232,235,236,239,245,247,256,257,262,268,272,273,274,280,285,290],announc:[247,252,253],annoy:[249,269],anonym:27,anoth:[10,21,26,27,30,61,89,91,92,93,94,95,98,99,100,130,186,195,222,224,235,241,247,249,262,273,274,284,287,288],ans:[273,274],answer:92,anymor:[89,241],anyth:[1,8,23,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,222,235,240,244,252,253,255,268,273,274],apach:[1,2,6,7,10,11,12,21,32,33,37,38,39,43,44,50,51,53,55,57,58,59,61,62,63,80,81,82,84,93,128,130,133,134,152,183,222,223,225,235,242,244,245,246,248,252,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,275,276,277,280,282,283,284,285,286,287,288,290],apart:100,api:[1,16,17,18,19,20,21,53,55,61,92,96,134,135,162,181,185,208,209,214,223,253,258,275,279],app:[1,7,8,12,21,26,29,32,34,37,38,42,43,45,46,47,48,50,53,55,62,73,76,77,93,128,130,134,152,181,191,223,224,225,235,236,238,239,240,241,244,246,247,250,251,252,253,254,256,257,258,259,260,261,265,266,272,273,274,275,276,277,278,279,283,284,285,286,287,290],app_error:274,app_log_init:205,app_util_platform:274,appear:[27,29,96,187,241,249,251],append:[89,140,158,168,170,179,265],append_loc:[141,142],append_test:265,appl:[254,280,282,287,288],appli:[12,24,100,128,130,173,174,179,193,205,222,225,262,265],applic:[1,2,4,5,6,8,9,10,11,13,14,18,20,21,23,24,25,26,28,30,34,39,42,47,50,55,57,58,59,60,61,73,76,77,78,82,83,87,89,93,97,99,128,130,131,132,133,134,152,173,179,184,190,208,209,210,211,212,213,214,220,223,224,225,234,239,243,246,249,250,255,264,265,272,273,279,282,284,285,288,290],applicaton:1,applict:12,approach:[31,93,225],appropri:[62,89,93,96,99,132,134,179,187,190,225,235,240,244,247,250,252,253,255,273,274,279],approv:10,apps_air_qu:273,apps_bleprph:222,apps_blinki:[55,61],apps_my_sensor_app:280,apr:[257,259,262,274],apropo:[254,280,287,288],apt:[4,6,7,56,60,79,83,245],arbitrari:[128,235,245,254,257,258,259,260,261,262,266,274,276,283,284,286],arbitrarili:[128,179,253],arc4:254,arch:[61,93,96,231,257,258,259,260,261,262,280],arch_sim:[256,280],architectur:[57,80,85,90,93,95,96,100,128,134,151,181,186,241],archiv:[4,7,57,59,61,166,235,236,244,254,256,257,258,259,260,261,262,266,273,274,276,280,283,284,286],arduino:[12,241,255,264,267,272,273,290],arduino_101:53,arduino_blinki:[12,241,254],arduino_boot:[12,254],arduino_mkr1000:266,arduino_primo_nrf52:[53,257,273],arduino_zero:254,arduino_zero_debug:254,arduinowifi:266,area:[89,93,128,129,140,150,174,176,177,182,225],area_cnt:182,area_desc:[176,177],aren:101,arg:[12,86,89,90,92,97,99,134,150,184,186,190,192,193,205,208,217,226,238,241,249,250,272,273,274,280],argc:[92,99,129,138,139,176,177,197,214,215,219,220,221,225,232,238,241,252,253,256,265,273,278,280],argument:[11,12,20,45,50,55,62,84,87,89,90,97,99,100,130,167,183,186,187,190,192,199,205,208,210,214,220,241,247,250,251,252,253,257,259,267,268,280],argv:[99,129,138,139,176,177,197,214,215,219,220,221,225,232,238,241,252,253,256,265,273,278,280],arm:[5,6,7,12,84,93,101,254,260,280,286,287,288],around:[30,89,128,274,275,277],arrai:[23,87,139,140,150,173,174,176,177,190,199,200,201,203,204,214,219,225,240,241,247,251],arrang:[93,222],arriv:89,articl:269,artifact:[35,39,50,55,57,58,59,267],ascii:179,asf:[1,267,273,274],ask:[10,92,129,193,206,241,260,267,268,273],aspect:[27,89,128,241],assembl:[1,61,93,96,257,258,259,260,261,262,280],assert:[67,89,97,130,157,170,176,177,190,207,223,226,238,241,249,250,251,252,253,256,272,273,274,278,280],assign:[10,19,21,23,29,37,50,53,66,90,92,93,99,140,179,180,225,235,249,254,257,258,259,260,261,262,266,274,276,283,286],associ:[22,24,87,89,97,99,128,192,225,226,247,250],assum:[7,12,30,43,59,60,82,83,87,89,93,99,128,135,190,195,225,235,236,238,240,243,244,256,262,272,273,274,275,277,279,280,287,288],asynchron:193,at45db:135,at45db_default_config:135,at45db_dev:135,at45db_erase_sector:135,at45db_init:135,at45db_read:135,at45db_sector_info:135,at45db_writ:135,at45dbxxx:135,at91samd21g18:254,at91samd:254,ate_m:206,atmel:[2,254,266],atop:[134,181],att:[18,21,28,249],attach:[8,12,89,93,186,191,244,257,262,274,280,287,288],attempt:[20,23,27,89,90,91,99,128,163,171,176,177,178,179,187,225,249,250,251,262],attempt_stat:223,attent:3,attr:[28,30,204],attr_handl:[248,249,250,272,274],attribit:199,attribut:[14,16,17,20,21,28,50,53,62,66,90,94,96,199,204,225,246,249],auth:[27,269],authent:[20,22,30,128,248],author:[1,20,43,61,130,265,273,274],auto:[29,135],autocomplet:55,autoconf:55,autom:31,automat:[1,10,21,24,25,42,55,61,94,196,214,223,225,229,236,244,246,247,254,257,258,260,261,265,267,273,274,275,290],autoselect:254,avaial:262,avail:[1,2,3,4,7,9,20,21,23,24,29,30,31,32,47,57,58,59,62,64,73,80,81,82,87,89,90,91,97,98,101,128,130,132,134,140,152,163,173,193,195,206,214,222,225,231,234,236,252,256,262,268,274,279,287,288],avail_queu:130,avoid:[61,89,91,92,97,241,275],awai:[20,93,129,249,274],await:3,awar:[247,252,253],b0_0:260,b0_1:260,b1_0:260,b1_1:260,b5729002b340:[272,274],b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2:239,bab:205,back:[8,58,64,69,80,81,82,89,90,100,101,128,129,130,187,212,236,251,260,261,273,279,283,284,286],backend:129,backward:[21,128,130,179,214],bad:[128,222,268],badli:92,band:[21,22,27],bang:273,bank:260,bar:[12,129,290],bare:[84,246,252,253,290],base64:[7,130,262,280],base:[1,2,4,6,7,12,20,21,24,31,34,39,55,57,58,59,61,89,101,132,134,136,168,181,182,187,224,241,245,251,254,257,258,260,261,266,273,275,276,280],baselibc:[7,48,93],baselin:133,bash:[2,12,55,59,93],bash_complet:36,bash_profil:[11,58,60,81,83],bashrc:55,basi:[9,19,22,99,268,273,274],basic:[1,14,21,29,30,31,61,89,93,99,101,134,152,182,184,186,193,222,236,239,244,245,262,267,269,271,272,282,284,285],batch:93,batteri:[9,24,31,96,252],baud:[66,130,245,273],baudrat:[135,190,193],bbno055_cli:276,bc_acc_bw:[208,278],bc_acc_rang:[208,278],bc_mask:[208,278],bc_opr_mod:[208,278],bc_placement:208,bc_pwr_mode:[208,278],bc_unit:[208,278],bc_use_ext_xt:278,bcfg:278,bd_addr:20,be9699809a049:71,beacon:[14,243,244,255],bearer:[21,32],becaus:[8,10,12,20,22,26,30,50,87,128,169,179,180,187,190,206,208,211,215,222,224,241,265,267,269,273,275,276,277,280],becom:[22,31,128,247,250],been:[4,10,20,26,36,43,55,58,59,61,77,81,82,84,88,89,90,99,128,129,138,140,152,153,165,173,179,190,193,222,225,242,245,250,254,257,262,266,272,273],befor:[2,4,7,8,12,20,41,50,57,61,80,84,86,88,89,91,92,93,97,99,100,101,128,129,130,140,146,173,174,178,190,192,193,194,199,210,211,214,216,222,223,225,231,232,236,238,241,244,245,246,247,249,252,253,255,256,258,262,265,266,274,279,282,285],begin:[26,89,99,140,148,193,245,248,250,252,253,265,267],beginn:290,behav:[20,30,92,252,253,265],behavior:[59,92,96,161,162,173,241,249,251,265,266,288],behaviour:89,behind:[89,100],being:[20,89,90,92,97,99,100,128,129,135,152,179,186,187,188,197,198,222,226,241,248,250,265,273,290],bell:98,belong:[14,90,128,179,251],below:[1,2,4,6,12,18,20,22,23,24,30,43,62,89,92,93,94,98,99,128,130,132,135,153,160,163,179,180,192,208,222,235,241,244,249,251,254,257,258,259,260,261,262,263,265,267,268,269,272,274,275,276,278,282,290],benefit:[10,92,179,225,234,238],best:[89,93,160,199,268],beta:[134,274],better:[128,223],between:[7,12,21,26,27,31,37,46,55,98,100,130,179,186,187,197,199,209,222,224,225,236,238,245,257,262,268,274,276,280],beyond:[89,179],bhd:66,big:[23,61,89,262,268],bigger:222,bin:[2,4,7,11,12,34,35,37,38,43,46,48,50,55,57,58,59,60,61,80,81,82,83,93,168,169,222,225,235,236,239,240,244,245,248,254,256,257,258,259,260,261,262,265,266,273,274,276,280,283,284,286,287,288],bin_basenam:61,binari:[4,7,11,34,37,39,55,58,60,61,79,81,83,101,132,187,256,273],binutil:4,bit:[7,14,23,25,27,29,57,58,59,66,81,82,86,89,90,99,100,101,128,179,187,188,190,193,206,208,210,211,222,223,241,244,249,250,251,252,253,266,268,273,274,275,280,287,288],bitbang:188,bitmap:90,bitmask:99,bits0x00:27,bl_rev:276,bla:205,ble:[14,18,19,23,26,30,31,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,128,132,133,222,225,236,239,243,245,247,249,250,251,255,271,272,273,277,279,282,290],ble_:249,ble_addr_t:[252,253],ble_addr_type_publ:250,ble_app:[244,252,253],ble_app_advertis:[252,253],ble_app_on_sync:[252,253],ble_app_set_addr:[252,253],ble_att:[76,236,249],ble_att_err_attr_not_found:20,ble_att_err_attr_not_long:20,ble_att_err_insufficient_authen:20,ble_att_err_insufficient_author:20,ble_att_err_insufficient_enc:20,ble_att_err_insufficient_key_sz:20,ble_att_err_insufficient_r:[20,272,274],ble_att_err_invalid_attr_value_len:[20,249],ble_att_err_invalid_handl:20,ble_att_err_invalid_offset:20,ble_att_err_invalid_pdu:20,ble_att_err_prepare_queue_ful:20,ble_att_err_read_not_permit:20,ble_att_err_req_not_support:20,ble_att_err_unlik:[20,272,274],ble_att_err_unsupported_group:20,ble_att_err_write_not_permit:20,ble_att_svr_entry_pool:73,ble_att_svr_prep_entry_pool:73,ble_eddystone_set_adv_data_uid:252,ble_eddystone_set_adv_data_url:252,ble_eddystone_url_scheme_http:252,ble_eddystone_url_suffix_org:252,ble_err_acl_conn_exist:20,ble_err_auth_fail:20,ble_err_chan_class:20,ble_err_cmd_disallow:20,ble_err_coarse_clk_adj:20,ble_err_conn_accept_tmo:20,ble_err_conn_establish:20,ble_err_conn_limit:20,ble_err_conn_parm:20,ble_err_conn_rej_bd_addr:20,ble_err_conn_rej_channel:20,ble_err_conn_rej_resourc:20,ble_err_conn_rej_secur:20,ble_err_conn_spvn_tmo:20,ble_err_conn_term_loc:20,ble_err_conn_term_m:20,ble_err_ctlr_busi:20,ble_err_diff_trans_col:20,ble_err_dir_adv_tmo:20,ble_err_encryption_mod:20,ble_err_host_busy_pair:20,ble_err_hw_fail:20,ble_err_inq_rsp_too_big:20,ble_err_instant_pass:20,ble_err_insufficient_sec:20,ble_err_inv_hci_cmd_parm:20,ble_err_inv_lmp_ll_parm:20,ble_err_link_key_chang:20,ble_err_lmp_collis:20,ble_err_lmp_ll_rsp_tmo:20,ble_err_lmp_pdu:20,ble_err_mac_conn_fail:20,ble_err_mem_capac:20,ble_err_no_pair:20,ble_err_no_role_chang:20,ble_err_page_tmo:20,ble_err_parm_out_of_rang:20,ble_err_pending_role_sw:20,ble_err_pinkey_miss:20,ble_err_qos_parm:20,ble_err_qos_reject:20,ble_err_rd_conn_term_pwroff:20,ble_err_rd_conn_term_resrc:20,ble_err_rem_user_conn_term:20,ble_err_repeated_attempt:20,ble_err_reserved_slot:20,ble_err_role_sw_fail:20,ble_err_sco_air_mod:20,ble_err_sco_itvl:20,ble_err_sco_offset:20,ble_err_sec_simple_pair:20,ble_err_synch_conn_limit:20,ble_err_unit_key_pair:20,ble_err_unk_conn_id:20,ble_err_unk_lmp:20,ble_err_unknown_hci_cmd:20,ble_err_unspecifi:20,ble_err_unsupp_lmp_ll_parm:20,ble_err_unsupp_qo:20,ble_err_unsupp_rem_featur:20,ble_err_unsupport:20,ble_ga:251,ble_gap:76,ble_gap_adv_param:[252,253],ble_gap_adv_set_field:247,ble_gap_adv_start:[247,250,252,253],ble_gap_chr_uuid16_appear:[249,251],ble_gap_chr_uuid16_device_nam:[249,251],ble_gap_chr_uuid16_periph_pref_conn_param:249,ble_gap_chr_uuid16_periph_priv_flag:249,ble_gap_chr_uuid16_reconnect_addr:249,ble_gap_conn_desc:250,ble_gap_conn_find:250,ble_gap_conn_fn:247,ble_gap_conn_mode_und:[247,250],ble_gap_disc_mode_gen:[247,250],ble_gap_ev:250,ble_gap_event_conn_upd:250,ble_gap_event_connect:250,ble_gap_event_disconnect:250,ble_gap_event_enc_chang:250,ble_gap_event_fn:[252,253],ble_gap_event_subscrib:250,ble_gap_svc_uuid16:[249,251],ble_gap_upd:73,ble_gatt:76,ble_gatt_access_ctxt:[249,272,274],ble_gatt_access_op_read_chr:[249,272,274],ble_gatt_access_op_write_chr:[249,272,274],ble_gatt_chr_def:[249,251,272],ble_gatt_chr_f_notifi:272,ble_gatt_chr_f_read:[249,251,272],ble_gatt_chr_f_read_enc:272,ble_gatt_chr_f_writ:272,ble_gatt_chr_f_write_enc:272,ble_gatt_register_fn:251,ble_gatt_svc_def:[249,251,272],ble_gatt_svc_type_primari:[249,251,272],ble_gattc:76,ble_gattc_proc_pool:73,ble_gatts_chr_upd:[272,274],ble_gatts_clt_cfg_pool:73,ble_gatts_find_chr:[272,274],ble_gatts_register_svc:251,ble_h:[14,15,16,17,19,20,23,26,76,252,253,274],ble_hci_ram_evt_hi_pool:73,ble_hci_ram_evt_lo_pool:73,ble_hci_uart_baud:245,ble_hs_:251,ble_hs_adv_field:[247,252],ble_hs_att_err:20,ble_hs_cfg:[26,252,253],ble_hs_conn_pool:73,ble_hs_eagain:20,ble_hs_ealreadi:20,ble_hs_eapp:20,ble_hs_eauthen:20,ble_hs_eauthor:20,ble_hs_ebaddata:20,ble_hs_ebusi:20,ble_hs_econtrol:20,ble_hs_edon:20,ble_hs_eencrypt:20,ble_hs_eencrypt_key_sz:20,ble_hs_einv:20,ble_hs_emsgs:20,ble_hs_eno:20,ble_hs_enoaddr:20,ble_hs_enomem:20,ble_hs_enomem_evt:20,ble_hs_enotconn:20,ble_hs_enotsup:20,ble_hs_enotsync:20,ble_hs_eo:20,ble_hs_ereject:20,ble_hs_erol:20,ble_hs_err_sm_peer_bas:20,ble_hs_err_sm_us_bas:20,ble_hs_estore_cap:20,ble_hs_estore_fail:20,ble_hs_etimeout:20,ble_hs_etimeout_hci:20,ble_hs_eunknown:20,ble_hs_ev_tx_notif:87,ble_hs_event_tx_notifi:87,ble_hs_forev:[250,252,253],ble_hs_hci_err:20,ble_hs_hci_ev_pool:73,ble_hs_id:23,ble_hs_id_gen_rnd:[23,252,253],ble_hs_id_set_rnd:[19,23,252,253],ble_hs_l2c_err:20,ble_hs_reset_fn:26,ble_hs_sm_peer_err:20,ble_hs_sm_us_err:20,ble_hs_sync_fn:26,ble_ibeacon_set_adv_data:253,ble_l2cap:76,ble_l2cap_chan_pool:73,ble_l2cap_sig_err_cmd_not_understood:20,ble_l2cap_sig_err_invalid_cid:20,ble_l2cap_sig_err_mtu_exceed:20,ble_l2cap_sig_proc_pool:73,ble_ll:[76,77,273],ble_ll_cfg_feat_le_encrypt:222,ble_ll_conn:76,ble_ll_prio:225,ble_lp_clock:24,ble_max_connect:[275,277],ble_mesh_dev_uuid:32,ble_mesh_pb_gatt:32,ble_own:[252,253],ble_own_addr_random:[252,253],ble_phi:76,ble_prph:273,ble_public_dev_addr:23,ble_rigado:47,ble_role_broadcast:277,ble_role_peripher:277,ble_sm_err_alreadi:20,ble_sm_err_authreq:20,ble_sm_err_cmd_not_supp:20,ble_sm_err_confirm_mismatch:20,ble_sm_err_cross_tran:20,ble_sm_err_dhkei:20,ble_sm_err_enc_key_sz:20,ble_sm_err_inv:20,ble_sm_err_numcmp:20,ble_sm_err_oob:20,ble_sm_err_pair_not_supp:20,ble_sm_err_passkei:20,ble_sm_err_rep:20,ble_sm_err_unspecifi:20,ble_sm_legaci:222,ble_tgt:[244,252,253],ble_uu:251,ble_uuid128_init:[272,274],ble_uuid128_t:[272,274],ble_uuid16:[249,251],ble_uuid16_declar:[272,274],ble_uuid:274,ble_uuid_128_to_16:249,ble_uuid_u16:[272,274],ble_xtal_settle_tim:24,bleadc:274,blecent:[7,61],blehci:[7,61],blehciproj:245,blehostd:66,blemesh:[21,32],blenano:53,bleprph:[7,21,61,66,222,239,246,247,248,249,250,251,272,273,274,275,288],bleprph_advertis:[247,250],bleprph_appear:249,bleprph_device_nam:[247,249],bleprph_log:[247,250,272,274],bleprph_oic:[7,61,279],bleprph_oic_sensor:275,bleprph_on_connect:247,bleprph_pref_conn_param:249,bleprph_print_conn_desc:250,bleprph_privacy_flag:249,bleprph_reconnect_addr:249,blesplit:[7,61],bletest:[7,61],bletini:[7,21,37,38,45,46,50,61,71,236,245,248],bletiny_chr_pool:73,bletiny_dsc_pool:73,bletiny_svc_pool:73,bletoh:89,bleuart:[7,61],blink:[1,7,61,93,99,238,240,241,254,255,257,258,259,260,261,273,274,290],blink_nord:288,blink_nrf:273,blink_primo:273,blink_rigado:47,blinki:[1,12,34,43,44,48,55,61,93,241,244,245,262,266,273,274,282,283,284,286,287,288,290],blinky_callout:256,blinky_primo:273,blinky_sim:61,blksize:90,blksz:[73,284],blob:[20,183],block:[20,29,73,86,87,89,90,98,134,140,143,173,174,175,176,177,187,190,192,193,238,273,284],block_addr:90,block_siz:90,blocks_siz:90,blue:261,bluetooth:[1,9,20,22,23,24,27,29,32,89,222,239,246,247,252,253,255,273,274,290],bmd300eval:[48,53,259,274],bmd:[259,274],bno055:[207,208,275,277,278],bno055_0:[207,276,278],bno055_acc_cfg_bw_125hz:278,bno055_acc_cfg_rng_16g:278,bno055_acc_unit_ms2:278,bno055_angrate_unit_dp:278,bno055_cfg:[208,278],bno055_cli:[276,277],bno055_config:[208,278],bno055_default_cfg:208,bno055_do_format_android:278,bno055_err:208,bno055_euler_unit_deg:278,bno055_get_chip_id:208,bno055_id:208,bno055_info:208,bno055_init:[207,208],bno055_ofb:[207,275,276,277],bno055_opr_mode_ndof:278,bno055_pwr_mode_norm:278,bno055_sensor_get_config:208,bno055_sensor_read:208,bno055_shel:276,bno055_shell_init:276,bno055_stat_sect:208,bno055_temp_unit_degc:278,board:[1,2,4,5,7,8,10,12,23,24,30,39,42,47,53,55,57,58,59,61,92,93,134,181,182,187,208,209,213,222,224,225,235,236,238,239,240,241,245,248,252,253,255,256,272,273,278,279,280,282,285,287,288,290],bodi:[128,278],bold:[235,242],bond:[22,27,29,30,248],bondabl:27,bone:[84,246,252,253,290],bookkeep:140,bool:[90,199],boot:[7,10,43,61,93,100,101,130,195,235,236,239,245,254,257,258,259,260,261,262,266,273,274,276,280,283,284,286],boot_boot_serial_test:7,boot_bootutil:222,boot_build_statu:128,boot_build_status_on:128,boot_clear_statu:128,boot_copy_area:128,boot_copy_imag:128,boot_erase_area:128,boot_fill_slot:128,boot_find_image_area_idx:128,boot_find_image_part:128,boot_find_image_slot:128,boot_go:128,boot_img_mag:128,boot_init_flash:128,boot_load:93,boot_mag:128,boot_move_area:128,boot_nrf:273,boot_olimex:260,boot_primo:273,boot_read_image_head:128,boot_read_statu:128,boot_select_image_slot:128,boot_seri:[7,130],boot_serial_setup:7,boot_slot_addr:128,boot_slot_to_area_idx:128,boot_swap_area:128,boot_test:7,boot_vect_delete_main:128,boot_vect_delete_test:128,boot_vect_read_main:128,boot_vect_read_on:128,boot_vect_read_test:128,boot_write_statu:128,bootabl:[222,239,283,286],bootload:[1,12,43,47,93,96,101,130,191,195,235,239,241,255,256,273,274,275,277,285],bootutil:[7,101,128,130,254,257,258,259,260,261,262,266,276,283,284,286],bootutil_misc:[7,254,257,258,259,261,276,283,284,286],both:[6,9,11,14,20,22,27,29,39,55,57,58,59,62,89,91,93,98,128,129,131,134,173,179,187,190,199,205,222,224,225,234,254,256,262,265,266,269,274],bottl:[58,81],bottom:[12,93,97,99,248],bound:[89,93,152],boundari:[89,90,93],box:[12,288],bps:193,branch:[1,4,7,10,11,55,56,57,59,60,79,80,82,83,128,242,254,266,267,268],branchnam:10,brand:261,bread:274,breadboard:274,breakdown:222,breakout:8,breakpoint:[254,258],breviti:[222,235,284],brew:[3,4,7,11,36,55,58,60,81,83],brick:128,bridg:179,brief:[19,186,252,253,262],briefli:93,bring:[12,93,181,276,279,282],broad:290,broadca:[252,253],broadcast:[14,27,31,247,252,253],brows:[248,257,267],browser:242,bsd:101,bsp:[1,7,24,32,34,37,38,42,43,45,47,50,55,61,62,92,129,134,173,174,176,177,181,185,186,192,193,206,207,208,209,211,222,225,235,238,244,245,248,254,256,257,258,259,260,261,262,266,273,274,275,276,277,278,280,283,284,286,287,288,290],bsp_arduino_zero:254,bsp_arduino_zero_pro:[254,266],bsp_flash_dev:174,bsp_timer:192,bsppackag:93,bss:[48,93,222],bssnz_t:[272,273,274],btattach:245,btshell:29,buad:66,buf:[129,135,153,154,155,156,160,161,163,164,168,171,199],buf_len:89,buffer:[10,20,89,90,92,96,97,130,134,156,163,169,171,179,187,190,199,205,224,253,274],buffer_len:274,buffer_size_down:287,bug:[4,7,11,160,161,254,258,280,287,288],bui:274,build:[1,2,3,4,5,6,11,31,32,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,92,93,94,96,128,134,181,187,198,205,209,222,223,224,225,231,238,239,246,247,248,255,265,272,273,282,285,290],build_arduino_blinki:12,build_arduino_boot:12,build_numb:197,build_profil:[1,32,37,38,43,50,53,61,93,222,235,244,245,248,254,257,258,259,260,261,262,266,273,274,275,276,277,280,283,284,286],buildabl:7,builder:242,built:[1,4,7,8,9,21,33,34,38,39,42,43,55,57,58,59,60,61,63,81,82,83,89,128,190,205,222,231,235,236,242,244,245,248,252,253,254,255,256,257,258,259,260,261,262,265,266,272,273,274,275,276,280,283,284,286],bunch:273,bundl:[55,101,152],burn:[252,253],bus:[2,187],buse:[134,181],busi:[20,90,91,241,273],button1_pin:238,button:[2,4,10,12,98,238,254,257],bytes_read:[153,160,163,168,171],bytyp:211,c_ev:84,c_evq:84,c_tick:84,cabl:[236,238,239,241,245,254,255,257,258,259,260,262,266,274,280,282,283,285,286],cach:[58,81,134,173,175,181],cache_large_file_test:265,calcul:[20,29,48,90,100,128,140],calendar:9,call:[6,7,9,11,19,21,23,26,36,61,84,85,86,87,88,89,90,91,92,93,97,98,99,100,101,128,129,130,131,132,134,135,138,140,141,142,143,145,146,150,158,161,165,168,171,172,175,176,178,179,180,183,186,187,189,190,191,192,193,194,196,199,205,206,207,208,210,211,212,214,216,217,220,223,225,227,228,229,230,231,232,233,236,238,241,243,244,247,248,249,250,251,252,253,254,256,262,265,267,273,274,275,276,280,285],callback:[20,26,86,87,89,90,130,140,145,150,186,190,192,193,206,207,208,210,212,225,238,247,249,251,252,253,256,273,280],caller:[89,90,130,140,192,198,199,215,219],callout:[87,92,97,211,256,280],callout_l:238,callout_reset:129,came:245,can:[1,2,3,4,5,6,7,8,9,11,12,19,20,21,22,23,24,27,30,31,33,34,35,42,45,50,55,57,58,59,60,61,62,63,64,66,72,76,80,81,82,83,84,85,86,87,89,90,91,92,93,94,96,97,98,99,101,128,129,130,131,134,135,136,137,140,141,143,145,146,150,151,152,161,165,166,169,171,173,174,176,179,180,181,186,188,189,190,192,193,194,195,199,205,206,207,208,209,210,211,214,215,219,220,221,222,223,224,225,227,228,230,231,234,235,236,238,239,240,241,242,244,245,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,272,273,274,275,276,277,278,280,282,283,284,286,287,288,290],cancel:[20,27,84],candid:267,cannot:[4,19,20,71,86,88,91,92,98,128,129,151,169,179,182,190,192,225,236,254,266,267,268,269],capabl:[20,22,27,29,95,130,134,205,222,241,256,287],capac:20,captian:81,captur:179,carbon:272,card:[136,151],care:[89,92,99,163,171,252,253,267,268,272],carri:89,cascad:[1,61],cast:[89,90,249],cat:[80,273,274],catastroph:26,categor:93,categori:[10,96],caus:[90,92,98,153,160,161,166,169,179,187,191,224,226,239,241,274,287],caveat:128,cb_arg:[150,192,247,251,252,253],cb_func:192,cbmem:[7,205,226],cbmem_buf:205,cbmem_entry_hdr:226,cbmem_init:205,cbmem_read:226,cbmem_test_case_1_walk:226,cbor:[132,133],cborattr:7,cccd:27,ccm:22,cdc:257,cell:22,cellar:[4,6,11,36,58,60,81,83],central:[20,30,246,247,248,250],certain:[1,21,89,90,92,93,134,245,268],certainli:274,cess_op_:249,cfg:[70,171,172,187,190,192,193,207,208,258],cflag:[1,50,61,93],cgi:101,ch_commit:129,ch_export:129,ch_get:129,ch_name:129,ch_set:129,chain:[89,90,199],challeng:263,chanc:[92,99],chang:[1,4,6,7,10,11,19,20,21,22,24,28,30,46,49,50,52,57,61,62,80,89,93,94,128,179,186,190,206,207,214,222,224,225,235,236,238,240,241,242,245,248,250,252,253,254,258,272,273,274,275,276,277,280,282,287,288],channel:[20,21,29,134,274],channel_map:27,chapter:[2,21,96,132],charact:[130,139,156,159,173,179,193,197,198,199,200,201,202,203,214,219,225,251,266,280,287],character:24,characteri:[249,251],characterist:[9,16,17,21,27,28,128,248,251,272,274],check:[4,6,8,11,20,22,55,56,79,84,87,90,99,129,179,199,208,222,224,225,235,239,244,245,246,257,260,262,265,268,273,276,278,285],checkbox:59,checkin:[77,97,99],checkout:[10,80,82,255],checksum:[140,142],child:[90,154,155,156,161,164,179],children:179,chip:[4,96,134,135,181,186,190,191,206,208,254,255,257,258,261,266,267,273,276],chip_id:276,chipset:[134,181,254,266],choic:[2,10,173,245,276],choos:[6,7,10,89,99,101,222,223,236,241,244,247,256,257,259,272,274],chose:223,chosen:[89,93,128,151,179,274],chr:[249,272,274],chr_access:249,chr_val_handl:[272,274],chunk:[10,89],ci40:53,cid:248,circuit:187,circular:[205,224,225],circularli:268,clang:6,clarif:10,clarifi:134,clariti:136,classif:20,clean:[1,11,33,39,50,57,58,59,63,81,159,177,241,262],cleanli:225,clear:[72,84,89,99,128,179],clearli:[8,20],cli:130,click:[2,4,10,12,242,248,252,253,254,257,258,260,286],client:[12,17,18,20,21,27,31,152,180,209,252,272],clk:190,clobber:166,clock:[20,25,86,191,254,258,276],clock_freq:86,clone:[10,11,45,50,55,58,81],close:[2,59,134,152,153,154,155,156,157,160,161,163,164,168,169,170,171,172,193,207,254,257,258,260,261,278],closest:192,cmake:1,cmd:[55,61,93,184,273,276],cmd_len:273,cmd_queue:130,cmd_read_co2:273,cmp:273,cmsi:[2,7,48,254,257,258,259,260,261,280],cmsis_nvic:[257,258,259,260,261,280],cn4:235,cnt:[73,130,176,177,190,284],co2:[272,273],co2_evq:272,co2_read_ev:272,co2_sns_str:272,co2_sns_typ:272,co2_sns_val:272,co2_stack:272,co2_stack_s:272,co2_task:272,co2_task_handl:272,co2_task_prio:272,coap:[133,209,212,275,279],coars:20,coc:27,code:[1,5,7,9,11,13,18,21,24,26,27,29,55,85,89,90,92,95,96,97,100,101,128,130,132,134,136,139,152,153,154,155,156,157,159,160,161,163,164,166,168,169,170,171,172,176,177,178,179,180,181,182,186,187,190,192,193,195,205,207,208,209,222,225,226,227,228,230,231,232,236,238,241,246,247,249,250,251,254,255,256,262,264,266,267,273,274,275,278,279,280,282,284,285,290],codebas:[254,266],coded_interval_max:27,coded_interval_min:27,coded_lat:27,coded_max_conn_event_len:27,coded_min_conn_event_len:27,coded_scan_interv:27,coded_scan_window:27,coded_timeout:27,codepag:151,coding_standard:7,coexist:128,collect:[1,7,43,55,61,89,90,132,140,180,199,222,235,267],collis:20,colon:66,color:240,column:19,com11:8,com1:66,com3:[8,256,266,276,283,286],com6:8,com:[8,10,11,12,33,55,57,58,59,63,80,81,82,101,183,235,245,256,266,267,269,276,283,284,286],combin:[1,20,22,26,43,61,92,93,187,244,252,253,267,268],combo:222,come:[3,21,30,55,61,93,101,130,134,205,254,260,261,266,273,274,286],comm:[235,255],comma:[51,66],comman:220,command:[1,2,4,7,8,10,11,20,30,34,35,36,37,38,40,41,42,44,45,46,47,48,49,51,52,53,54,57,58,59,60,61,67,68,70,71,72,75,76,78,80,81,82,83,93,96,128,131,133,136,138,187,195,196,205,209,215,219,220,221,222,223,224,225,231,235,237,239,240,241,244,252,253,254,256,257,258,259,260,261,262,263,265,266,267,269,270,274,275,276,277,278,280,283,286,287,288],comment:[3,10,93,234,290],commerci:273,commit:[10,11],common:[55,61,87,89,96,98,99,134,135,181,186,208,209,222,251,258],commonli:[98,190,252],commun:[9,21,26,27,31,66,78,130,132,136,187,190,206,207,208,235,238,239,240,241,245,247,250,255,262,266,267,273,274,276,280,283,284,285,286,290],compani:29,compar:[10,20,89,160,241,257,258,259,262,270,274],comparison:[20,22,89,100],compat:[4,10,21,55,128,130,135,214,215,222,254,262,266,276,278,280,287],compens:100,compil:[1,4,5,6,7,8,11,20,34,47,53,55,58,61,81,89,93,96,101,134,214,223,225,231,234,235,236,238,244,254,257,258,259,260,261,262,266,273,274,275,276,280,283,284,286],complaint:21,complementari:31,complet:[9,12,20,22,27,29,30,33,55,59,63,93,95,96,99,128,130,140,154,155,156,161,164,179,181,187,190,193,205,222,229,233,234,238,241,245,247,252,253,258,267,274,275,278,279,280,283,284,286],completion_cb:130,complex:[9,31,92,93,134,181,241,243],compli:21,complianc:[273,274],compliant:21,complic:[55,92,222],compon:[1,7,12,18,39,48,55,57,58,59,61,85,93,96,129,134,181,187,190,222,223,236,238,239,245,252,253,255,266,273,282,285],compos:[39,57,58,59,234],composit:199,comprehens:234,compress:[55,81,173,252],compris:[7,128,173,174],comput:[3,4,6,8,12,31,56,58,59,79,81,130,142,151,239,241,244,245,254,255,257,258,259,260,261,275,277,282,283,285,286],concept:[12,22,89,92,160,214,225,239,241,243,244,246,254,255,266,282,285],concern:[3,89,179],concis:132,conclud:[252,253,274],concurr:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,84,88,246,247],condit:[4,20,128,179,187,207,214,224,226,265,273,274],condition:[55,207,224,225,276],conduct:[128,132],conf:262,conf_export_tgt:129,conf_fcb_dst:129,conf_fcb_src:129,conf_file_dst:129,conf_file_src:129,conf_get_valu:129,conf_handl:129,conf_init:232,conf_int8:129,conf_load:129,conf_regist:[129,226],conf_sav:129,conf_save_on:129,conf_set_valu:129,conf_str_from_valu:129,conf_value_set:129,confidenti:22,config:[1,7,32,50,61,62,64,78,80,81,82,131,135,151,153,157,160,163,170,192,224,225,232,236,244,273,274,276],config_:207,config__sensor:207,config_bno055_sensor:[207,278],config_cli:129,config_fcb:[129,224],config_fcb_flash_area:[224,225],config_lis2dh12_sensor:207,config_newtmgr:[50,236],config_nff:[129,152,224],config_pkg_init:225,config_test_al:232,config_test_handl:226,config_test_insert:[226,227],configur:[6,7,9,19,20,25,26,31,32,50,55,57,58,59,61,62,86,90,92,93,94,96,128,130,132,134,152,173,175,179,181,182,186,187,190,192,193,194,209,210,212,222,238,241,244,247,251,254,257,260,261,262,263,269,274,276,279,280,282,284,287,288],configuraton:151,confirm:[8,20,27,71,128,222,239,262,283,286],confirmbe9699809a049:71,conflict:[61,224,268],confluenc:10,confus:[267,274],congratul:[7,235,248,272,273,274],conjunct:[31,210],conn:[27,28,30,64,65,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,239,250,252,253,283,284,286],conn_handl:[20,248,249,250,272,274],conn_interval_max:29,conn_interval_min:29,conn_itvl:[30,248],conn_lat:[30,248],conn_mod:250,conn_profil:[65,66,67,68,69,70,71,72,73,74,75,76,77],conn_upd:250,connect:[4,7,8,9,10,12,15,20,21,22,24,26,28,29,31,38,42,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,96,130,132,133,134,181,186,187,190,191,222,235,238,246,247,248,249,250,252,253,255,272,273,282,285],connect_don:266,connectable_mod:247,connection_profil:71,connectionless:27,connector:[4,236,245,257,260,262,286],connextra:10,connintervalmax:29,connintervalmin:29,connstr:[66,239,283,284,286],conntyp:10,consecut:97,consequ:[20,128,222],conserv:[9,89,96],consid:[21,62,89,92,98,142,187,226,251,267],consider:226,consist:[1,21,31,61,98,99,128,129,132,134,162,179,190,222,224,225,231,251],consol:[1,7,8,12,26,55,61,96,101,129,137,154,155,156,161,164,171,193,205,218,225,238,244,245,248,252,253,255,265,273,274,284],console_append_char_cb:130,console_blocking_mod:130,console_compat:130,console_echo:130,console_handle_char:130,console_init:130,console_input:130,console_is_init:130,console_is_midlin:130,console_max_input_len:130,console_non_blocking_mod:130,console_out:130,console_pkg_init:225,console_printf:[20,26,130,153,154,155,156,160,161,163,164,168,171,226,272,273,274,280],console_prompt:273,console_read:130,console_rtt:[130,280,287],console_rx_cb:130,console_set_completion_cb:130,console_set_queu:130,console_tick:[130,273],console_uart:[130,280,287],console_uart_baud:130,console_uart_dev:130,console_uart_flow_control:130,console_uart_tx_buf_s:130,console_writ:[130,226],consolid:179,consortium:132,constant:190,constantli:[247,266,274,290],constitu:[43,179],constrain:[9,55,133,263],constraint:254,construct:[11,89,98],consult:[152,181],consum:[87,98,193],consumpt:22,contact:[94,95,235],contain:[1,3,7,11,29,31,34,50,55,61,84,89,90,93,95,96,98,99,100,128,130,132,134,137,140,153,156,157,160,163,166,167,168,170,176,179,182,186,193,195,197,198,199,210,218,222,223,225,226,229,231,234,244,245,247,249,251,252,253,262,265,267,268,276,290],content:[12,49,61,80,89,93,128,140,141,142,154,155,156,161,164,171,179,192,199,222,232,235,241,247,251,252,253,260,262,265,268,269,276,278],context:[55,77,85,86,87,92,99,130,134,139,190,192,214,216,225,236,238,250,256],contigu:[89,128,140,179],continu:[6,93,98,129,179,214,222,236,238,240,241,242,245,254,255,260,266,274,277,278,279,280,282,284,285,287],contrast:225,contribut:[13,22,57,58,59,80,81,82,243,265,282],contributor:[181,273,274],control:[8,9,18,19,20,21,22,23,25,26,29,31,55,66,96,130,134,140,160,173,181,183,190,193,205,208,214,225,244,258,260,267,268,273,274,279],contruct:248,convei:89,conveni:[12,20,89,129,171,179,198,226],convent:[262,265,276,280],convers:[101,134,249],convert:[1,8,20,71,84,86,89,100,129,134,174,176,177,179,190,199,225,249,251,273,274],coordin:[275,277],copi:[1,4,45,49,50,62,80,82,89,94,95,128,140,179,199,207,222,223,239,247,250,254,273,274,278,280,287,288],copy_don:128,copyright:[4,254,260,273,274,280,287,288],core:[1,6,7,12,21,29,32,37,38,43,48,50,51,53,55,61,62,71,88,93,95,97,129,132,134,152,181,183,222,223,235,241,244,245,246,247,248,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,275,276,277,280,282,283,284,285,286,287,288,290],core_cminstr:258,core_o:130,core_path:61,coreconvert:71,coredownload:71,coredump:[7,182],coredump_flash_area:225,coreeras:71,corelist:71,corner:260,corp:[2,254],correct:[1,2,4,41,90,93,100,128,173,222,225,241,245,258,259,260,262,265,274,276],correctli:[2,89,240,245,254,258,265,274,275],correspo:251,correspond:[12,20,86,89,90,93,128,162,175,179,180,205,206,247,249,252,253,268,274],corrupt:[90,167,179],corrupt_block_test:265,corrupt_scratch_test:265,cortex:[4,101,257,259,262,266,274,280],cortex_m0:61,cortex_m4:[61,93,257,258,259,260,261,262,280],cortex_m:254,cost:9,could:[20,89,98,179,197,249,273],couldn:[226,247,273],count:[55,81,89,98,99,128,129,179],counter:[85,89,223,262],countri:21,coupl:[1,260,273,274],cours:272,cover:[8,61,134,179,225,234,241,251],cpha:190,cpol:190,cpptool:12,cpu:[85,93,95,134,181,182,189,241,254,258],cputim:[24,86,276,280],cputime_geq:86,cputime_gt:86,cputime_leq:86,cputime_lt:86,crank:274,crash:[64,78,80,81,82,97,128,131,191,193,236],crash_test:[7,131,236],crash_test_newtmgr:236,crc16:179,crc:[7,130,136,273],creat:[1,2,3,4,5,6,8,10,11,12,22,27,32,34,39,41,43,44,45,46,47,50,55,57,58,59,61,62,66,71,80,81,82,87,90,91,92,95,97,98,99,101,130,134,143,157,159,160,161,166,169,170,172,173,176,179,205,206,208,209,211,212,216,222,223,224,225,231,233,238,240,241,246,251,255,256,267,269,272,278,279,282,285,290],create_arduino_blinki:12,create_mbuf_pool:89,create_path:159,creation:[47,134,235,262,274],creator:[206,207,208,209,211,275,276,278,280],credenti:269,criteria:20,critic:3,cross:[5,6,7,9,96],crt0:48,crti:48,crtn:48,crw:8,crypto:[7,254,257,259,261,266,283,284,286],crypto_mbedtl:222,cryptograph:[22,128],cryptographi:22,crystal:25,csrk:27,css:242,cssv6:29,csw:[77,273,283,286],ctlr_name:66,ctlr_path:66,ctrl:[12,244,273,276,287],ctxt:[249,250,272,274],cur_ind:250,cur_notifi:250,curi:[248,250],curiou:[3,242],curl:[11,58],curn:[248,250],curr:266,currantlab:[81,82],current:[11,24,27,31,39,40,41,44,45,46,50,51,57,58,59,60,71,81,82,83,85,86,89,90,91,92,93,97,98,99,100,128,129,130,134,135,136,137,139,140,151,152,157,158,159,160,170,172,179,186,187,190,192,195,206,214,223,224,226,229,233,235,236,239,241,252,254,255,258,260,262,263,267,268,270,276,280],custom:[23,71,90,162,180,182,205,225],cvs:[254,260,280,287,288],cwd:12,cycl:[19,21,31,179],cylind:274,daemon:[2,245],dai:[100,214],dap:[2,254,257,261],darwin10:[254,280,287,288],darwin:6,data:[9,14,20,21,27,28,30,31,43,48,64,69,80,81,82,84,86,89,90,92,93,96,99,128,129,130,132,133,141,142,143,144,145,146,150,153,157,159,160,162,163,168,169,170,171,172,175,178,188,190,193,204,207,209,212,213,217,219,222,225,241,249,250,252,253,272,273,274,282,288,290],data_len:273,data_mod:190,data_ord:190,databas:28,databit:193,databuf:[89,280],datagram:217,datalen:27,datasheet:93,date:[11,68,151,262,265,273],datetim:[7,64,78,80,81,82,130,131,133,236,265],datetime_pars:265,daunt:247,daylight:100,dbm:[21,27,29],ddress:25,deactiv:222,deal:[89,92,93,134],deb:[57,60,80,83],debian:[4,6],debug:[1,2,4,5,6,7,39,43,47,50,55,57,58,59,62,94,208,209,224,235,239,244,245,254,256,257,258,259,260,261,266,273,274,275,276,277,280,283,284,286,287,288],debug_arduino_blinki:12,debug_arduinoblinki:12,debugg:[5,38,39,55,57,58,59,61,191,254,257,258,260,261,262,286,287,288],dec:[48,222],decemb:22,decid:[55,85,96,241,273],decim:[22,187],decis:187,declar:[12,91,99,129,183,192,207,219,228,230,238,265,267,278,280],decod:[214,217],decompress:252,dedic:[87,93,96,214,222,236,238,249,287,288],deep:182,deeper:[89,235,262,274],def:[7,207,224,225,274,280],defaultdevic:82,defin:[1,6,19,20,21,24,27,28,29,31,34,42,43,47,50,53,61,84,86,87,89,90,92,97,99,128,129,131,133,134,176,177,182,183,185,186,190,205,206,207,209,210,211,212,213,214,220,222,224,225,226,227,229,231,235,238,241,243,245,247,249,255,262,265,267,268,272,273,274,275,276,279,280,283,285,286,287],defininig:31,defininit:198,definit:[1,12,29,35,37,42,50,61,84,89,90,93,128,214,223,231,245,249,251,267,272,273,274],defint:[89,224],del:27,delai:[26,86,100,192,240,241,262],deleg:222,delet:[1,6,10,12,27,35,39,45,49,50,55,57,58,59,61,62,153,169,173,179,240,263,272,278,280],delimit:50,deliv:[84,151],delta:[55,81,235],demo:272,demonstr:[20,26,89,159,166,171,262,276,280],denot:89,dep:[1,50,55,61,62,93,130,135,136,151,152,180,181,205,207,214,223,225,236,238,244,256,265,273,274,275,280],depend:[1,4,6,8,20,22,24,27,39,41,49,50,52,55,57,58,59,62,66,84,89,95,101,128,130,151,152,160,179,186,187,190,200,205,207,214,223,225,226,229,231,233,241,244,254,265,266,267,270,273,274,276,283,285,286],depict:181,deploi:[43,222,256],deploy:31,deprec:225,depth:[4,95],dequeu:[87,238],deriv:[20,179],desc:[176,177,250],descend:[128,169],describ:[1,2,7,10,11,12,24,28,33,63,90,92,93,94,96,99,128,132,140,146,151,173,179,186,188,190,199,204,206,207,208,214,222,224,225,231,235,236,242,244,246,251,252,258,261,262,267,273,274,275,276,278,282],descript:[1,7,10,19,27,28,30,55,61,89,93,94,95,129,136,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,166,167,168,169,170,171,172,176,177,197,198,200,201,202,203,204,205,206,207,210,211,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,235,262,263,265,267,268,273,274,288],descriptor:[16,17,27,28,61,160,161,174,176,177,179,249],design:[21,22,23,55,96,97,100,128,173,179,214,222,233,241,251,265],desir:[86,89,98,192,207,265,270],desktop:10,destin:[4,31,89,156,163,166,171,179,187,198,205],detail:[1,10,12,21,22,29,55,92,99,128,129,152,173,187,190,206,207,208,210,211,222,235,236,244,247,249,251,252,253,254,262,267,280,287,288],detect:[20,55,90,140,152,173,176,177,191,217,224,225,245],determin:[20,87,89,90,99,128,140,179,192,214,222,225,234,247,250,267,278],dev:[1,2,3,4,7,8,10,11,12,48,61,66,82,130,134,135,207,208,225,234,235,239,240,244,245,248,254,256,257,258,259,260,261,262,266,267,268,269,273,274,275,276,278,280,283,284,286,290],dev_found:245,develop:[3,5,6,7,8,9,13,20,55,59,61,82,89,90,92,94,95,96,99,132,134,209,212,214,225,234,239,241,245,246,249,252,254,255,257,260,261,267,268,272,273,274,279,282,286,287,288,290],devic:[3,4,8,9,14,19,20,21,22,25,28,29,31,32,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,96,128,130,132,133,134,135,136,152,174,181,183,186,187,190,209,210,211,212,222,223,224,225,236,243,244,246,247,248,249,251,252,253,254,256,257,258,259,260,261,262,266,272,274,279,280,283,284,285,286,287,288,290],device_id:183,deviceaddr:23,deviceaddrtyp:23,dflt:199,dhcp:266,dhkei:20,diag:193,diagram:[132,241,258,260],dialog:[12,59,288],dictat:[11,62],did:[10,222],diff:273,differ:[4,6,7,8,11,12,20,24,27,30,45,55,57,80,84,89,91,92,93,94,95,96,99,134,173,181,186,193,207,222,223,224,225,228,236,238,239,241,244,245,256,257,258,260,263,265,266,267,268,270,272,276,278,280,286,288],differenti:[89,267],difficult:[21,95,128,224],dig:[7,246],digit:[22,134,186,274],dioxid:272,dir:[27,136,152,154,155,156,161,162,164],direct:[10,20,27,187,214,223,268],direct_addr:[252,253],directli:[7,11,14,18,36,152,192,193,205,222,225,252,254,263,265,266,275,278],directori:[1,4,6,7,8,10,11,12,34,35,37,41,43,45,50,55,57,59,60,80,82,83,88,93,94,95,129,134,136,154,155,156,159,160,161,164,165,166,167,169,171,172,189,191,231,235,240,244,245,254,255,257,258,259,260,261,265,266,267,268,273,274,275,276,280,282,283,285,286,288,290],dirent:[136,154,155,156,161,162,164],dirnam:[154,155,156,161,164],dirti:235,disabl:[6,20,22,24,30,86,130,151,179,186,190,193,205,207,208,214,222,224,225,236,250,263,266,275,276,277,280,287],disable_auto_eras:135,disallow:[20,173],disbl:214,disc_mod:250,discard:[179,266],disciplin:245,disclaim:[7,11,55,244],disconnec:27,disconnect:[27,250],discontigu:128,discov:[22,27,28,245],discover:[27,29,133,212,247,279],discoverable_mod:247,discoveri:[28,132,134,136,245,250,255],discret:[173,174],discuss:[10,89,94,207,222,247,276],disjoint:20,disk:[7,128,140,152,153,167,169,173,174],disk_nam:152,disk_op:136,disk_regist:[136,152],dispatch:[92,225,238],displai:[1,6,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,66,69,71,72,73,76,77,80,81,82,134,181,225,245,260,262,273,275,277,282,283,286],displayonli:27,displayyesno:27,dist:[57,80],distanc:[21,223],distinct:22,distribut:[1,4,6,20,21,27,55,101,128,267,273,274],distro:6,div0:67,dive:89,divid:[18,20,67,129,131,173,174,222],dle:27,dll:[257,259,262,274],dm00063382:235,dma:134,dndebug:50,dnrf52:93,do_task:223,doc:[4,6,7,10,23,33,63,242,254,255,258],docker:[3,7,254,290],dockertest:2,document:[1,4,8,12,14,18,20,23,25,59,62,64,93,97,101,137,151,152,162,180,181,183,222,231,235,239,241,246,249,251,252,253,254,257,259,265,266,267,276,280,283,284,287,288],doe:[7,20,22,35,50,61,66,71,87,89,90,92,93,94,99,100,128,130,132,134,140,157,161,169,170,173,174,176,179,187,190,195,205,207,208,210,220,223,224,225,236,238,239,241,244,247,254,257,258,259,261,262,263,269,280,285],doesn:[8,10,20,32,97,128,136,157,169,170,222,226,240,241,244,245,247],doing:[88,100,134,241,249,256,273],domain:2,don:[1,10,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,87,89,129,137,140,163,171,235,249,251,252,253,267,273,274],done:[6,7,8,23,25,55,81,91,92,93,100,128,130,140,141,160,161,175,194,195,211,227,228,230,235,236,239,241,245,251,252,253,254,257,258,259,262,266,274,280,287,288],dont:287,doorbel:55,dop:152,doubl:[2,199,260],doubli:179,doubt:251,down:[1,12,61,80,82,186,222,236,258,260,286],downgrad:[6,7],download:[1,2,4,7,10,12,29,39,41,42,55,58,59,60,70,71,81,82,83,152,195,242,244,245,254,257,258,259,260,261,265,266,269,273,280,282,283,284,286,287,288],doxygen:[4,7,88,129,254,258],doxygengroup:[88,129],dpidr:261,dpkg:[57,60,80,83],drag:20,drain:24,draw:24,drive:[9,61,100,134,187],driver:[7,55,135,136,152,181,185,186,188,190,192,193,207,209,211,223,244,254,257,258,259,260,261,266,276,280,286,287],drop:[10,12,26,179,193,258,260,286],dsc:249,dsimmon:273,dsize:89,dst:[45,50,70,89,171,184,198],dsym:[55,61],dtest:50,due:[20,90,128,135,140,151,191,254,258,260],dummi:179,dump:[129,287],dumpreg:276,duplex:21,duplic:[27,89],durat:[19,27,30,100,249,276],duration_m:[252,253],dure:[20,22,71,85,93,97,99,128,130,161,179,196,207,222,225,231,241,244,249,256,275,278],duti:[21,31],dwarf:61,dylib:4,dynam:[88,90],e407:[260,286],e407_:260,e407_devboard:[53,260,286],e407_devboard_download:260,e407_sch:286,e761d2af:[272,274],e_gatt:251,eabi:[4,7,12,93,101,254,280,287,288],each:[1,2,10,11,12,19,20,21,22,23,28,32,43,48,49,50,61,62,64,66,73,77,87,89,90,92,93,98,100,128,130,134,154,155,156,161,162,164,166,173,174,175,179,181,186,205,206,208,209,210,211,212,214,218,219,222,223,225,236,238,241,249,250,251,252,253,254,265,267,276,278,279,280,290],ead:152,eager:3,earlier:[10,30,57,58,59,80,81,82,169,249,252,253,272,273,274,287],eas:135,easi:[1,2,3,8,9,134,181,187,223,224,226,242,257,274,275],easier:[24,93,273],easiest:273,easili:[9,171,209,225,280],east:100,eavesdropp:19,ecdsa256:128,ecdsa:128,echo:[12,60,64,78,80,81,82,83,130,131,133,236,266,273,283,284,286],echocommand:12,eclips:12,ectabl:[252,253],edbg:[2,254],eddyston:[27,255],eddystone_url:[27,29],edg:186,edit:[7,94,151,235,240,262,263,267,278],editign:242,editor:[59,61,235,240,258],ediv:27,edr:[20,29,245],edu:[257,287],ee02:262,eeirili:272,eeprom:135,effect:[98,100,129,152,173,174],effici:[21,31,89,90,179,254],eid:252,eight:[132,168],einval:86,eir:29,eir_len:245,either:[1,4,6,11,21,27,29,30,57,59,61,80,84,85,87,89,90,99,129,130,131,137,140,166,186,187,190,191,222,225,226,229,230,236,252,253,262,273,274,282],elaps:[20,86,100],electron:290,element:[39,53,55,57,58,59,89,90,99,128,129,139,140,141,142,145,147,148,179,199,214,241],elev:91,elf:[7,12,34,38,48,55,61,71,222,235,236,244,245,248,254,256,257,258,259,260,261,262,265,266,273,274,276,280,283,284,286,287,288],elfifi:71,elicit:222,els:[23,85,97,128,154,155,156,161,164,179,208,222,272,273,274,287],elsewher:[246,249,267],emac:273,email:[3,234,290],emb:135,embed:[1,3,4,12,39,55,57,58,59,101,128,173,190,234,235,254,260,280,287,288],emit:[55,61],emploi:21,empti:[50,89,99,140,167,179,225,229,243,251,265],emptiv:9,emul:[262,266,278],enabl:[1,8,9,24,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,62,73,76,77,78,87,93,129,130,131,132,134,135,151,181,186,190,194,205,207,208,209,211,212,213,219,224,225,235,238,239,244,247,250,255,264,271,272,273,274,278,282,285,287,288,290],enc:[198,200,201,203],enc_chang:250,encapsul:21,encod:[7,51,130,132,133,200,201,202,203,212,214,218,262,265,275,279,280],encoding_cborattr:222,encoding_tinycbor:222,encompass:[14,20],encount:[7,10,20,57,89,150,179,241],encourag:134,encrypt:[20,22,27,30,173,248,250],encrypt_connect:20,end:[9,20,28,30,55,89,128,140,158,168,170,179,187,204,225,233,243,244,262,273],endian:[23,61,89,128,190,262],endif:[219,223,225,232,233,256,265,273,274,280],energi:[9,21,22,89,255,290],english:128,enjoi:274,enough:[55,89,96,128,156,195,198,273],enqueu:[89,192],ensur:[11,12,21,59,89,93,97,100,101,156,181,187,222,223,224,225,236,238,239,241,245,249,255,266,267,268,276,279,282,285],entail:222,enter:[12,22,47,93,214,220,221,223,241,254,256,258,276,280],entir:[2,89,90,93,128,173,174,179,241,251,273],entireti:171,entiti:[43,246],entri:[20,22,72,129,140,141,142,145,148,150,154,155,156,161,164,171,173,174,179,204,208,214,219,222,251,277],enumer:[128,183,191,206],environ:[3,4,9,12,55,58,59,61,82,96,101,134,190,233,245,284],eof:[57,80],ephemer:252,epoch:100,equal:[29,72,89,179,205,224,225,226],equat:29,equival:[46,61,135,160,181,274,290],eras:[10,71,128,135,136,140,149,173,174,177,179,184,254,258,259,260,262,274],erase_sector:260,err:[97,159,204,208,217,218,223,272,274],error:[1,2,4,6,7,20,21,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,86,89,91,92,93,97,98,135,136,153,154,155,156,157,159,160,161,163,164,166,167,168,169,170,171,172,173,176,177,178,182,186,187,190,192,193,208,222,225,247,249,250,251,254,257,258,260,261,262,265,266,268,272,273,274,275,278,280,286],error_rsp_rx:[76,236],error_rsp_tx:[76,236],error_stat:223,escap:[266,280,287],especi:100,essenti:[43,61,225,241],establish:[20,27,78,236,238,247,248,250,257,259,262,274],estim:89,etc:[1,21,24,26,36,43,57,80,89,90,92,95,96,128,132,134,181,182,193,197,241,243,250,273,274],ethernet:[134,181],etyp:274,eui:262,eul:276,euler:276,ev_arg:[84,87,97,130],ev_cb:[84,87,89,130,238],ev_queu:87,eval:[259,274],evalu:[12,86,100,224,225,259,262,267,274],evalut:100,even:[4,10,86,89,96,128,151,179,193,199,211,222,272,274,278],event:[20,24,25,27,84,89,92,97,99,130,134,205,211,214,216,223,225,236,241,245,247,248,252,253,272,273,274,278,280,290],event_q:274,event_queu:130,eventq:[89,272,273],eventq_exampl:238,eventu:[4,99,100,179],ever:[89,90,128,140],everi:[1,32,61,97,98,99,134,150,179,190,250,252,254,256,268,273,280],everyon:[10,241],everyth:[1,93,97,222,241,265,266,273],evq:[84,87,89,216],evq_own:87,evq_task:87,exact:[96,128,186,192,223],exactli:[89,93,98,157,170,225],examin:[192,247,249,284],exampl:[1,2,3,6,7,9,12,22,23,24,25,30,31,55,57,58,59,60,61,62,64,80,82,83,89,90,91,93,94,96,97,98,99,100,101,128,130,133,152,173,174,180,183,186,187,188,205,207,208,209,210,214,219,222,223,234,235,236,241,243,245,246,250,254,256,258,262,265,266,267,268,269,273,275,276,277,278,279,280,283,284,286,287,288,290],example1:89,example2:89,exce:[179,215,219,287],exceed:20,except:[7,51,87,128,223,247,252,253,273,274],excerpt:[130,206,207,208,219,224,225,249,251,278],exchang:[14,21,22,27,28],excit:[7,235,244],exclud:[51,128,222,276],exclus:[22,91,98,206],exe:[12,59,60,82,83],exec_write_req_rx:[76,236],exec_write_req_tx:[76,236],exec_write_rsp_rx:[76,236],exec_write_rsp_tx:[76,236],execut:[1,2,7,11,12,30,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,67,80,82,85,87,90,92,93,96,99,101,133,136,137,139,190,195,216,225,229,231,232,236,241,247,249,250,251,252,253,256,265,273],exhaust:[20,97,140,179],exisit:27,exist:[2,10,20,24,29,41,46,49,50,71,94,140,146,151,157,159,160,161,166,167,169,170,172,173,176,177,179,186,206,208,213,225,228,240,248,254,257,258,259,260,261,266,268,273,274,275,277,278,279,280,282,283,285,286,287,288,290],exit:[8,80,257,259,262,273,274,287],expect:[6,20,43,61,84,92,97,129,130,134,222,226,227,228,229,230,241,245,252,253,262,265],experi:[22,263,276],experiment:99,expertis:267,expir:[84,86,87,192,194,238],expire_msec:194,expire_sec:194,expiri:[84,192],explain:[4,12,98,236,243,244,245,252,253,255,266,268,282,285,290],explan:[34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,152,247],explanatori:[30,94,252,253],explic:276,explicit:265,explicitli:247,explor:[128,222,249,282],expos:[1,14,21,92,133,173,174,175,209,214,225,246,251],express:[23,168,225,226,251,273,274],ext:[12,258],ext_bynam:211,ext_bytyp:211,extend:[20,29,30,89,90,274,277,279],extended_dur:27,extended_period:27,extens:[21,30,137,262],extent:[254,280,287,288],extern:[12,29,40,93,97,134,135,175,181,186,205,223,231,267,268,274,287,288],extra:[38,42,47,89,134,152,190,239,242,247,280,287],extra_gdb_cmd:61,extract:[4,11,58,59,60,82,83,190,235,257],extrajtagcmd:[38,42,47],extrem:9,eyes:226,f401re:53,f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42:283,f4discoveri:258,f_activ:140,f_active_id:140,f_align:140,f_close:[162,180],f_closedir:[162,180],f_dirent_is_dir:[162,180],f_dirent_nam:[162,180],f_filelen:[162,180],f_getpo:[162,180],f_magic:140,f_mkdir:[162,180],f_mtx:140,f_name:[162,180],f_oldest:140,f_open:[162,180],f_opendir:[162,180],f_read:[162,180],f_readdir:[162,180],f_renam:[162,180],f_scratch:140,f_scratch_cnt:140,f_sector:140,f_sector_cnt:140,f_seek:[162,180],f_unlink:[162,180],f_version:140,f_write:[162,180],face:222,facil:[19,101,231,238],fact:[135,267],factor:9,factori:261,fail:[20,42,57,80,89,97,140,143,160,161,173,179,226,227,228,230,244,250,257,258,261,262,265,267,274,287],fail_msg:226,failov:222,failur:[20,84,89,97,99,100,128,136,141,142,143,145,146,148,149,150,152,153,154,156,157,159,160,163,166,167,168,169,170,171,172,176,177,178,182,186,187,190,192,193,194,215,217,218,219,226,232,233,249,250,251,265],fair:89,fairli:[24,55,61,89,98],fall:[96,101,186,290],fallback:27,fals:[90,222,224,226],famili:[4,101,135,151,245],familiar:[3,12,225,235,236,243,244,246,273,274,280,287,290],fanci:99,faq:[11,13],far:[244,280],fashion:[92,140,179,235],fast:273,fat2n:[7,61],fatf:[7,136,151,152],fault:130,favorit:[235,240],fcb:[7,129,141,142,143,144,145,146,147,148,149,150,205],fcb_append:[140,142,143],fcb_append_finish:[140,141],fcb_append_to_scratch:141,fcb_entri:[140,141,142,145,150],fcb_err_nospac:141,fcb_err_novar:145,fcb_getnext:140,fcb_init:140,fcb_log:205,fcb_rotat:[140,141],fcb_walk:140,fcb_walk_cb:150,fda_id:179,fe80:287,fe_area:[140,145,150],fe_data_:140,fe_data_len:[140,145,150],fe_data_off:[140,145,150],fe_elem_:140,fe_elem_off:140,feat:274,featur:[1,3,11,19,20,30,90,96,99,140,152,173,214,222,225,234,247,262,276,282],feedback:[235,240,255,274],feel:3,femal:286,fetch:[1,12,40,57,80,236,238,239,245,255,267,268,273,282,285],few:[1,6,14,25,31,55,61,90,93,94,223,244,249,252,262,265,274,290],ffconf:151,ffffffff:260,ffs2nativ:[7,61],fhss:21,ficr:23,fictiti:[267,268],fie_child_list:179,field:[20,27,84,85,89,93,128,130,175,187,200,202,206,207,208,214,219,222,223,225,247,249,251,252,253,267,268,276,278],fifo:140,figur:[89,128,129,140],file:[1,2,4,6,7,10,11,12,34,36,37,41,43,46,48,50,55,57,58,59,60,61,64,70,71,80,81,82,83,94,95,96,101,128,129,130,134,173,183,186,188,195,205,206,207,210,211,214,222,224,225,229,231,235,236,238,240,242,244,245,251,254,256,257,258,260,261,262,263,265,266,267,269,273,274,276,284,288],file_nam:61,filenam:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,70,71,93,151,156,160,162,166,169,173,179,222,245,273],filesystem:[55,129,151,195],fill:[10,48,95,99,140,141,143,145,146,182,198,199,244,249,252,253,265,273,274],filter:[2,22,27,30,72,254],find:[1,2,3,20,28,34,55,61,88,89,94,96,129,146,181,211,223,224,228,234,235,244,245,254,257,258,261,266,280,283,286,287,288,290],find_info_req_rx:[76,236],find_info_req_tx:[76,236],find_info_rsp_rx:[76,236],find_info_rsp_tx:[76,236],find_type_value_req_rx:[76,236],find_type_value_req_tx:76,find_type_value_rsp_rx:76,find_type_value_rsp_tx:76,fine:[9,252,253],finish:[4,98,99,141,179,193,262,273],fip:21,fire:[84,192,194,241,248,280],firmwar:[128,152,236,257,259,262,266,273,274,287,288],first:[2,3,6,8,12,21,22,29,33,57,58,59,60,63,82,83,84,87,89,90,91,93,99,100,101,128,129,140,168,173,174,179,180,183,190,197,199,211,214,222,225,235,236,241,243,246,247,248,249,251,252,253,255,256,262,266,272,273,274,276,280,282,285,290],fit:[4,89,100,171,179,247,248,263],five:[20,21,22,157,170,236],fix:[6,10,11,90,100,128,269],fl_area:141,fl_data_off:141,flag:[1,6,12,27,29,55,57,58,59,61,62,64,80,81,82,89,94,99,128,160,222,239,245,249,251,272,273,276,283,286],flash0:152,flash:[1,9,39,43,48,55,57,58,59,61,95,96,129,134,141,142,146,152,174,176,177,180,181,185,186,188,195,205,222,225,236,254,258,259,260,262,263,274],flash_area:[140,150],flash_area_bootload:[93,128,176,177,224,225],flash_area_image_0:[93,128,176,177],flash_area_image_1:[93,128,176,177,225],flash_area_image_scratch:[93,128,176,177,224],flash_area_nff:[176,177,224,225],flash_area_noexist:224,flash_area_read:[140,145,150],flash_area_reboot_log:[224,225],flash_area_to_nffs_desc:[176,177],flash_area_writ:[140,141],flash_area_x:140,flash_id:[135,182,184],flash_map:[7,129,176,177,182,224,225],flash_map_init:225,flash_own:[224,225],flash_spi_chip_select:186,flash_test:[7,130],flat:[89,199,205],flavor:254,flexibl:[89,96,234,247,267,268],flg:273,flight:89,float_us:275,flood:31,flow:[21,130,193,245,252,253],flow_ctl:193,fly:190,fmt:130,focu:241,folder:[4,10,12,33,55,59,63,240,257],follow:[1,2,3,4,6,7,8,10,11,12,19,20,21,23,24,26,27,29,30,31,32,37,38,43,50,51,55,57,58,59,60,61,64,66,67,71,72,73,77,78,80,81,82,83,89,91,93,94,96,98,99,100,101,128,130,131,133,134,135,136,140,152,160,167,168,169,173,174,175,179,180,181,187,189,190,200,202,205,206,207,208,209,211,212,222,223,224,225,226,227,228,229,230,231,235,236,238,239,240,241,244,245,246,247,249,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,269,272,273,274,275,276,277,278,279,280,282,283,285,286],foo:129,foo_callout:129,foo_conf_export:129,foo_conf_set:129,foo_val:129,footer:[128,256],footprint:[9,132,134],fop:165,fopen:160,forc:[41,49,52,89,222],forev:[87,91,98,99,160,161,233],forgeri:22,forget:[80,160,161,235,272,273,274],forgot:273,fork:10,form:[1,19,22,23,26,66,89,99,179,225,249,250,252,262,265,267],formal:[7,20],format:[8,29,50,66,68,71,72,89,130,132,151,152,173,176,177,197,198,199,206,223,225,226,229,245,252,256,266,267,268,276,283,286],former:179,formula:[3,60,83],forth:[129,199],fortun:55,forver:27,forward:[100,247],found:[1,20,33,55,63,90,93,148,173,179,199,245,250,251,252,254,258,260,286],foundat:[4,21,31,132,254,260,267,273,274,280,287,288],four:[19,22,47,128,168,172],fraction:[100,265],frame:[214,217,218,241,262],framerwork:131,framework:[21,28,97,132,206,212,213,231,232,245,275,276,277,280,281,282],frdm:53,free:[2,4,73,88,89,90,140,179,215,219,222,248,250,254,260,280,284,287,288],freebsd:101,freed:[89,90,179],freedom:[250,252,253],freq_hz:192,frequenc:[21,24,86,93,97,100,134,181,189,192,194,223,241,262],frequent:[10,19,21,22,97,252,253,280],freshli:89,friend:31,friendli:134,from:[1,4,6,7,8,9,10,11,12,19,20,22,23,26,27,30,31,32,35,36,38,39,41,43,44,45,46,47,49,50,51,55,56,60,61,62,64,65,66,68,69,70,71,72,73,76,77,79,83,84,85,86,87,88,89,90,92,93,94,95,96,99,100,101,128,129,131,132,133,135,136,137,139,140,146,152,153,154,155,156,160,161,162,163,164,166,168,169,171,176,177,179,180,182,186,187,190,192,193,195,198,199,205,206,207,208,209,210,211,212,213,214,216,217,222,223,224,225,226,227,228,230,231,233,235,236,238,239,241,243,244,245,246,249,250,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,276,280,282,283,284,286,287,288],front:[89,179],fs_access_append:160,fs_access_read:[153,160,163,168],fs_access_trunc:[157,160,166,169,170],fs_access_writ:[157,160,166,169,170],fs_cli:7,fs_cli_init:215,fs_close:[157,160,163,166,168,169,170,171,172],fs_closedir:[136,161],fs_dir:[152,154,155,156,161,162,164],fs_dirent:[7,152,154,155,156,161,162,164],fs_dirent_is_dir:[154,156,161,164],fs_dirent_nam:[136,154,155,161,164],fs_eaccess:167,fs_ealreadi:172,fs_ecorrupt:[167,176,177],fs_eempti:167,fs_eexist:[165,167],fs_eful:167,fs_ehw:167,fs_einval:167,fs_enoent:[136,154,155,156,161,164,166,167],fs_enomem:167,fs_eo:167,fs_eoffset:167,fs_eok:167,fs_eunexp:167,fs_euninit:167,fs_fcb:222,fs_file:[7,152,153,157,158,160,162,163,166,168,169,170],fs_filelen:170,fs_if:[162,180],fs_ls_cmd:215,fs_ls_struct:215,fs_mkdir:[7,172],fs_mount:7,fs_name:152,fs_nmgr:7,fs_op:[165,180],fs_open:[153,157,163,166,168,169,170,171,172],fs_opendir:[136,154,155,156,164],fs_read:[153,160,168,171],fs_readdir:[136,154,155,156,161],fs_regist:180,fs_unlink:159,fs_write:[157,166,172],fssl:[11,58],fsutil:[7,152],fsutil_r:152,fsutil_w:152,ftdichip:245,fulfil:249,full:[1,7,8,20,21,28,30,48,55,93,128,129,135,141,156,160,166,167,179,182,195,205,214,222,224,225,236,240,244,247,250,251,256,273,274,276,280,290],fuller:179,fulli:[9,21,128,173,174,179,222,244,253,267,268,274],fun:[235,273],func:[89,97,99,129,187,192,194],fundament:[1,290],funtion:199,further:[6,93,97,187],furthermor:[92,128,173,174,179,222,241,252,253],fuse:55,futur:[84,89,179,187,206,214,225,262,267,268,269],g_bno055_sensor_driv:208,g_bno055stat:208,g_led_pin:[240,241,256],g_mbuf_buff:89,g_mbuf_mempool:89,g_mbuf_pool:89,g_mystat:223,g_nmgr_shell_transport:217,g_os_run_list:85,g_os_sleep_list:85,g_stats_map_my_stat_sect:223,g_task1_loop:256,gain:[91,98,180,244,274],gap:[18,19,20,21,30,179,246,249,251,273,274,275],garbag:140,gatewai:262,gatt:[14,18,21,27,30,31,32,246,249,251,273,274,275],gatt_acc:249,gatt_adc_v:274,gatt_co2_v:272,gatt_co2_val_len:272,gatt_srv:274,gatt_srv_sns_access:274,gatt_svr:[251,272,274,276],gatt_svr_chr_access_gap:[249,251],gatt_svr_chr_access_sec_test:[251,272],gatt_svr_chr_sec_test_rand_uuid:[251,272],gatt_svr_chr_sec_test_static_uuid:[251,272],gatt_svr_chr_writ:[272,274],gatt_svr_register_cb:251,gatt_svr_sns_access:[272,274],gatt_svr_svc:[249,251,272],gatt_svr_svc_adc_uuid:274,gatt_svr_svc_co2_uuid:272,gatt_svr_svc_sec_test_uuid:[251,272],gaussian:21,gavin:58,gc_on_oom_test:265,gc_test:265,gcc:[4,7,57,101],gcc_startup_:93,gcc_startup_myboard:93,gcc_startup_myboard_split:93,gcc_startup_nrf52:[93,257,259,280],gcc_startup_nrf52_split:[257,259,261,262,280],gdb:[4,7,12,38,47,61,62,93,241,244,254,256,257,258,260,261,274,280,287,288],gdb_arduino_blinki:12,gdbmacro:7,gdbpath:12,gdbserver:6,gear:101,gen:[27,30],gen_task:238,gen_task_ev:238,gen_task_prio:238,gen_task_stack:238,gen_task_stack_sz:238,gen_task_str:238,gener:[1,11,15,16,17,18,19,20,21,23,27,28,29,31,34,35,43,55,61,62,87,89,90,91,93,99,128,136,173,174,186,199,222,224,227,228,230,235,236,239,240,241,242,244,245,247,248,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,272,273,276,280,283,286,287,288],get:[2,4,6,7,8,9,10,11,23,55,56,58,59,60,61,64,76,79,81,82,83,85,87,89,90,91,92,93,95,96,97,98,99,100,128,129,133,134,140,150,157,160,163,166,171,179,182,186,190,192,199,206,210,212,222,225,226,235,238,240,241,243,245,247,249,251,252,253,254,255,257,258,260,261,262,265,266,272,273,274,279,280,286,290],gettng:263,gfsk:21,ggdb:6,ghz:[21,266],gist:[134,186],gister_li:210,git:[11,55,58,80,81,82,101,254,266,267,268,269],github:[1,7,10,11,33,55,57,58,59,63,80,81,82,101,183,235,254,266,267,268,269,273,274,282],githublogin:269,githubpassword:269,githubusercont:[11,57,58,59,80,81,82],give:[55,186,222,235,241,244,252,253,262,267,268,274],given:[12,20,42,84,86,87,89,90,96,99,100,128,136,139,145,146,152,182,186,190,192,193,199,206,210,211,241,268],glanc:247,glibc:57,global:[1,29,62,89,90,91,175,205,206,208,223,231,249,273],gmt:100,gnd:[8,262,274,276,286],gnu:[3,4,12,38,47,254,258,260,261,280,287,288],goal:[55,101,285],gobjcopi:6,gobjdump:6,gobl:81,goe:[61,231,265,273],going:[96,222,252,256,273,274],golang:[11,59,82],gone:248,good:[7,9,22,55,91,93,97,128,151,222,244,247,253,262,273],googl:[252,282],gopath:[11,57,58,59,60,80,81,82,83],got:[272,273,274],govern:[273,274],gpg:[57,80],gpio:[8,96,134,188,190,193,238],gpio_ev:238,gpio_l:238,gpl:[4,254,258,260,261,280,287,288],gplv3:[254,260,280,287,288],gpo:181,grab:88,gracefulli:233,graduat:274,grain:9,grant:91,granular:100,graph:[1,50,62,274],graviti:276,great:[8,21,128,224,240,273,274],greater:[21,29,89,179,224],greatest:[128,179],green:[2,10,12,254,258,259,266,276,283],grid:55,ground:[274,276],group:[2,10,20,76,131,134,214,223,225,236,262],grow:[53,241],guarante:[89,90],guard:92,guid:[7,11,12,18,59,62,64,82,208,209,225,236,238,241,246,251,253,263,265,267,283,286],guinea:242,gyro:276,gyro_rev:276,gyroscop:[206,276],h_mynewt_syscfg_:225,hack:[7,9,12,235,240,274],had:[89,92,128,222],hal:[1,7,9,48,55,61,86,95,134,135,176,177,180,181,187,190,192,193,208,238,244,254,258,260,274,276,280,290],hal_bsp:[7,93,134,185,207,254,257,258,260,273,278],hal_bsp_core_dump:182,hal_bsp_flash_dev:[93,135,182,185],hal_bsp_get_nvic_prior:182,hal_bsp_hw_id:182,hal_bsp_init:[182,207],hal_bsp_max_id_len:182,hal_bsp_mem_dump:182,hal_bsp_power_deep_sleep:182,hal_bsp_power_off:182,hal_bsp_power_on:182,hal_bsp_power_perus:182,hal_bsp_power_sleep:182,hal_bsp_power_st:182,hal_bsp_power_wfi:182,hal_common:[7,244,258,260],hal_debugger_connect:191,hal_flash:[7,93,135,152,182,185,254,258,260],hal_flash_align:184,hal_flash_eras:184,hal_flash_erase_sector:184,hal_flash_init:184,hal_flash_ioctl:184,hal_flash_read:184,hal_flash_writ:184,hal_gpio:[7,136,183,186,238],hal_gpio_init_in:186,hal_gpio_init_out:[99,186,238,240,241,256],hal_gpio_irq_dis:186,hal_gpio_irq_en:[186,238],hal_gpio_irq_handler_t:186,hal_gpio_irq_init:[186,238],hal_gpio_irq_releas:186,hal_gpio_irq_trig_t:186,hal_gpio_irq_trigg:186,hal_gpio_mode_:186,hal_gpio_mode_in:186,hal_gpio_mode_nc:186,hal_gpio_mode_out:186,hal_gpio_mode_t:186,hal_gpio_pul:186,hal_gpio_pull_down:186,hal_gpio_pull_non:186,hal_gpio_pull_t:186,hal_gpio_pull_up:[186,238],hal_gpio_read:186,hal_gpio_toggl:[99,186,238,240,256],hal_gpio_trig_both:186,hal_gpio_trig_fal:186,hal_gpio_trig_high:186,hal_gpio_trig_low:186,hal_gpio_trig_non:186,hal_gpio_trig_ris:[186,238],hal_gpio_writ:[183,186,241],hal_i2c_begin:187,hal_i2c_end:187,hal_i2c_init:187,hal_i2c_master_data:187,hal_i2c_master_prob:187,hal_i2c_master_read:187,hal_i2c_master_writ:187,hal_i2c_prob:187,hal_i2c_read:187,hal_i2c_writ:187,hal_os_tick:[189,257,280],hal_reset_brownout:191,hal_reset_caus:[191,278],hal_reset_pin:191,hal_reset_por:191,hal_reset_reason:191,hal_reset_request:191,hal_reset_soft:191,hal_reset_watchdog:191,hal_rtc:151,hal_spi:[136,190],hal_spi_abort:190,hal_spi_config:190,hal_spi_data_mode_breakout:190,hal_spi_dis:190,hal_spi_en:190,hal_spi_init:[136,190],hal_spi_lsb_first:190,hal_spi_mod:190,hal_spi_mode0:190,hal_spi_mode1:190,hal_spi_mode2:190,hal_spi_mode3:190,hal_spi_moden:190,hal_spi_msb_first:190,hal_spi_set:[135,190],hal_spi_set_txrx_cb:190,hal_spi_slave_set_def_tx_v:190,hal_spi_tx_v:190,hal_spi_txrx:190,hal_spi_txrx_cb:190,hal_spi_txrx_noblock:190,hal_spi_type_mast:190,hal_spi_type_slav:190,hal_spi_word_size_8bit:190,hal_spi_word_size_9bit:190,hal_system:191,hal_system_clock_start:191,hal_system_reset:191,hal_system_restart:191,hal_system_start:191,hal_tim:[86,192],hal_timer_cb:[86,192],hal_timer_config:192,hal_timer_deinit:192,hal_timer_delai:192,hal_timer_get_resolut:192,hal_timer_init:192,hal_timer_read:192,hal_timer_set_cb:192,hal_timer_start:192,hal_timer_start_at:192,hal_timer_stop:192,hal_uart:273,hal_uart_blocking_tx:193,hal_uart_clos:193,hal_uart_config:[193,273],hal_uart_flow_ctl:193,hal_uart_flow_ctl_non:[193,273],hal_uart_flow_ctl_rts_ct:193,hal_uart_init:193,hal_uart_init_cb:[193,273],hal_uart_par:193,hal_uart_parity_even:193,hal_uart_parity_non:[193,273],hal_uart_parity_odd:193,hal_uart_rx_char:193,hal_uart_start_rx:193,hal_uart_start_tx:[193,273],hal_uart_tx_char:193,hal_uart_tx_don:193,hal_watchdog_en:194,hal_watchdog_init:194,hal_watchdog_tickl:194,hal_xxxx:181,half:[16,17,93,100],halfwai:128,halgpio:186,halsystem:191,halt:[92,189,190,254,258,260],haluart:193,hand:[222,235,241,265],handbook:[257,261],handi:[93,274],handl:[17,20,27,28,30,61,89,101,134,135,136,152,153,154,155,156,160,161,164,169,170,171,172,179,205,209,210,214,236,238,248,249,250,272,273,274,280],handler:[87,92,93,131,186,210,212,215,217,219,220,238,241,272,273,274,275],happen:[9,20,26,129,140,179,248,251,252,253,254,266,268],happi:[7,9],har:286,hard:[97,130],hardcod:[25,27],hardwar:[2,3,5,6,7,9,20,21,24,25,31,34,86,93,95,96,128,134,173,174,179,182,183,184,185,186,187,189,191,192,193,194,208,222,225,238,241,244,245,252,253,254,256,257,258,259,263,266,267,273,280,290],harm:128,has:[2,3,4,7,10,11,12,20,22,24,26,30,34,36,43,50,55,57,58,59,61,62,77,80,81,82,84,85,86,87,88,89,90,92,93,96,97,98,99,128,129,130,132,134,138,140,152,153,165,169,173,179,186,187,190,192,193,195,208,210,222,223,225,231,233,236,239,241,242,249,250,251,254,256,257,258,262,265,266,267,268,272,273,279,280,287,288,290],hash:[34,37,43,46,71,128,179,222,239,283,286],have:[1,2,3,6,7,8,9,11,12,19,20,22,24,30,32,43,50,52,54,55,57,58,59,60,61,62,64,80,81,82,83,84,87,89,90,92,93,95,96,97,98,99,101,128,130,132,134,135,137,140,143,173,174,179,181,185,186,192,193,214,220,222,223,224,225,234,235,236,238,239,240,242,243,244,245,248,249,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,270,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],haven:[3,136,234,268,273,274,290],hci1:245,hci:[21,243],hci_adv_param:247,hci_common:236,hdr:[128,226],hdr_ver:197,head:[11,58,80,81,82,87,89,210,242],header:[1,37,39,46,55,57,58,59,61,93,128,132,140,141,179,183,186,205,207,225,231,236,256,273,274],heading1:242,heading2:242,heading5:242,headless:2,health:252,heap:[90,92,93],heart:241,held:267,hello:[12,69,157,170,193,236,255,266,283,284,286,290],help:[1,8,12,31,34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,67,68,69,70,71,72,73,74,75,76,77,80,81,82,92,94,95,100,134,199,219,222,224,241,242,243,244,247,254,256,257,259,262,263,265,266,269,273,274,276,280,287,288],helper:[1,61,89,94,135,252,253],henc:[128,234],her:92,here:[1,3,8,10,11,29,32,55,73,76,77,84,87,89,90,93,94,97,99,129,130,140,156,157,160,163,171,173,186,190,199,205,206,208,214,222,223,224,225,232,234,235,238,242,245,249,251,252,253,254,256,257,258,261,262,265,266,267,268,273,274,284,290],hertz:86,hex:[7,37,43,48,71,187,222,260,262,272,280],hexidecim:66,hfxo:24,hidapi:4,hidraw:4,hierarchi:[152,225,231],high:[9,18,21,64,86,98,134,186,238,241,287],high_duti:27,higher:[11,14,20,21,55,58,59,72,80,81,82,91,92,98,99,181,205,211,224,225,234,241,245,265,268],highest:[85,91,92,99,224,225,241],highli:234,highlight:[2,6,30,101,235,254,257,259,261,266,274,275,280],hint:55,his:92,histori:224,hit:[36,256],hl_line:[207,208],hog:241,hold:[33,43,63,89,90,156,187,198,208,214,235,241,262,267,274],hole:[179,274],home:[7,11,59,93,222,244,256,265,269,273],homebrew:[4,6,7,11,36,56,60,79,83],homepag:[1,43,61,130,265,273,274],hook:[97,260,273,286],hop:[21,134],host:[7,9,21,22,23,26,29,30,66,70,71,84,87,89,128,212,242,244,245,249,250,251,254,265,266,273,274,275,279,280,287,288],hotkei:287,hour:100,how:[2,3,4,5,6,7,8,11,12,20,21,23,30,55,57,58,59,60,66,80,81,82,83,89,91,93,96,100,128,129,130,140,146,148,166,173,187,190,200,205,207,208,219,222,223,226,229,231,234,235,236,239,240,241,242,243,244,245,248,249,250,252,253,254,255,256,257,258,259,260,261,262,264,265,266,272,273,274,276,277,279,280,282,283,284,285,286,290],how_to_edit_doc:242,howev:[3,57,80,89,96,99,101,128,130,173,179,186,223,239,257,267],htm:245,html:[4,33,63,152,254,258,260,280,287,288],http:[1,4,10,11,12,33,39,55,57,58,59,61,63,80,81,82,101,130,137,183,235,245,252,254,257,258,260,261,265,267,269,273,274,280,286,287,288],httperror404:[57,80],hub:266,human:[245,267],hw_bsp_nativ:61,hw_drivers_nimble_nrf51:222,hw_hal:55,hw_mcu_nordic_nrf51xxx:222,hypothet:20,i2c:[8,134,135,181,276,277,280],i2c_0:[275,276,277,280],i2c_0_itf_bno:207,i2c_0_itf_li:207,i2c_num:187,i2s:254,i2s_callback:254,i386:[4,6],iOS:[248,272,274,275,277,279,282],ibeacon:[23,244,255,290],icon:[10,12],id16:251,id3:[33,63],id_init:225,idcod:254,idea:[61,89,91,97,247],ideal:21,ident:[18,20,22,23,27,30,66,89,101,133,222,223,231],identifi:[1,8,19,20,27,29,34,71,93,99,128,129,179,182,187,252,253,257,259,262,266,274,283,286],idl:[27,77,97,241,244,273,283,286],idx:[27,135,179],ietf:199,if_rw:133,ifdef:[222,225,232,256,280],ifndef:[225,273,274],ignor:[6,27,82,90,152,166,173,225,287],ih_flag:128,ih_hdr_siz:128,ih_img_s:128,ih_key_id:128,ih_mag:128,ih_tlv_siz:128,ih_ver:128,iii:128,illustr:[12,89,91,92,128,241,274,280],imag:[2,6,7,12,31,34,38,39,42,43,47,55,57,58,59,61,64,78,80,81,82,93,94,96,101,130,131,196,197,198,200,201,203,223,224,234,244,248,254,255,256,263,272,273,284,285,287,288,290],image_ec256:[254,257,258,259,260,261,262,266,276,283,284,286],image_ec:[7,254,257,258,259,260,261,262,266,276,283,284,286],image_f_ecdsa224_sha256:128,image_f_non_boot:128,image_f_p:128,image_f_pkcs15_rsa2048_sha256:128,image_f_sha256:128,image_head:128,image_header_s:128,image_mag:128,image_magic_non:128,image_ok:128,image_rsa:[7,254,257,258,259,260,261,262,266,276,283,284,286],image_tlv:128,image_tlv_:128,image_tlv_ecdsa224:128,image_tlv_rsa2048:128,image_tlv_sha256:128,image_valid:[7,254,258,259,261,266,276,283,284,286],image_vers:[128,197,198],img:[37,46,71,235,236,239,240,244,245,248,254,257,258,259,260,261,262,266,273,276,280,283,286,287,288],img_data:204,img_start:191,imgmgr:[7,130,131,152,195,225,236,274],imgmgr_max_ver_str:198,imgmgr_module_init:225,imgr_list:[200,201,203],imgr_upload:204,imgr_ver_jsonstr:198,immedi:[26,87,93,128,169,179,190,192,242,247,252,253],impact:[24,179],impl:61,implemen:66,implement:[9,10,21,32,61,66,87,89,90,93,95,96,128,129,130,131,151,152,173,179,181,183,185,186,187,188,189,190,191,195,199,206,207,209,211,213,214,220,225,231,238,246,249,251,252,262,265,274,275,276,280],impli:[252,253,265,268,273,274],implicit:265,impos:[128,173,174,179],imposs:[19,175],impract:251,impress:274,improv:256,imuplu:276,inc:[4,254,260,280,287,288],includ:[1,4,7,9,10,14,15,16,17,19,20,21,22,26,27,28,31,43,50,59,61,84,87,89,90,91,93,95,96,97,98,99,100,128,130,133,134,135,136,138,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,187,190,192,193,195,205,206,207,210,211,212,214,222,224,225,231,235,236,238,239,241,245,246,247,249,252,253,257,265,267,268,273,274,275,276,278,279,280,285,287],include_tx_pow:27,incom:[20,87,193,195,214,215,217,238],incompat:[57,80,267],incomplet:[29,93,159],incomplete_block_test:265,incorrect:[42,100],incr:182,increas:[21,22,89,179,214,215,219,225,241,287],increasin:140,increment:[89,100,129,179,223],incub:[7,55,183,225,235,274],inde:[92,260],indefini:[252,253],indent:6,independ:[22,96,128,134,181,182,184,186,187,189,191,192,193,194,225,273],indetermin:265,index:[31,72,128,245],indian:100,indic:[7,10,19,20,26,28,29,30,87,90,93,97,128,130,132,152,158,160,167,179,186,187,192,204,211,214,219,222,224,225,239,249,251,254,257,258,261,265,266,280,282],indirect:274,individu:[11,99,128,129,134,186,225,230,236,267],industri:[21,151],ineffici:179,infinit:[87,90,92,225,241,256],info:[39,57,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,90,99,140,141,145,219,239,250,254,258,260,261,266,272,274],inform:[1,6,7,12,20,22,23,27,29,34,37,39,40,57,58,59,61,62,64,66,71,80,81,82,87,89,90,93,95,96,99,100,128,132,133,145,179,205,206,208,209,219,222,223,225,234,235,238,239,241,244,247,250,251,252,253,254,256,262,267,268,269,273,274,276,280,283,286,288],infrastructur:244,ing:[134,252,253],inher:[1,23,249],inherit:[1,4,59,91,175,206],ininclud:223,init:[50,55,207,211,225,273,274],init_app_task:92,init_func_nam:225,init_funct:225,init_stag:225,init_task:[238,241],init_tim:[256,280],initi:[16,19,21,23,25,26,27,28,61,84,86,87,89,90,91,92,93,97,98,99,129,130,134,138,146,152,167,176,177,178,179,181,182,184,186,187,190,192,193,196,199,203,205,207,210,211,212,214,215,219,231,232,236,238,240,245,246,250,252,253,256,265,272,273,274,275,276,280],initialis:[208,254],inod:[173,175],inoper:[26,252,253],input:[20,22,27,100,134,181,186,190,238,260,265,287],inquiri:[20,29],insert:[99,179],insid:[24,89,92,161,182,256,260,265],insight:[134,241],inspect:[48,128,129,250],instal:[3,7,9,33,39,54,55,63,78,92,93,94,136,210,236,238,239,240,241,243,244,245,254,255,257,258,259,260,261,265,266,268,270,273,275,276,277,279,280,282,283,284,285,286,287,290],instanc:[2,3,9,27,62,89,175,176,177,179,205,223,247,252,253,254],instant:20,instantan:241,instanti:[92,134],instantli:98,instead:[7,11,12,24,87,90,98,128,130,222,225,236,238,248,254,256,257,258,259,260,261,265,269,272,273,274,275,278],instruct:[3,4,7,11,55,57,62,80,85,96,236,238,254,257,261,275,276,277,278,280,284,287,288],insuffici:[20,89,167],insur:[90,99],int16_t:100,int32_max:27,int32_t:[84,100,193,252,253],int64_t:100,int8:129,int_max:89,integ:[199,206,223,225],integr:[12,22,90,179,187,223],intellig:181,intend:[24,29,36,176,177,187,234],inter:[179,187,238],interact:[2,8,130,132,195,248,256,263,287],interchang:199,interconnect:[9,132],interdepend:[129,225],interest:[7,14,18,89,93,181,222,240,244,247,252,290],interfac:[4,18,21,30,31,89,99,128,133,134,135,136,151,152,181,182,184,186,187,189,190,191,193,194,205,208,209,235,243,245,246,254,258,260,273,276,277,280,286],intermedi:[159,160,166],intern:[7,20,89,92,93,97,134,135,140,167,176,177,178,185,192,194,195,199,215,219,254,274],internet:[7,12,21,236,238,239,245,255,266,282,285],interoper:[132,133],interpret:[137,139,206,210],interrog:274,interrupt:[86,87,93,128,182,186,189,190,192,193,274],interrupt_prior:274,interv:[20,27,29,97,99,206,210,211,238,276,280],interval_max:27,interval_min:27,intervent:96,intial:219,intiat:93,introduc:[1,30,179,224,225],introduct:[241,290],introductori:282,intuit:128,invalid:[20,86,128,136,142,152,153,167,171,172,179,190,192,249,265],invers:[91,98],invert:98,invoc:[6,251],invok:[2,265,269,280],involv:[16,17,19,22,93,96,181,187,265],io_cap:27,ioctl:152,iot:21,iotiv:275,ipsp:21,ipv6:21,irk:[19,27],irq:186,irq_num:182,irq_prio:[135,136],isbuildcommand:12,ism:21,ismylaptop:[273,274],isn:[93,179,244],isol:[93,222],isshellcommand:12,issu:[1,6,30,55,66,92,98,128,132,152,173,179,187,236,257,258,259,261,262,270,273,274],ist:100,it_len:128,it_typ:128,ital:242,ite_chr:249,item:[1,87,93,129,180,210,253],iter:[90,99,128,154,155,156,161,164,179,211],itf:208,its:[7,10,11,18,19,20,55,61,85,87,89,90,91,92,93,96,97,99,128,130,135,140,158,168,171,173,174,179,186,187,190,205,222,223,224,225,226,231,235,239,240,241,242,243,244,247,249,250,251,252,253,262,267,273,278,284,290],itself:[26,61,89,90,99,128,134,138,140,180,195,200,211,225,235,257,265,273,274],iv_build_num:128,iv_major:128,iv_minor:128,iv_revis:128,jan:100,javascript:55,jb_read_next:199,jb_read_prev:199,jb_readn:199,je_arg:199,je_encode_buf:199,je_wr_comma:199,je_writ:199,jira:10,jlink:[61,93,239,257,259,266,276,280,283],jlink_debug:61,jlink_dev:61,jlinkex:[257,259,262,274],jlinkgdbserv:[280,287],job:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,85,92,93,214,249],join:[3,134,234,266,290],json:[7,12,34,37,51,55,61,201,202,203,204,235,236,240,265,273],json_array_t:199,json_attr_t:[199,204],json_buff:[199,204],json_buffer_read_next_byte_t:199,json_buffer_read_prev_byte_t:199,json_buffer_readn_t:199,json_decod:[204,265],json_encod:[198,199,200,201,202,203,265],json_encode_object_entri:[201,202,203],json_encode_object_finish:[200,203],json_encode_object_start:[200,201,202],json_enum_t:199,json_read:199,json_read_object:199,json_simple_decod:265,json_simple_encod:265,json_typ:199,json_valu:[199,200,201,202,203],json_value_int:[199,202],json_value_str:199,json_value_stringn:199,json_write_func_t:199,jtag:[4,38,42,47,254,257,258,260,266,280,286],jul:80,jump0:67,jump:[128,222],jumper:[8,235,260,273,274,286],just:[1,7,8,20,22,23,62,84,87,93,94,99,100,128,135,136,151,166,171,222,235,248,249,252,253,254,256,262,269,270,273,274],jv_len:199,jv_pad1:199,jv_type:199,jv_val:199,k30:[272,273],k64f:53,keep:[9,22,24,92,128,130,134,140,179,190,207,214,215,219,222,235,240,241,265,274],keg:[60,83],kei:[8,19,20,21,31,37,46,57,80,93,128,129,179,198,199,200,202,225,249,262,266,273,276],kept:[85,128,140],kernel:[1,7,9,51,55,61,93,130,134,181,211,222,225,238,244,245,273,274,275,276,278,280],kernel_o:222,keyboard:[12,22,130],keyboarddisplai:27,keyboardonli:27,keychain:[57,80],keystor:27,keyword:[1,61,94,130,265,267,273,274],khz:[190,254,258],kick:[97,252,253],kilobyt:96,kind:[31,134,273,274,287],kit:[8,47,61,235,239,240,255,257,274,287,288,290],klibc:101,know:[1,8,12,30,61,130,206,210,223,224,241,249,250,252,253,255,256,266,273,274,285,290],known:[21,55,100,160,161,179,241,247],l13:257,l2cap:21,lab:32,label:[8,93,260,274],lack:[140,151,222],lag:251,languag:[11,12,55,96,137,273,274],laptop:[3,8,235,236,238,240,245,262,273,274],larg:[20,24,31,89,99,100,222,223,241],large_system_test:265,large_unlink_test:265,large_write_test:265,larger:[10,31,89,226],largest:[89,242],las_app_port:262,las_app_tx:262,las_join:262,las_link_chk:262,las_rd_app_eui:262,las_rd_app_kei:262,las_rd_dev_eui:262,las_rd_mib:262,las_wr_app_eui:262,las_wr_app_kei:262,las_wr_dev_eui:262,las_wr_mib:262,last:[20,26,72,77,89,90,97,99,128,148,179,193,201,206,214,219,225,247,251,252,253,254,262,266,274,276,278,280],last_checkin:[77,283,286],last_n_off:148,last_op:187,last_read_tim:208,latenc:27,later:[7,8,72,84,89,128,231,240,244,250,254,262,265,274,280,287,288],latest:[1,2,4,7,10,11,49,52,55,56,60,79,83,129,235,254,266,267,268,273,274],latex:[173,179],latter:[20,89,132,173],launch:12,launchpad:4,law:[254,273,274,280,287,288],layer:[9,20,21,89,90,95,96,134,152,162,165,173,180,193,208,209,225,238,246,274,290],layout:[96,128,174,286],lc_f:207,lc_pull_up_disc:207,lc_rate:207,lc_s_mask:207,lcheck:273,ld4:258,ldebug:224,ldflag:50,ldr:260,le_elem_off:145,lead:[89,92,250,274],leadingspac:89,leak:[160,161],learn:[7,26,61,235,240,255,282],least:[22,89,97,128,179,190,192,236,256,262,274,290],leav:[89,135,148,222],led1:[238,259],led2:238,led3:238,led:[1,7,61,93,96,99,134,181,186,236,238,241,245,254,255,256,257,258,259,260,261,266,273,274,276,283,286,290],led_blink_pin:[93,99,240,241,256],led_blink_pin_1:240,led_blink_pin_2:240,led_blink_pin_3:240,led_blink_pin_4:240,led_blink_pin_5:240,led_blink_pin_6:240,led_blink_pin_7:240,led_blink_pin_8:240,led_pin:240,left:[86,90,99,145,198,222,260,272,280,290],legaci:[30,151,225,241],len:[89,135,140,141,162,163,170,171,172,187,190,199,204,249,262,273],length:[20,21,27,89,93,128,130,140,156,157,176,179,182,198,249,262],less:[92,101,128,179,251,252,253],lesser:179,lesson:[241,290],let:[4,8,55,89,93,205,222,223,235,241,244,246,247,248,249,250,251,252,253,256,260,265,267,268,272,273,274,280],level:[1,2,9,14,18,20,23,27,29,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,91,93,131,134,135,152,173,174,181,208,224,225,234,248,249,252,253,254,258,262,265,266,268,272,273,274],level_list:72,leverag:[132,134,243,274],lflag:[1,50,61],lib:[1,4,45,53,55,82,101,130,152,180,224,225,273,274],libc6:6,libc:[7,93,101],libc_baselibc:[222,260],libftdi1:4,libftdi:4,libg:48,libgcc:[48,222],libhidapi:4,librari:[1,4,48,50,55,58,81,87,89,93,94,96,101,128,130,134,152,160,180,181,195,222,223,231,244,265,267,268,273,274,275],libusb:4,libusb_error_access:258,libusb_open:258,licens:[4,7,11,55,61,101,134,244,254,258,260,261,266,267,273,274,280,287,288],lieu:66,life:[24,252],light:[9,31,181,206,235,238,240,255,258,259,260,261,275,276,283,286],lightblu:[248,272,274],lightweight:151,like:[2,3,5,8,12,31,55,58,59,62,81,82,89,92,93,96,97,98,101,128,130,134,140,181,187,223,235,240,244,254,258,260,265,267,273,274,275,277,278,280,282,286,287,288],likewis:[62,179],limit:[3,20,27,29,99,101,135,151,215,219,222,236,247,252,273,274,287],limt:223,line:[2,6,7,10,12,36,38,39,47,62,93,101,130,186,223,229,235,240,245,251,256,258,259,267,269,273,274,275,276,280,287],linear:179,linearacc:276,lines_queu:130,link:[2,3,7,20,21,22,27,34,38,42,60,61,81,83,85,89,179,192,214,222,225,231,234,235,244,245,248,253,254,256,257,258,259,260,261,262,266,273,274,276,280,283,284,286,287,288,290],linker:[1,61,94,101,222,244,260],linkerscript:[61,93],linux:[5,7,9,12,56,66,78,79,135,239,245,254,256,257,258,260,261,266,276,283,284,285,286],liquid:274,lis2dh12:[207,280],lis2dh12_0:[207,280],lis2dh12_cfg:207,lis2dh12_config:207,lis2dh12_data_rate_hn_1344hz_l_5376hz:207,lis2dh12_fs_2g:207,lis2dh12_init:207,lis2dh12_onb:280,list:[3,6,7,8,12,22,27,29,34,35,48,50,51,53,57,59,61,66,71,72,73,75,76,77,78,80,85,87,89,90,93,94,95,99,128,130,131,134,136,179,180,192,205,214,223,225,226,229,234,235,239,240,244,247,250,251,254,255,256,257,258,259,260,261,262,267,268,273,274,278,283,284,286,290],listen:[2,14,30,31,66,89,206,211,222,247],listener_cb:280,lit:[236,240,241,245],littl:[6,20,23,89,128,235,240,244,251,262,268,273],live:[134,235,250,251,254,266,267,268],lma:260,lmp:20,load:[2,4,5,7,12,34,39,43,47,55,57,58,59,61,93,128,129,191,222,235,238,239,240,241,248,255,256,262,268,272,273,274,287,288],load_arduino_blinki:12,load_arduino_boot:12,loader:[10,43,50,93,128,130,191,254,257,258,259,261,266,276,283,284,286],loc:[141,145,150],local:[1,4,6,7,10,11,20,27,28,36,40,49,55,58,60,71,81,83,94,99,100,242,247,254,266,278],localhost:[66,280,287],locat:[1,8,11,19,31,61,89,93,128,140,145,179,187,231,241,251,256,260,266,267,273,276,283,284,286],lock:[9,88,92,98,140,206,211,238],log:[1,7,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,73,74,75,76,77,78,80,81,82,128,131,132,150,159,166,180,181,214,222,224,225,235,236,244,254,257,258,260,261,263,273,274,278,280,284,287],log_cbm_handl:205,log_cbmem_handl:205,log_cli:[214,263],log_console_handl:[205,208],log_debug:205,log_error:208,log_fcb:225,log_fcb_handl:205,log_handl:205,log_info:208,log_init:225,log_level:[50,205,225,239,263],log_level_debug:205,log_level_error:205,log_module_bno055:208,log_module_default:205,log_nam:72,log_newmgr:224,log_newtmgr:[50,224,225,236],log_nmgr_register_group:225,log_regist:[205,208],log_shel:235,log_syslevel:[205,208],logic:[1,21,23,29,128,174,193,262,273],login:269,loglevel:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,273],logxi:81,long_filename_test:265,longer:[3,8,11,21,24,90,210,224,245,273,275],longjmp:233,longrange_interv:27,longrange_pass:27,longrange_window:27,look:[8,10,24,55,61,93,95,99,101,128,130,131,187,199,204,222,223,235,240,241,242,247,249,250,251,265,268,270,272,273,274,278,280,290],lookup:[211,220,249,280],loop:[84,87,92,99,154,155,156,161,164,225,236,241,244,256,272,273,274],lora:262,lora_app_shel:262,lora_app_shell_telee02:262,lora_app_shell_telee0:262,lora_mac_timer_num:262,lose:26,loss:[26,29,182],lost:[97,179],lost_found_test:265,lot:[7,222,224,247,265,274],low:[9,20,21,22,31,86,89,93,98,135,152,181,186,190,191,208,241,249,252,253,254,255,258,266,290],lower:[20,86,91,92,98,99,224,225,239,241,246,256,260],lowest:[73,85,90,99,179,225,241],lowpow:276,lru:179,lrwxr:[4,81],lsb:187,lst:[34,55,61],ltbase:225,ltd:27,ltk:27,ltk_sc:27,ltrequir:225,lua:[137,138,139],lua_cmd:139,luckili:273,m32:6,m4g:276,mac:[3,5,7,9,12,20,55,56,78,79,235,239,240,245,248,254,256,257,258,260,261,262,266,272,274,276,283,284,285,286],machin:[2,3,7,8,94,245,290],maco:[4,66],macro:[20,89,90,93,97,199,206,208,223,225,231,241,251,265,274],made:[2,10,11,20,55,71,99,128,187,241,242,262,274],mag:276,mag_rev:276,maggyro:276,magic:[61,128,140,179],magnet:[206,276],magnetomet:208,mai:[2,4,6,7,8,12,22,27,29,30,31,51,53,57,58,62,80,81,82,85,87,89,90,92,93,96,101,128,130,132,134,161,179,181,186,187,192,205,206,207,208,210,211,222,223,224,225,226,229,231,236,241,244,245,254,256,257,258,259,260,261,262,266,267,273,274,276,280,283,286,287],mail:[3,10,134,234,235,240,244,255,274,290],main:[7,12,26,31,57,61,77,80,87,89,92,95,99,128,130,138,176,177,197,206,211,214,216,221,225,230,232,236,238,240,244,247,252,253,254,257,258,259,260,261,265,272,273,274,276,283,284,286],mainli:222,maintain:[4,49,85,128,134,179,206,211,225,265,267,268],mainten:[132,223],major:[55,61,96,197,241,253,267,268],major_num:[267,268],make:[1,2,3,7,8,9,19,20,21,24,30,31,33,55,57,63,71,85,89,90,93,128,134,140,141,173,179,181,198,205,222,223,235,239,240,241,243,244,245,247,249,250,252,253,254,256,260,262,265,267,272,273,274,275,280,290],makerbeacon:236,malloc:[88,90,93,101,241,274],man:[6,27,101],manag:[6,8,16,17,21,27,31,39,45,57,58,59,61,64,66,68,71,72,73,76,77,80,81,82,87,90,92,93,94,96,99,128,130,134,181,196,199,206,208,209,210,222,225,239,256,257,263,266,268,276,280,283,285,286,290],mandatori:[20,93,226,251,252,253],mani:[20,31,55,61,89,95,128,140,148,160,161,181,192,249,254,267],manifest:[34,37,43,55,61,235,236,240,273],manipul:[1,39,45,89],manner:[27,29,89,92,128,181],manual:[21,25,60,83,90,92,99,101,173,222,229,235,254,260,280,286,287,288],manufactur:[19,27,29,39,43,57,58,59,66,222,247,254,266],many_children_test:265,map:[2,3,8,20,27,28,61,96,134,135,160,181,185,186,193,199,222,224,225,249,256,266,267,268,276,283,286,287],mar:[100,257,259,262,274,280],march:68,mark:[27,28,71,93,260],marker:93,market:[31,259],mask:[27,206,208,210,211,278,280],mass:[245,258],mass_eras:[257,258],master:[1,7,11,27,56,57,59,60,79,80,82,83,134,181,183,187,190,242,254,266,267,268],match:[2,7,20,93,94,96,128,210,211,222,254,258,266,267,268],matter:10,max:[156,198,199],max_cbmem_buf:205,max_conn_event_len:27,max_ev:27,max_len:[156,162,182],max_protohdr:89,maxim:9,maximum:[21,27,29,89,128,130,173,175,179,182,198,214,215,219,265,287],mayb:[287,288],mb_crc:273,mb_crc_check:273,mb_crc_tbl:273,mbed:[257,261],mbedtl:[7,254,257,259,261,266,283,284,286],mblehciproj:245,mblen:89,mbuf:[92,199,277],mbuf_buf_s:89,mbuf_memblock_overhead:89,mbuf_memblock_s:89,mbuf_mempool_s:89,mbuf_num_mbuf:89,mbuf_payload_s:89,mbuf_pkthdr_overhead:89,mbuf_pool:89,mbuf_usage_example1:89,mbuf_usage_example2:89,mcu:[7,9,53,94,97,134,135,181,186,189,190,191,192,193,195,235,240,241,254,257,266,280],mcu_gpio_porta:135,mcu_sim_parse_arg:[256,280],mdw:260,mean:[2,12,20,89,91,97,98,99,100,128,135,175,190,201,203,225,233,251,258,268,273,274],meaning:[138,193],meant:[1,97,129],measur:[9,241,262],mechan:[1,22,92,222,225,238,267,269,273,274],medic:[21,55],medium:167,meet:[207,239,245,254,255,257,258,259,260,261,276,278,279,280,282,283,284,285,286],mem:[7,225],member:[84,87,89,90,91,97,98,99,100,130,187,190,192,247,249],membuf:90,memcmp:89,memcpi:249,memori:[9,20,48,73,87,88,89,92,93,96,97,101,128,132,134,135,151,167,173,174,178,179,181,182,184,187,215,219,224,236,238,241,249,260,262,263,284,287],mempool:[64,80,81,82,89,90,214,273],memset:[207,247,250,253,274],mention:[12,179,206,274],menu:[12,59,258,260,286],merchant:4,merci:90,merg:242,mesh:32,messag:[2,4,22,31,42,57,58,59,75,130,132,133,166,214,217,218,226,238,254,258,262,266,273],messi:274,messsag:62,met:[20,236,238,266],meta:[8,266,276],metadata:[43,128,167],meter:21,method:[25,89,99,133,173,183,186,190,205,214,223,249,267],mfg:[7,39,57,58,59,70,225],mfg_data:29,mfg_init:225,mgmt:[7,130,132,190,196,214,224,225,236,273,274],mgmt_evq_set:236,mgmt_group_id_config:131,mgmt_group_id_crash:131,mgmt_group_id_default:131,mgmt_group_id_imag:131,mgmt_group_id_log:131,mgmt_group_id_runtest:131,mgmt_group_id_stat:131,mgmt_imgmgr:222,mgmt_newtmgr_nmgr_o:222,mgutz:81,mhz:[21,24],mib:[55,81,262],mic:20,micro:[55,239,241,254,255,257,259,260,262,266,274,276,282,283,285,286,287,288],microcontrol:[9,101,128,260,286],microsecond:[24,86,100],microsoft:12,mid:[14,128,258],middl:[27,128,179,274],might:[1,2,18,20,61,93,96,130,134,179,181,187,208,222,224,244,246,247,252,253,254,258,267,268,270,280,287,288],migrat:[179,225],milisecond:27,millisecond:[27,100,262],millivolt:274,min:[72,73,128,266,284],min_conn_event_len:27,mind:[97,244],mingw32:59,mingw64:59,mingw:[4,7,8,12,56,82,256,266,276,283,286],mini:258,minicom:[8,256,266,273,276],minim:[93,134,151,152,173,179,208,244],minimum:[27,29,72,89,90,128,179,244],minor:[197,253,267,268],minor_num:[267,268],minu:89,minut:[81,100,252,265],mip:[7,61],mirror:[1,10,11,267,273,274],misc:276,mislead:6,mismatch:[20,89],miso:190,miso_pin:[135,136],miss:[20,57,93,224,235,240,244,255,274],misspel:224,mitm:27,mk64f12:[134,181],mkdir:[11,43,80,82,93,235,254,257,258,259,260,261,262,266,267,273,274],mkdir_test:265,mkdoc:242,mkr1000:264,mkr1000_boot:266,mkr1000_wifi:266,mlme:262,mman:57,mmc0:[136,152],mmc:151,mmc_addr_error:136,mmc_card_error:136,mmc_crc_error:136,mmc_device_error:136,mmc_erase_error:136,mmc_init:136,mmc_invalid_command:136,mmc_ok:136,mmc_op:[136,152],mmc_param_error:136,mmc_read_error:136,mmc_response_error:136,mmc_timeout:136,mmc_voltage_error:136,mmc_write_error:136,mn_socket:7,mobil:31,mod:[30,248],modbu:273,mode:[9,20,22,27,29,134,158,160,167,168,170,181,182,186,190,193,208,222,247,254,258,260,265,276],model:[21,22,32,87,195,257],modern:[8,151],modif:[11,235,265,275],modifi:[6,62,89,93,100,133,192,240,241,273,274,279,282],modul:[72,86,90,92,101,132,137,205,215,219,221,256,262,286],module_list:72,module_nam:[219,221],modulo:100,moment:[135,187,195,249,268],mon:[254,257,258],monitor:[89,130,132,140,212,223,260,275,282,290],monolith:251,month:265,more:[1,4,7,9,10,12,20,21,22,29,30,34,35,39,43,51,53,57,58,59,61,62,64,80,81,82,85,87,89,92,93,98,99,100,101,128,129,134,141,145,152,163,164,179,190,193,199,205,206,207,208,209,214,222,225,226,239,240,241,244,247,251,252,253,254,256,257,262,265,266,268,272,273,274,276,280,283,286,287,290],mosi:190,mosi_pin:[135,136],most:[1,8,14,19,21,23,24,25,61,89,93,94,99,101,128,179,183,190,222,224,241,247,265,272,273,274,276,278,280],mostli:[6,9,222,252,253],motor:9,mou:242,mount:[165,274],mous:[134,181],move:[8,45,57,58,59,81,92,100,128,166,182,222,256,260,274,275,277,280],mp_block_siz:90,mp_flag:90,mp_membuf_addr:90,mp_min_fre:90,mp_num_block:90,mp_num_fre:90,mpe:90,mpool:[219,262],mpstat:[64,78,80,81,82,131,133,236,284],mq_ev:89,mqeueue:89,msb:187,msdo:93,msec:[27,194],msg:229,msg_data:27,msp:[254,260],msy:59,msys2:56,msys2_path_typ:59,msys64:59,msys_1:[73,284],msys_1_block_count:[275,277],msys_1_block_s:[275,277],mtd:135,mtu:[10,20,27,28,248],mu_level:91,mu_own:91,mu_prio:91,much:[89,93,98,101,146,179,273],multi:[1,9,50,62,96,99,187],multilib:[6,7,57],multipl:[4,23,27,29,34,35,50,51,55,84,91,92,97,101,129,132,134,181,190,211,225,247,251,252,267],multiplex:21,multiplexor:96,multipli:[90,241],multitask:[92,241],must:[1,2,4,5,7,8,9,11,12,14,22,24,25,33,37,41,46,53,55,57,59,61,63,66,68,71,80,86,87,89,90,92,93,96,97,99,128,129,130,136,140,148,152,159,160,162,166,173,174,175,176,178,179,180,187,190,192,193,197,198,199,205,206,207,208,210,211,212,214,215,216,219,223,224,225,232,235,236,239,241,244,247,249,256,259,260,262,266,267,268,273,274,276,277,278,279,280,283,286,287],mutex:[88,92,98,99],mutual:91,my_at45db_dev:135,my_blinki:50,my_blinky_sim:[7,34,35,43,55,61,244,245,257,258,273],my_blocking_enc_proc:20,my_callout:238,my_conf:129,my_config_nam:225,my_driv:[273,274],my_ev_cb:238,my_eventq:236,my_gpio_irq:238,my_interrupt_ev_cb:238,my_memory_buff:90,my_new_target:50,my_newt_target:50,my_packag:205,my_package_log:205,my_pool:90,my_proj1:244,my_proj:244,my_project:[1,254,266,267,274],my_protocol_head:89,my_protocol_typ:89,my_result_mv:274,my_sensor:280,my_sensor_devic:280,my_sensor_poll_tim:280,my_stack_s:99,my_stat:223,my_stat_sect:223,my_target1:62,my_task:99,my_task_evq:89,my_task_func:99,my_task_handl:89,my_task_pri:99,my_task_prio:99,my_task_rx_data_func:89,my_task_stack:99,my_timer_ev_cb:238,my_timer_interrupt_eventq:238,my_timer_interrupt_task:238,my_timer_interrupt_task_prio:238,my_timer_interrupt_task_stack:238,my_timer_interrupt_task_stack_sz:238,my_timer_interrupt_task_str:238,my_uart:193,myadc:274,myapp1:287,myapp:223,myapp_cmd:220,myapp_cmd_handl:220,myapp_console_buf:130,myapp_console_ev:130,myapp_init:130,myapp_process_input:130,myapp_shell_init:220,mybl:[34,35,46,50,66,73,76,77,236],myble2:[37,38,245],myblehostd:66,mybleprph:[66,239],mybletyp:66,myboard:[45,93],myboard_debug:93,myboard_download:93,mycmd:221,myconn:236,mycor:71,mydata:89,mydata_length:89,mylora:262,mymcu:95,mymfg:70,mymodul:97,mymodule_has_buff:97,mymodule_perform_sanity_check:97,mymodule_register_sanity_check:97,mynewt:[1,3,4,5,6,11,13,20,21,25,30,32,37,38,39,43,44,50,51,53,55,56,57,59,60,61,62,71,78,79,80,82,83,84,86,87,88,97,98,99,100,101,128,129,132,133,134,151,152,173,180,181,182,183,186,187,190,193,205,208,214,216,222,223,224,225,231,234,235,236,238,239,241,243,245,246,248,252,253,254,255,256,257,258,259,260,261,262,263,265,266,268,272,273,274,276,279,280,283,284,285,286,287,288,290],mynewt_0_8_0_b2_tag:[267,268],mynewt_0_8_0_tag:267,mynewt_0_9_0_tag:267,mynewt_1_0_0_b1_tag:267,mynewt_1_0_0_b2_tag:267,mynewt_1_0_0_rc1_tag:267,mynewt_1_0_0_tag:267,mynewt_1_3_0_tag:[57,59,80,82],mynewt_arduino_zero:[254,266,267],mynewt_nord:274,mynewt_stm32f3:235,mynewt_v:[130,214,219,223,225,265,274],mynewt_val_:225,mynewt_val_log_level:225,mynewt_val_log_newtmgr:225,mynewt_val_msys_1_block_count:225,mynewt_val_msys_1_block_s:225,mynewt_val_my_config_nam:225,mynewtl:275,mynewtsan:75,myperiph:[239,248],mypool:90,myproj2:222,myproj:[2,7,12,93,235,239,240,254,256,257,258,259,260,261,267,273,275,276,280,288],myriad:9,myseri:[73,76,77],myserial01:66,myserial02:66,myserial03:66,mytask:241,mytask_handl:241,mytask_prio:241,mytask_stack:241,mytask_stack_s:241,myudp5683:66,myvar:65,n_sampl:276,nad_flash_id:174,nad_length:174,nad_offset:174,nak:187,name1:50,name2:50,name:[1,2,4,7,8,10,11,12,20,21,27,29,34,35,37,38,42,43,44,45,47,48,50,51,53,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,90,93,94,95,97,99,100,101,129,130,134,152,154,155,156,159,160,161,164,180,181,186,198,199,200,202,204,205,206,207,208,209,211,215,219,220,221,222,224,227,228,230,235,236,238,241,244,247,249,251,252,253,254,256,257,258,259,260,261,265,266,267,268,269,273,274,275,276,277,280,283,284,286,287],name_is_complet:247,name_len:[154,155,156,161,164,247],namespac:[88,129,214,252],nano2:[43,53,93,261],nano2_debug:[93,261],nano:[255,290],nanosecond:[86,192],nativ:[2,3,7,12,43,50,53,55,59,61,66,190,224,225,235,238,245,257,258,266,273,274,284,290],natur:[93,179],navig:[10,290],nb_data_len:179,nb_hash_entri:179,nb_inode_entri:179,nb_prev:179,nb_seq:179,nbuf:89,nc_num_block:175,nc_num_cache_block:175,nc_num_cache_inod:175,nc_num_fil:175,nc_num_inod:175,ncb_block:179,ncb_file_offset:179,ncb_link:179,ncheck:273,nci_block_list:179,nci_file_s:179,nci_inod:179,nci_link:179,nda_gc_seq:179,nda_id:179,nda_length:179,nda_mag:179,nda_ver:179,ndb_crc16:179,ndb_data_len:179,ndb_id:179,ndb_inode_id:179,ndb_magic:179,ndb_prev_id:179,ndb_seq:179,ndi_crc16:179,ndi_filename_len:179,ndi_id:179,ndi_mag:179,ndi_parent_id:179,ndi_seq:179,nding:251,ndof:276,ndof_fmc_off:276,nearest:257,neatli:247,necessari:[6,24,39,47,57,58,59,89,128,152,179,233,235,244,249,254,262,265,274],need:[4,5,6,7,8,9,10,11,12,14,23,24,32,43,50,52,55,57,58,59,60,61,64,66,80,81,83,84,88,89,90,91,92,93,95,96,97,98,99,128,130,135,140,141,142,152,179,191,194,205,206,208,209,210,211,214,220,222,223,224,225,229,236,238,239,241,244,245,247,249,250,251,252,253,254,256,257,258,259,260,261,265,266,268,269,272,275,277,280,283,284,286],neg:[89,100,179,251],neither:89,ness:190,nest:[91,159],net:[4,7,24,51,212,225,244,245,249,251,266,273,274,275,277,279],net_nimble_control:222,net_nimble_host:222,network:[1,9,23,27,31,32,55,89,92,222,241,262,266],never:[19,92,97,99,166,179,225,241,244,249],nevq:87,new_bletini:45,new_pool:89,new_slinki:45,newer:6,newest:[140,224,241],newli:[1,10,19,43,128,160,245,252,253,267],newlib:101,newlin:130,newt:[1,3,5,6,7,13,32,56,61,62,73,76,77,80,81,82,83,92,93,94,96,134,222,223,224,225,231,235,237,238,239,240,241,243,244,245,248,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,270,273,274,275,276,277,278,280,282,283,284,285,286,287,288,290],newt_1:[57,60],newt_1_1_0_windows_amd64:60,newt_1_3_0_windows_amd64:59,newt_group:2,newt_host:2,newt_us:2,newtgmr:[81,82,83],newtmgr:[1,7,9,10,13,57,58,59,63,64,78,79,130,131,133,195,205,217,218,222,224,225,238,273,274,285,290],newtmgr_1:[80,83],newtmgr_1_1_0_windows_amd64:83,newtmgr_1_3_0_windows_amd64:82,newtmgr_shel:214,newtron:[152,180,224,225],newtvm:11,next:[7,8,24,30,71,77,82,85,89,90,99,128,130,132,140,145,154,155,156,161,164,179,195,199,206,210,211,222,225,233,239,240,241,242,244,247,251,252,253,254,257,260,268,272,273,274],next_checkin:[77,283,286],nff:[7,101,135,152,174,175,176,177,178,180,188,224,225,231,265],nffs_area_desc:[173,176,177,226],nffs_area_mag:179,nffs_area_max:[176,177],nffs_block:179,nffs_block_cache_entri:179,nffs_block_cache_list:179,nffs_block_mag:179,nffs_cache_block:179,nffs_cache_block_list:179,nffs_cache_inod:179,nffs_close:180,nffs_closedir:180,nffs_detect:[177,179],nffs_detect_fail:[152,173],nffs_dirent_is_dir:180,nffs_dirent_nam:180,nffs_disk_area:179,nffs_disk_block:179,nffs_disk_inod:179,nffs_file_len:180,nffs_flash:188,nffs_flash_area:[224,225],nffs_format:[176,179,226],nffs_getpo:180,nffs_hash_entri:179,nffs_id_non:179,nffs_init:[175,176,177,180],nffs_inod:179,nffs_inode_entri:179,nffs_inode_list:179,nffs_inode_mag:179,nffs_intern:173,nffs_mkdir:180,nffs_op:180,nffs_open:180,nffs_opendir:180,nffs_read:180,nffs_readdir:180,nffs_renam:180,nffs_seek:180,nffs_short_filename_len:179,nffs_test:265,nffs_test_debug:265,nffs_test_priv:265,nffs_test_system_01:265,nffs_test_unlink:226,nffs_test_util:265,nffs_unlink:180,nffs_write:180,nhe_flash_loc:179,nhe_id:179,nhe_next:179,ni_filenam:179,ni_filename_len:179,ni_inode_entri:179,ni_par:179,ni_seq:179,nice:[223,272],nie_child_list:179,nie_hash_entri:179,nie_last_block_entri:179,nie_refcnt:179,nie_sibling_next:179,nil:67,nim:251,nimbl:[7,23,24,26,29,66,225,236,239,243,246,247,248,249,250,251,273,274,275,277],njb:[200,201,202,203,204],njb_buf:204,njb_enc:202,nlip:217,nmgr:133,nmgr_def_taskstat_read:202,nmgr_err_eok:202,nmgr_jbuf:[200,201,202,203,204],nmgr_o:131,nmgr_shell:[130,225,236],nmgr_shell_in:217,nmgr_shell_out:218,nmgr_shell_pkg_init:225,nmgr_task_init:217,nmgr_transport:218,nmgr_uart:236,nmgr_urart_spe:236,nmxact:11,no_of_sampl:276,no_rsp:28,no_wl:[27,30],no_wl_inita:27,node:[21,32,55,154,155,156,161,164,179],nodefault:[199,204],nodup:27,nogdb:[38,47],noinputnooutput:27,non:[7,18,19,21,24,27,31,32,84,89,90,99,100,144,148,150,179,182,186,187,190,191,192,193,215,217,218,219,222,225,252,253,262,267,280],none:[4,7,8,12,20,27,30,82,87,93,101,128,179,216,220,221,222,226,229,235,254,258,262,274,280,287,288],nonexist:[160,179],nonsens:265,nonzero:[89,141,142,143,145,146,149,150,190,227,228,230,232,233,250,265],nor:22,nordic:[23,93,134,181,185,189,191,238,239,257,259,273,274,276,280,285,290],nordicsemi:[257,259,262,274,280],normal:[2,98,179,229,231,272,276],notat:[55,260],note:[1,2,4,6,7,10,11,12,21,22,23,24,29,32,43,47,50,57,58,59,60,61,66,68,71,80,81,82,83,85,86,87,89,90,91,92,93,94,99,128,130,136,173,187,190,192,195,206,207,208,209,211,214,215,219,222,224,225,235,236,239,241,242,244,245,247,249,251,252,253,254,256,257,258,259,260,261,262,263,266,267,268,269,273,275,276,277,278,280,282,283,284,286,287,290],noth:[11,179,226,252,253,273,274],notic:[7,11,55,61,92,93,180,222,241,244,268,272,273,274],notif:[10,27,28,87,130,210,246,272],notifi:[10,28,210,250,251],notnul:225,nov:8,now:[2,8,9,59,86,89,90,91,93,98,99,128,151,153,157,160,163,166,168,170,179,186,193,222,235,236,239,240,241,244,246,247,248,250,251,252,253,254,257,262,265,267,272,273,274,276,280,284,287,288],nreset:254,nrf51:[24,53,93,134,181,263],nrf51dk:[53,222],nrf51xxx:189,nrf52840pdk:32,nrf52:[4,24,61,93,134,181,185,191,207,238,239,245,255,256,257,262,273,275,277,280,285,287,288,290],nrf52_adc_dev_init:274,nrf52_bleprph_oic_bno055:275,nrf52_blinki:[256,259,261,287],nrf52_bno055_oic_test:[275,277],nrf52_bno055_test:[276,278],nrf52_boot:[236,245,259,274,275,276,277,283],nrf52_hal:93,nrf52_slinki:283,nrf52_thingi:207,nrf52dk:[37,38,53,61,62,93,225,238,244,245,248,256,259,274,275,276,277,283],nrf52dk_debug:[61,93,256],nrf52dk_download:93,nrf52k_flash_dev:[93,185],nrf52pdk:[245,259],nrf52serial:283,nrf52xxx:[48,93,191,257,280],nrf5x:24,nrf:[25,274],nrf_drv_saadc:274,nrf_drv_saadc_config_t:274,nrf_drv_saadc_default_channel_config_s:274,nrf_drv_saadc_default_config:274,nrf_saadc_channel_config_t:274,nrf_saadc_gain1_6:274,nrf_saadc_input_ain1:274,nrf_saadc_reference_intern:274,nrf_saadc_typ:274,nrpa:[19,252,253],nsampl:276,nsec:86,nth:179,ntoh:89,ntohl:89,ntrst:254,nucleo:53,nul:179,num_block:90,num_byt:184,number:[1,8,9,10,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,84,86,87,89,90,91,92,93,98,99,100,101,128,129,139,140,141,151,157,163,168,170,171,172,173,174,175,179,182,186,187,189,190,192,193,195,197,198,199,206,214,215,219,223,224,225,229,236,238,239,241,245,251,252,253,254,256,260,262,266,267,268,272,273,274,276,277,283,286,287],numer:[20,22,85,93,128],nvm:254,nxp:[134,181],objcopi:6,objdump:6,object:[4,11,48,55,61,81,86,92,93,96,99,132,166,199,201,202,203,208,210,211,250,265,276,279],objsiz:[6,48,222],observ:[14,27,212,245,279],obtain:[27,89,91,98,99,179,192,267,273,274],obvious:53,oc_add_devic:275,oc_add_resourc:275,oc_app_resourc:[275,277],oc_get:275,oc_if_rw:275,oc_init_platform:275,oc_main_init:[212,275],oc_new_resourc:275,oc_put:275,oc_resource_bind_resource_interfac:275,oc_resource_bind_resource_typ:275,oc_resource_set_default_interfac:275,oc_resource_set_discover:275,oc_resource_set_periodic_observ:275,oc_resource_set_request_handl:275,oc_serv:[212,236,275,277,279],oc_transport_gatt:236,oc_transport_ip:236,oc_transport_seri:236,occasion:89,occur:[26,27,89,91,100,186,187,190,224,249,250,252,253],occurr:225,ocf:132,ocf_sampl:[7,61],ocimgr:131,ock:211,oct:273,octet:[27,29,31,128],od_init:134,od_nam:208,odd:193,off:[2,20,21,31,32,84,87,89,96,97,99,130,134,140,181,182,187,204,206,208,209,213,236,238,239,240,244,245,252,253,256,260,275,277,278,279,280,282,290],off_attr:204,offer:[1,21,132,134,151,184,274],offset1:89,offset2:89,offset:[20,28,71,89,93,100,128,140,148,152,158,162,167,168,170,171,172,174,179,199,222,224,225,276],often:[9,55,93,179,187,190],ohm:274,oic:[7,51,66,132,209,210,280,290],oic_bhd:66,oic_bl:66,oic_seri:66,oic_udp:66,oic_udpconnstr:66,oicmgr:[7,66,131,132,133],old:[45,140],older:[10,59,82,258],oldest:[140,145,149,224],olimex:[255,273,285,290],olimex_blinki:260,olimex_stm32:[53,260,286],om1:89,om2:89,om_data:89,om_databuf:89,om_flag:89,om_len:89,om_omp:89,om_pkthdr_len:89,ome:90,omgr:133,omi_block_s:90,omi_min_fre:90,omi_nam:90,omi_num_block:90,omi_num_fre:90,omit:[47,224],omp:89,omp_databuf_len:89,omp_flag:89,omp_len:89,omp_next:89,omp_pool:89,on_reset:26,on_sync:26,onboard:[208,209,278,282,287,288,290],onc:[19,29,55,57,61,80,84,86,89,90,91,92,99,128,143,181,190,192,233,235,236,239,240,247,252,255,256,262,267,273,274],one:[1,4,7,8,10,11,12,19,20,21,22,23,27,29,30,31,34,35,39,43,45,50,51,53,57,58,59,61,67,85,87,89,91,92,93,96,98,99,128,129,130,136,137,140,152,165,166,173,174,176,177,179,182,187,190,195,205,206,210,211,220,222,223,224,225,240,241,242,244,245,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,269,272,273,274,276,282,283,286,290],ones:[14,89,98,134,181,205,245,290],ongo:27,onli:[1,2,7,8,10,11,12,14,19,20,24,27,29,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,66,72,80,83,86,87,89,90,92,93,96,97,98,128,129,130,131,134,135,136,138,150,152,154,155,156,158,161,164,165,167,168,173,174,179,187,190,195,205,206,208,209,211,214,219,222,223,224,225,228,229,231,232,234,236,239,240,241,242,247,249,252,254,256,262,263,265,266,267,268,269,273,274,275,276,279,280,284],onlin:[254,280,287,288],onto:[1,20,42,43,47,84,87,89,93,255,257,258,259,260,261,272,273,276,283,286],oob:[20,27,29],opaqu:[152,192,205,206,208,210,280],open:[4,8,9,10,12,20,21,38,39,47,55,57,58,59,61,96,132,134,152,153,157,158,160,161,163,164,167,168,169,170,171,172,175,179,207,252,254,257,258,260,261,265,273,278,284],open_test:265,openocd:[12,93,254,257,258,260,261,286],openocd_debug:[257,273],oper:[1,9,12,15,18,20,21,26,31,39,57,58,59,84,89,96,97,98,99,100,130,132,134,152,160,161,162,167,169,173,174,178,179,180,181,182,184,186,193,206,211,223,225,234,244,245,249,250,251,252,253,254,262,265,266,268,269,272,273,276,280],oppos:[31,89,269],opt:4,optim:[1,24,32,37,38,43,50,61,89,93,94,101,134,222,235,241,244,245,248,254,257,258,259,260,261,262,266,273,274,276,280,283,286],optimis:31,option:[2,3,4,6,7,8,10,12,22,23,27,36,37,46,51,55,62,66,72,84,87,90,93,128,132,134,150,151,197,206,208,209,214,222,224,225,226,231,242,244,245,251,254,258,260,262,266,267,268,273,274,276,286],orang:[257,261],order:[1,8,9,22,33,55,61,63,85,87,89,90,91,97,99,101,128,129,132,179,190,206,224,225,236,240,241,262,265,268,270,273,274,280,287,288],org:[1,4,10,11,39,57,58,59,61,80,82,101,130,137,252,254,257,258,260,261,265,273,274,280,287,288],organ:[11,134,223,265,267],origin:[11,46,93,128,260,273],os_align:[89,90],os_arch:[61,90,100],os_bad_mutex:91,os_bsp_adc0:274,os_bsp_adc0_config:274,os_callout:[61,84,97,129,238,256,280],os_callout_f_queu:84,os_callout_func:[84,89],os_callout_func_init:84,os_callout_init:[84,97,238,256,280],os_callout_queu:84,os_callout_remaining_tick:84,os_callout_reset:[84,97,238,256,280],os_callout_stop:84,os_cfg:61,os_cli:225,os_cputim:61,os_cputime_delay_nsec:86,os_cputime_delay_tick:86,os_cputime_delay_usec:86,os_cputime_freq:24,os_cputime_freq_pwr2:86,os_cputime_get32:86,os_cputime_init:86,os_cputime_nsecs_to_tick:86,os_cputime_ticks_to_nsec:86,os_cputime_ticks_to_usec:86,os_cputime_timer_init:86,os_cputime_timer_num:[24,86],os_cputime_timer_rel:86,os_cputime_timer_start:86,os_cputime_timer_stop:86,os_cputime_usecs_to_tick:86,os_dev:[61,134,206,207,208,274,278],os_dev_clos:[207,278],os_dev_cr:[134,206,207,208,211,274],os_dev_init_func_t:[134,208],os_dev_init_kernel:274,os_dev_init_primari:207,os_dev_init_prio_default:274,os_dev_open:[207,274,278],os_einv:[89,100,204],os_eno:129,os_error_t:[90,91,98],os_ev:[84,87,89,97,129,130,238,256,280],os_event_fn:[84,87,89],os_event_queu:87,os_event_t_mqueue_data:89,os_event_t_tim:84,os_eventq:[61,84,87,89,97,130,216,238,272,273,274],os_eventq_dflt_get:[26,87,92,99,130,225,238,252,253,256,278,280],os_eventq_dflt_set:273,os_eventq_get:[87,97],os_eventq_get_no_wait:87,os_eventq_init:[87,89,97,130,238,272,273],os_eventq_pol:87,os_eventq_put:[87,130,238],os_eventq_remov:87,os_eventq_run:[26,87,89,92,99,225,238,252,253,256,273,278,280],os_fault:61,os_get_uptime_usec:100,os_gettimeofdai:100,os_heap:61,os_init:[86,99],os_invalid_parm:[91,98],os_main_task_prio:[225,241],os_main_task_stack_s:225,os_malloc:[61,88],os_mbuf:[61,89,217,218],os_mbuf_adj:89,os_mbuf_append:[89,272,274],os_mbuf_appendfrom:89,os_mbuf_cmpf:89,os_mbuf_cmpm:89,os_mbuf_concat:89,os_mbuf_copydata:89,os_mbuf_copyinto:89,os_mbuf_count:89,os_mbuf_data:89,os_mbuf_dup:89,os_mbuf_extend:89,os_mbuf_f_:89,os_mbuf_f_mask:89,os_mbuf_fre:89,os_mbuf_free_chain:89,os_mbuf_get:89,os_mbuf_get_pkthdr:89,os_mbuf_is_pkthdr:89,os_mbuf_leadingspac:89,os_mbuf_off:89,os_mbuf_pkthdr:89,os_mbuf_pkthdr_to_mbuf:89,os_mbuf_pktlen:89,os_mbuf_pool:89,os_mbuf_pool_init:89,os_mbuf_prepend:89,os_mbuf_prepend_pullup:89,os_mbuf_pullup:89,os_mbuf_trailingspac:89,os_mbuf_trim_front:89,os_mbuf_usrhdr:89,os_mbuf_usrhdr_len:89,os_memblock:90,os_memblock_from:90,os_memblock_get:90,os_memblock_put:90,os_memblock_put_from_cb:90,os_membuf_t:[89,90],os_mempool:[61,89,90],os_mempool_byt:90,os_mempool_ext:90,os_mempool_ext_init:90,os_mempool_f_:90,os_mempool_f_ext:90,os_mempool_info:90,os_mempool_info_get_next:90,os_mempool_info_name_len:90,os_mempool_init:[89,90],os_mempool_is_san:90,os_mempool_put_fn:90,os_mempool_s:[89,90],os_mqueu:89,os_mqueue_get:89,os_mqueue_init:89,os_mqueue_put:89,os_msys_count:89,os_msys_get:89,os_msys_get_pkthdr:89,os_msys_num_fre:89,os_msys_regist:89,os_msys_reset:89,os_mutex:[61,91,140,206],os_mutex_init:91,os_mutex_pend:91,os_mutex_releas:91,os_ok:[91,98],os_pkg_init:225,os_san:[61,97],os_sanity_check:[97,99],os_sanity_check_func_t:97,os_sanity_check_init:97,os_sanity_check_regist:97,os_sanity_check_reset:97,os_sanity_check_setfunc:97,os_sanity_task_checkin:97,os_sch:61,os_sched_get_current_t:241,os_sched_get_current_task:[85,97,241],os_sem:[61,92,98,273],os_sem_get_count:98,os_sem_init:[92,98,273],os_sem_pend:[92,98,273],os_sem_releas:[92,98,273],os_sem_test_bas:230,os_sem_test_case_1:230,os_sem_test_case_2:230,os_sem_test_case_3:230,os_sem_test_case_4:230,os_sem_test_suit:230,os_settimeofdai:100,os_stack_align:[241,272,273,274],os_stack_t:[97,99,217,238,241,272,273,274],os_start:99,os_stime_t:100,os_sysview:288,os_task:[61,85,87,91,92,97,99,238,241,272,273,274],os_task_count:99,os_task_flag_evq_wait:99,os_task_flag_mutex_wait:99,os_task_flag_no_timeout:99,os_task_flag_sem_wait:99,os_task_func_t:[97,99],os_task_info:99,os_task_info_get_next:99,os_task_init:[92,97,99,238,241,272,273],os_task_max_name_len:99,os_task_pri_highest:99,os_task_pri_lowest:99,os_task_readi:99,os_task_remov:99,os_task_sleep:99,os_task_st:99,os_task_stack_defin:99,os_task_state_t:99,os_test:61,os_test_restart:233,os_tick_idl:[189,254,257,280],os_tick_init:189,os_ticks_per_sec:[84,97,100,129,189,208,238,241,256,272,273,274,280],os_tim:[61,100,265],os_time_adv:100,os_time_delai:[99,100,208,238,240,241,272,274],os_time_get:100,os_time_max:100,os_time_ms_to_tick:100,os_time_t:[84,87,97,99,100,189,206,208],os_time_tick_geq:100,os_time_tick_gt:100,os_time_tick_lt:100,os_timeout:[91,98,273],os_timeout_nev:[92,100,207,278,280],os_timeradd:100,os_timersub:100,os_timev:[100,265],os_timezon:[100,265],os_wait_forev:[87,92,99,238,241,272,273],osmalloc:88,ostask:99,ostick:100,osx:[235,240],ota:236,otg1:260,otg2:[260,286],other:[1,6,10,11,20,22,24,29,31,50,55,61,86,87,89,90,92,93,94,97,98,99,100,128,129,130,134,152,153,161,164,169,173,174,176,179,184,187,205,208,210,214,222,223,225,235,238,241,244,245,246,247,249,250,254,255,256,257,263,265,267,272,274,275,276,277,280,282,287,288],otherwis:[89,90,92,99,142,144,147,186,190,267,268],oti:99,oti_cswcnt:99,oti_last_checkin:99,oti_nam:99,oti_next_checkin:99,oti_prio:99,oti_runtim:99,oti_st:99,oti_stks:99,oti_stkusag:99,oti_taskid:99,oui:[19,262],our:[20,55,89,93,222,223,235,236,240,241,244,247,252,253,255,256,265,268,272,273,274,283,286],our_id_addr:[30,248],our_id_addr_typ:248,our_key_dist:27,our_ota_addr:[30,248],our_ota_addr_typ:[30,248],out:[8,9,10,11,20,21,22,23,26,27,61,80,81,82,84,89,95,99,128,130,136,140,141,144,146,160,161,173,180,181,182,198,200,201,202,203,222,226,233,244,246,248,252,253,255,260,266,273,285],out_cpha:190,out_cpol:190,out_data:[162,163],out_dir:[161,162,164],out_fil:[160,162],out_id_addr_typ:30,out_len:[157,162,163,171],out_nam:[136,156,162],out_name_l:156,out_name_len:[156,162],out_off:89,out_tick:100,outdat:58,outfil:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],outgo:218,outlin:5,output:[1,7,12,21,22,27,30,34,35,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,54,57,58,59,62,69,73,75,76,77,81,88,93,99,100,128,129,181,186,193,205,222,224,226,235,238,254,256,257,258,260,261,262,265,266,273,276,280,284,287],outsid:[20,21,89],outweigh:89,over:[20,21,22,23,27,29,31,65,66,67,68,69,70,71,72,73,74,75,76,77,89,128,133,134,136,140,142,150,187,193,205,222,236,241,249,255,256,258,262,266,272,273,275,276,277,279,282,285,287,290],overal:[10,24,89,99,173],overhead:89,overlap:[20,179],overrid:[50,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,93,205,222,223,236,245],overridden:[23,225,245],oversampl:274,overview:[128,276,277,280],overwrit:[6,49,50,59,60,82,83,93,130,179,254,263,266],overwrite_many_test:265,overwrite_one_test:265,overwrite_three_test:265,overwrite_two_test:265,overwritten:[128,172,179],own:[2,11,19,20,39,57,58,59,61,87,91,92,96,98,99,135,179,190,205,222,223,242,243,244,273,274],own_addr_t:[252,253],own_addr_typ:[27,66,252,253],owner:[87,91,269],ownership:[91,179,273,274],pacakg:244,pacif:100,pack:[4,55,81,89,239,257,259,266,276,280,283],packag:[6,9,11,23,24,26,34,39,40,41,43,45,50,51,52,53,55,56,58,59,60,79,83,87,92,94,99,128,129,131,132,134,137,138,152,162,173,181,182,195,196,199,207,208,211,212,213,214,222,223,230,231,232,235,238,245,255,256,257,262,264,267,268,274,277,278,279,290],package1:205,package1_log:205,package2:205,package2_log:205,packet:[20,21,27,29,187,214,218,252,262],packet_data:89,pacman:[7,59],pad:[89,128],page:[1,4,5,6,7,8,10,20,22,57,58,60,80,81,83,93,101,135,180,187,188,206,207,208,209,235,240,242,244,246,250,252,253,255,274],page_s:135,pair:[20,21,22,27,66,128,129,179,199,204,225,248,250],pakcag:214,panel:12,paradigm:89,param:[27,214,219,250],param_nam:214,paramet:[1,20,26,27,28,30,61,66,72,84,86,87,89,90,91,97,98,99,100,136,140,150,182,186,187,189,190,192,193,194,205,207,208,214,225,236,247,249,250,251,252,253,265],parameter_nam:225,parameter_valu:225,parent:[90,154,155,156,161,164,166,172,179],parenthes:89,pariti:193,parlanc:11,parmaet:27,parmet:[27,28],pars:[55,197,214,226,229,252,265],part:[22,29,89,95,128,140,168,173,174,179,180,222,247,248,251,273,274,279],parti:[252,254,266],partial:[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,128,173,174],particular:[4,20,47,61,89,92,93,96,97,128,130,134,152,181,190,192,199,233,250,252,253],particularli:263,partit:[20,93,128,173,179,222],pass:[1,7,12,20,27,61,84,86,87,89,90,91,97,98,99,130,134,135,139,140,150,160,163,171,179,186,187,190,192,193,199,206,207,208,210,214,217,227,228,229,230,247,251,252,253,265,274,280],passiv:27,passkei:[20,22,27],password:[11,58,80,245,269],past:[20,89,274],patch:[257,258,261],path:[2,4,6,10,11,12,29,50,57,58,59,60,61,66,80,81,82,83,93,94,152,159,160,161,162,166,169,171,172,225,267,273,274],pathloss:29,pattern:[27,93,241],payload:[89,132,133,187],pc6:286,pc7:286,pca100040:245,pca:[239,259,274],pcb:273,pci:[134,181],pcmcia:[134,181],pdata:187,pdf:[235,286],pdt:[100,265],pdu:[20,27],peek:241,peer:[10,22,28,66,190,239,249,251,252,253],peer_addr:[27,30,66,247],peer_addr_typ:[27,30,66,247],peer_id:66,peer_id_addr:248,peer_id_addr_typ:248,peer_nam:[66,239],peer_ota_addr:248,peer_ota_addr_typ:248,pem:[37,46],pencil:10,pend:[20,84,87,91,98,128,187,239],per:[11,19,89,91,128,129,173,182,186,190,193,223,241,265,268,273],perfom:128,perform:[3,4,5,9,11,12,20,22,25,27,36,57,58,59,64,80,81,82,89,90,92,93,97,99,101,128,130,135,151,152,166,179,187,192,211,222,225,235,239,249,254,256,257,262,268,272,273,274,275,276,277,280],perhap:267,period:[9,19,22,27,84,97,189,194,238,241],peripher:[9,20,21,24,26,29,30,93,96,134,181,182,187,190,223,239,243,244,247,250,251,252,272,273,274],perman:[71,128,179,222,239,247,250],permiss:[273,274],permit:[20,251,254,280,287,288],persist:[128,151],perspect:222,pertain:250,petteriaimonen:101,phdr:89,phone:[22,31],php:55,phy:[21,27],phy_opt:27,physic:[21,27,29,66,130,183,186,193],pick:[85,92,205,252,253],pictur:[235,257],pid:258,piec:[21,93,273],pig:242,pin:[7,8,20,93,96,99,134,181,183,186,187,190,191,193,206,235,238,256,257,260,262,266,273,274,276,280,286],ping:92,pinout:95,piqu:290,pitfal:89,pkcs15:128,pkg1:224,pkg2:224,pkg:[1,7,11,39,43,50,53,55,57,58,59,61,94,95,101,130,134,135,136,151,152,180,181,205,207,214,223,224,225,236,238,244,256,265,273,274,275,280],pkg_init_func1_nam:225,pkg_init_func1_stag:225,pkg_init_func2_nam:225,pkg_init_func2_stag:225,pkg_init_func:225,pkg_init_funcn_nam:225,pkg_init_funcn_stag:225,pkg_test:232,pkga_syscfg_nam:225,pkga_syscfg_name1:225,pkga_syscfg_name2:225,pkgn_syscfg_name1:225,pkt:273,pkthdr_len:89,pkts_rxd:89,place:[3,55,61,87,100,101,128,140,168,187,190,222,225,231,236,240,241,244,245,251,252,253,260,268,273,282],plai:[12,21,282],plain:[222,258,268],plan:[2,134,214],platform:[2,7,9,11,12,23,24,57,58,59,66,80,81,82,84,92,93,94,96,134,182,187,190,192,231,239,241,244,254,256,257,258,260,261,266,273,274,276,283,284,285,286],pleas:[10,39,57,58,59,94,95,206,210,211,223,235,240,254,255,267,274,280,287,288],plenti:[241,273],plist:61,plu:[89,156,179,187],plug:[8,180,235,260,261,273,274],plumb:272,pmode:276,point:[2,4,6,31,85,89,91,93,95,99,101,128,130,134,141,142,143,144,145,147,148,149,150,161,162,164,179,190,206,244,249,250,252,253,273,274,275],pointer:[67,84,85,86,87,89,90,91,93,98,99,100,130,134,140,141,142,150,153,155,156,157,158,160,162,163,168,170,171,172,179,180,182,187,190,192,197,198,199,205,206,207,208,211,214,215,216,219,220,226,241,249,250],poke:274,polici:[27,267],poll:[87,92,210,276,280],poll_du:276,poll_dur:276,poll_interv:276,poll_itvl:276,poller:[206,210,211,280],pong:92,pool:[73,80,92,262,277,284],popul:[1,7,12,50,62,100,175,179,231,255,266,282,285,290],port:[2,12,66,92,130,134,186,193,205,223,236,245,254,256,257,258,259,260,261,266,273,276,280,283,284,285,286,290],portabl:[134,181],portingto:94,portion:[128,146,187,272,274],posit:[89,100,128,158,168,171,194,260],posix:59,possibilti:[287,288],possibl:[21,22,24,27,28,30,32,36,53,89,91,100,128,134,152,173,174,179,181,182,205,222,223,251,267,276,287],post:[49,84,89,134,238,244],potenti:[96,222,268],pour:[58,81],power:[2,9,20,21,22,27,29,31,55,93,96,130,134,181,182,190,191,208,236,239,245,254,259,260,262,266,275,276,277,278,280,283,286],ppa:4,pre:[4,9,205,223,267,268],precaut:249,prece:89,preced:23,precis:[6,20],predict:241,preempt:[91,92,98,99],preemptiv:[92,99,241],prefer:[3,27,29,138,239,249,273],preference0x01:27,prefix:[61,179,209,225,274],preload:190,prepar:[20,257,259,262,274],prepend:89,preprocessor:[214,223],prerequisit:12,presenc:[93,179,247,252,253,267],present:[1,89,93,128,130,179,195,207,222,245,260,265,274],preserv:89,press:[8,12,98,238,241,244,266,273,276,288],presum:[89,262],pretti:274,prev:[99,179],prev_ind:250,prev_notifi:250,prevent:[91,92,128,169,249],previ:[248,250],preview:[242,245,259],previou:[21,56,57,58,59,78,79,80,81,82,99,128,179,199,224,225,244,245,256,267,272],previous:[6,12,57,58,59,60,80,81,82,83,190,236,248,270,274,276],prevn:[248,250],pri:[77,182,273,283,286],primari:[27,93,128,132,166,239,251,253,272],primarili:101,primary_phi:27,primo:[255,272,273],primo_boot:257,primo_debug:257,primoblinki:257,print:[48,57,58,59,62,129,130,136,154,155,156,161,164,171,193,214,224,226],print_statu:171,print_usag:197,printabl:198,printf:[101,136,226,229],prio:[97,99,189,217],prior:[22,24,49,89,92,128,166,175,179,190,192,262],prioriti:[77,85,87,91,92,98,99,134,173,182,189,225,238,245,274,290],priv:27,privaci:[19,21,27],privat:[19,22,32,37,46,57,66,80,128,252,253],privileg:2,pro:[241,254,257],probabl:[7,10,93,246,269,273],probe:[187,257,266,280],problem:[7,98,128,161,222,224],proce:[3,6,11,128,233,254,257,258,259,260,261,265,266,273,283,286],procedur:[6,11,16,19,20,22,27,28,64,75,80,81,82,128,179,180,222,276,279],proceed:[7,246,252,253],process:[3,6,9,10,20,22,26,27,31,61,84,85,87,89,93,99,128,130,131,179,211,212,216,222,223,225,235,236,238,241,252,253,275,278,279,280,287,288],process_data:169,process_rx_data_queu:89,processor:[4,9,89,99,134,181,182,186,241,254,260,280,287,288],produc:[98,128,223,229,258],product:[55,96,174,186,209,245,273,286],profil:[14,15,16,17,21,27,28,31,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,244,254,283,285,286],profile01:[65,67,68,69,70,71,72,73,74,75,76,77],profile0:77,program:[4,6,8,12,23,85,128,130,188,191,235,241,254,256,257,259,262,266,274],programat:130,programm:[258,287,288],programmat:[137,280],progress:[7,20,128,134,135,179,190,243],prohibit:167,project:[3,6,8,11,33,34,39,40,41,44,49,50,52,55,57,58,59,61,63,88,99,101,128,129,130,135,136,138,151,176,177,181,195,205,223,230,231,238,240,241,242,248,265,269,270,275,276,280,281,282,287,290],prompt:[7,8,11,12,47,58,59,93,244,254,256,257,258,259,260,261,273,276,280],prone:251,proper:[134,274],properli:[24,61,92,97,241,245,249,272,273,274],properti:[12,19,31,59,93,128,133,173,174,179,205,235,246,257],proport:179,propos:10,propper:273,prot_length:89,prot_tif:89,prot_typ:89,protcol:89,protect:[22,88,128,140],protocol:[14,20,21,28,61,66,89,128,132,133,187,277,279,282,285],prototyp:[96,193,225,252,253],provid:[1,2,7,9,11,12,19,20,21,22,27,30,31,37,39,45,50,57,58,59,66,70,71,72,75,80,84,86,88,89,90,91,92,93,95,96,97,99,100,128,130,134,135,136,140,151,152,173,181,186,187,190,192,197,206,209,211,212,214,223,231,234,236,246,252,253,254,262,265,266,267,268,273,274,279],provis:[21,32],provision:31,proxi:[21,31],pseln:274,pselp:274,pset:190,psm:27,psp:[254,258],pst:[68,100,265],pth:260,ptr:193,public_id:27,public_id_addr:30,public_target_address:29,publish:22,pull:[11,49,80,82,87,89,134,186,238,256,260],pulldown:186,pullup:[89,186],purpos:[4,22,50,55,93,97,128,181,186,205,208,210,222,223,241,249,262,274,280],push:[10,242],put:[1,2,7,43,61,80,82,87,89,90,91,93,98,99,100,133,182,241,247,252,253,265,274],putti:[8,256,266,276],pwd:[2,11],pwm:9,pwr:[258,260],px4:4,python:[33,63],qualifi:249,qualiti:281,quat:276,queri:[9,19,50,55,57,58,59,61,62,89,133,155,156,157,158,171,179,206,208,223,247,276,284],question:244,queu:[20,84,87,193,238],queue:[26,61,84,86,89,92,97,98,99,130,179,192,211,214,216,218,225,236,252,253,272,278,280,282,290],quick:[2,3],quickli:[100,181,241,274,276,279,280,282],quickstart:[2,241],quiet:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],quit:[19,93,244,247,252,253,254,257,258,260,261,287],quot:66,r_find_n:211,r_lock:211,r_match_:211,r_regist:211,r_unlock:211,radio:[21,24,245],raff:81,rais:91,ram:[48,93,95,173,182,222,244,254,273,274,275],ram_siz:93,ran:97,rand:27,random:[19,20,25,27,30,66,245,251,252,253,272],random_id:27,random_id_addr:30,randomli:19,rang:[9,20,21,29,89,101,179,197,262],rare:89,rate:[66,84,130,211,212,245,262,276,279,280],rather:[14,20,93,100,101,128,152,166,222,274],raw:[11,57,58,59,80,81,82,130,173,179,225,226,274],rb_bletini:50,rb_blinki:[43,50],rb_blinky_rsa:43,rb_boot:43,rbnano2_blinki:261,rbnano2_boot:261,reach:[97,192],read:[4,6,7,11,12,14,18,19,20,23,27,28,55,61,64,65,68,73,76,77,80,81,82,87,89,99,128,129,130,134,135,136,140,142,145,146,150,152,153,154,155,156,158,160,161,163,164,168,169,171,179,184,186,187,192,199,204,205,210,211,212,213,225,226,235,236,238,239,241,248,250,251,252,253,254,255,258,261,262,265,266,267,272,273,274,275,276,277,279,282,285,287,288],read_acceleromet:280,read_cb:280,read_chr:249,read_config:[153,160,163],read_part1_middl:168,read_rsp_rx:76,read_rsp_tx:76,read_sensor_interv:280,read_test:265,read_type_req_rx:76,read_type_req_tx:[76,236],read_type_rsp_rx:[76,236],read_type_rsp_tx:[76,236],readabl:[245,269],readdesc:7,readdir_test:265,reader:[265,272,274],readi:[10,85,87,99,130,193,199,241,254,273,287],readili:134,readm:[7,11,55,61,93,244,265],readnow:61,real:[1,7,9,87,92,100,130,179,199,234,238,244,251,280,287],realist:265,realli:[89,274],rearm:84,rearrang:89,reason:[10,20,26,27,89,90,128,191,241,248,250,262,265,267],reassembl:21,rebas:11,reboot:[7,71,128,191,222,224,239,275,277],reboot_log:72,reboot_log_flash_area:[224,225],reboot_start:278,rebuild:[32,61,82,278],rec0:128,rec1:128,rec2:128,recal:[249,267],receiv:[10,14,20,27,29,31,55,81,89,130,131,136,187,190,193,206,211,214,217,220,236,247,250,251,258,262,280,283,286],recent:[179,257],recip:6,recipi:29,reclaim:179,recogn:[55,179,274],recommend:[3,4,7,12,57,58,80,81,89,130,188,207,208,214,224,225,236,238,247,251,257,261,263,276,282,287],reconfigur:[190,193,278],reconnect:249,record:[128,179,208,223,231,288],recov:128,recover:128,recreat:268,recur:194,recurs:[55,61,90,169],red:[27,28,235,258,260,286],redbear:[255,290],redefin:224,redistribut:[55,254,267,280,287,288],reduc:[9,22,24,31,87,101,132,205,236,238,264],redund:222,reenter:263,ref0:67,refer:[7,8,10,18,22,23,29,55,67,93,166,169,179,190,209,215,219,222,242,247,252,253,254,256,260,266,273,274,276,286],referenc:[1,179,186],reflect:248,reformat:179,refrain:26,refresh:[2,49,242,254],refus:[280,287],regard:[173,174,265,273,274],regardless:41,region:[89,93,128,167,173,174,179],regist:[23,75,85,89,94,129,131,134,138,152,162,165,181,182,187,196,205,206,210,212,215,217,219,220,221,225,241,249,251,273,274,280],register_:210,registr:[17,180,223,249,280],registri:[89,208],regress:[227,228,230,231,232],regular:[89,155,265],reject:[20,265],rel:[89,92,148],relai:[21,31],relat:[10,27,31,43,135,222,247,250,254,262,280,287,288],relationship:[27,98],releas:[3,4,7,31,49,56,78,79,89,90,91,92,98,134,186,187,214,225,254,266,267,268],release_not:[7,11],relev:[95,128,134,186],reli:[1,7,55,225],reliabl:[21,128,151,173,252,253,268],remain:[93,163,169,179,222,226,229,241,249],remaind:[93,179,229,247,265,267],rememb:[2,41,80,82,91,254,272],remind:254,remot:[1,7,9,12,20,27,28,49,55,66,78,80,81,82,132,187,235,236,238,239,245,254,255,256,266,273,274,280,282,284,285,290],remov:[2,4,6,27,35,45,60,83,86,87,89,90,98,99,130,136,179,222,249,254,280],renam:166,rename_test:265,repeat:[2,11,20,187,240,249],repeatedli:[29,128],replac:[4,6,93,95,101,195,222,225,226,229,240,254,256,272,283,286],repli:27,repo814721459:55,repo:[1,6,7,10,11,41,55,57,61,80,93,134,152,222,235,242,244,254,256,257,258,259,260,261,262,265,266,269,273,274,275,276,280,283,284,286,287,288],repop:7,report:[1,4,6,10,20,93,182,193,223,226,229,254,258,265,273,280,287,288],reposistori:7,reposit:168,repositori:[1,4,11,12,40,41,44,49,51,52,57,61,80,134,235,242,243,244,246,254,255,262,266,270,273,282,285,290],repres:[1,12,61,87,89,98,100,128,130,159,179,206,208,210,211,214,241,251],represent:[128,132],reproduc:[1,61,128,180,252,253],req_api:[61,130,205],req_len:89,request:[12,20,27,66,67,74,78,89,91,93,98,128,132,133,136,140,163,179,191,209,210,212,214,222,236,248,249,254,258,260,262,267,268,272,274,275,279,280,283,286],requir:[1,2,4,6,9,11,20,24,30,31,53,59,61,66,80,82,87,89,90,92,94,95,96,98,128,130,132,135,152,162,173,174,179,192,205,207,214,222,223,224,225,228,235,236,238,241,244,247,249,254,257,261,262,265,267,268,272,273,274,276,278,279,280,290],res:275,reserv:[20,89,93,96,141,143,179,206,241,262],reserved16:179,reserved8:179,reset:[25,64,78,80,81,82,84,97,131,132,191,222,233,236,244,245,248,257,258,259,261,274,276,280,287,288],reset_cb:26,reset_config:254,reset_handl:[93,260],resid:[96,128,174,179,240,251,273],resign:[57,58,59],resist:274,resistor:[238,274],resolut:[22,86,192,223,274],resolv:[1,19,20,22,27,32,55,66,81,224,235,252,253,267],resourc:[9,20,29,61,88,91,98,133,209,210,212,214,235,238,254,275,277,279,280,286,287,288],respect:100,respond:[17,25,222,247,249,251,272,273],respons:[10,15,20,28,29,69,85,90,92,130,132,136,212,222,241,247,249,266,273,279,283,284,286],rest:[1,46,61,89,179,197,199,226],restart:[2,128,129,140,179,191,254],restor:[129,173,176,177,179,257,259,262,274],restrict:[128,140,173,174,179,214,225,249,250],restructuredtext:10,result:[10,12,20,58,62,89,100,160,161,174,179,198,206,223,225,229,231,251,258,265,272,273,274],resum:[21,99,128,179,247,250],resynchron:49,retain:[128,179,225,250],retent:182,retransmit:31,retreiv:133,retri:[261,262],retriev:[57,80,87,89,100,132,152,154,155,156,157,158,161,163,164,171,174,206,208,244,282],reus:[55,81,128,225],reusabl:55,rev:276,revdep:[1,50,62],revers:[1,23,50,62,128,179,249,260],revert:[128,239],review:[10,222,247,265],revis:[4,197,276],revision_num:[267,268],revisit:[244,250],rewrit:179,rewritten:179,rfc:[68,199,265],ribbon:[260,286],rigado:[48,259,274],right:[2,3,10,55,61,129,242,247,260,274],rimari:251,ring:98,rise:186,ristic:251,rite_fil:152,robust:151,role:[20,21,30,31,98,249],room:[89,179,241],root:[2,4,8,31,80,136,165,179,235,267],rotat:166,rotate_log:166,routin:[101,129,140,141,143,162,180,199,230,273],rpa:[19,27],rpa_pub:[27,66],rpa_rnd:[27,66],rsa2048:128,rsa:128,rsp:27,rssi:[27,29,245],rtc:9,rto:[55,92,241],rtt:[130,289,290],rtt_buffer_size_down:287,rubi:[11,55,58],rule:[225,258,265],run:[2,3,4,5,6,8,9,11,23,24,30,34,39,41,43,50,52,55,57,58,59,60,61,64,66,67,77,78,80,81,82,83,84,85,86,87,89,91,92,93,96,97,98,99,128,129,131,132,135,136,152,160,161,179,192,212,214,220,222,224,232,233,234,235,236,239,240,241,244,245,252,253,255,257,258,259,260,261,262,265,266,273,274,275,276,277,278,280,283,285,286,290],runner:12,runtest:[7,131,236],runtest_newtmgr:236,runtim:[25,77,99,254,266,273,283,286],runtimeco:[57,58,59,80,81,82,235,254,266,267,274],rwx:93,rwxr:[80,82],rx_cb:130,rx_data:273,rx_func:193,rx_off:273,rx_phys_mask:27,rx_power:27,rxbuf:190,rxpkt:89,rxpkt_q:89,s_cnt:223,s_dev:206,s_func:206,s_hdr:223,s_itf:206,s_listener_list:206,s_lock:206,s_map:223,s_map_cnt:223,s_mask:206,s_name:223,s_next:[206,223],s_next_run:206,s_pad1:223,s_poll_rat:206,s_size:223,s_st:[206,280],s_type:206,saadc_config_irq_prior:274,saadc_config_oversampl:274,saadc_config_resolut:274,sad:280,sad_i:280,sad_x:280,sad_x_is_valid:280,sad_y_is_valid:280,sad_z:280,sad_z_is_valid:280,safe:[90,152],safeguard:92,safeti:249,sai:[61,89,99,254,266,267,268,273],said:[186,274],sam0:254,sam3u128:[257,259,262,274,280],samd21:[254,266],samd21g18a:254,samd21xx:254,samd:254,same:[6,10,12,22,29,34,37,47,51,59,61,78,89,91,93,94,98,128,130,151,173,179,187,211,222,223,224,225,226,235,238,240,241,247,249,250,255,257,259,262,267,268,269,274,275],sampl:[1,12,21,30,61,89,94,134,212,222,225,274,275,277,279,280,285],sample_buffer1:274,sample_buffer2:274,sample_cmd:221,sample_cmd_handl:221,sample_command:219,sample_modul:[219,221],sample_module_command:219,sample_module_init:219,sample_mpool:219,sample_mpool_help:219,sample_mpool_param:219,sample_target:53,sample_tasks_help:219,sample_tasks_param:219,sane:99,saniti:[77,92,99,244],sanity_interv:97,sanity_itvl:[97,99],sanity_task:97,sanity_task_interv:97,satisfactori:267,satisfi:[179,268],sattempt_stat:223,save:[12,31,49,50,71,100,129,130,187,208,241,249],saw:250,sbrk:[93,257,258,259,260,261],sc_arg:97,sc_checkin_itvl:97,sc_checkin_last:97,sc_cmd:[214,215,219,220,221,273],sc_cmd_f:214,sc_cmd_func:[214,215,219,220,221,273],sc_cmd_func_t:214,sc_func:97,sc_next:152,sc_valtyp:206,scalabl:[151,179],scale:31,scan:[15,21,24,26,27,29,179,245,247,275,277],scan_interv:27,scan_req:27,scan_req_notif:27,scan_result:266,scan_rsp:27,scan_window:27,scannabl:[27,30],scenario:[22,98,195],scene:31,schedul:[9,24,84,87,92,96,99,100,241],schemat:[93,286],scheme:[19,29,93],scientif:21,sck_pin:[135,136],scl:[187,276],sco:20,scope:[12,89,241],scratch:[93,128,140,141,143,222],screen:[8,262],script:[7,42,61,137,139,260],scroll:[12,236,248],sd_get_config:[206,208],sd_read:[206,208],sda:[187,276],sdcard:136,sdk:[45,53,225],search:[12,87,94,134,176,179,211,244,254,260,267,275,280,287,288],searchabl:134,sec000:128,sec125:128,sec126:128,sec127:128,sec:[276,280],second:[22,26,27,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,89,90,93,97,99,100,128,140,194,214,222,235,240,241,247,252,253,256,260,265,272,273,274,276,280],secondar:251,secondari:[27,71,93,128,239,251,273],secondary_phi:27,secret:[22,27],section:[1,5,6,7,11,12,14,24,25,29,30,61,89,92,93,99,128,179,208,222,224,225,236,239,241,243,247,250,251,254,255,266,267,268,274,282,284,285],sector:[128,140,141,146,148,149,150,179,184,260],sector_address:[135,184],secur:[21,128,222,251,269,272],see:[2,4,5,6,7,8,10,11,12,21,22,23,24,33,36,43,55,57,58,59,61,63,64,66,80,81,82,87,89,91,92,93,96,99,128,137,147,160,181,187,190,199,205,206,207,208,209,210,211,212,213,214,223,224,225,235,236,239,240,241,242,244,245,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,263,266,267,268,269,272,273,274,275,276,277,279,280,282,283,285,286,287,288],seek:[89,168,179],seem:[247,274],seen:[90,185,188,267,290],segger:[130,239,257,259,262,266,274,276,280,283,289,290],segger_rtt_conf:287,segment:[21,89,275],sel:286,select:[4,12,19,21,55,59,179,186,190,206,214,254,256,257,258,260,275,277,286,288],selector:206,self:[3,30,94,252,253,265],selftest:265,sem:98,sem_token:98,sema:273,semant:250,semaphor:[92,99,273],semi:273,send:[3,10,14,20,27,28,31,38,42,47,64,66,67,69,74,78,80,81,82,89,130,132,133,187,190,193,212,234,235,240,247,255,272,274,279,284,290],send_pkt:89,sender:247,sens:[20,128,222,274],senseair:[272,273],senseair_cmd:273,senseair_co2:[272,273],senseair_init:273,senseair_read:[272,273],senseair_read_typ:[272,273],senseair_rx_char:273,senseair_shell_func:273,senseair_tx:273,senseair_tx_char:273,sensi:275,sensibl:225,sensor:[9,31,134,223,290],sensor_accel_data:280,sensor_callout:280,sensor_cfg:[206,208],sensor_cli:[213,276,277,280],sensor_cr:[207,276,278],sensor_data_func_t:[208,210],sensor_data_funct_t:208,sensor_dev_cr:207,sensor_devic:206,sensor_driv:[206,208],sensor_ftostr:280,sensor_g:206,sensor_get_config_func_t:[206,208],sensor_get_itf:208,sensor_in:206,sensor_init:[206,208],sensor_itf:[206,207,208],sensor_itf_i2c:[206,207],sensor_itf_spi:206,sensor_itf_uart:206,sensor_listen:[206,210,280],sensor_lo:206,sensor_mg:211,sensor_mgr_find_next_bydevnam:[211,280],sensor_mgr_find_next_bytyp:211,sensor_mgr_l:211,sensor_mgr_lock:211,sensor_mgr_match_bytyp:211,sensor_mgr_regist:[206,208,211],sensor_mgr_unlock:211,sensor_mgr_wakeup_r:[211,280],sensor_nam:276,sensor_o:[212,275,276,277,279,280],sensor_offset:276,sensor_oic_init:[212,275],sensor_oic_obs_r:[212,279],sensor_r:[206,210],sensor_read:[206,210],sensor_read_func_t:[206,208],sensor_register_listen:[210,280],sensor_s:206,sensor_set_driv:[206,208],sensor_set_interfac:[206,208],sensor_set_poll_rate_m:[206,211,280],sensor_set_type_mask:[206,208],sensor_shel:276,sensor_timestamp:206,sensor_type_acceleromet:[206,207,208,278,280],sensor_type_al:206,sensor_type_eul:[208,278],sensor_type_grav:[208,278],sensor_type_gyroscop:[206,208,278],sensor_type_light:206,sensor_type_linear_accel:[208,278],sensor_type_magnetic_field:[206,208,278],sensor_type_non:206,sensor_type_rotation_vector:[208,278],sensor_type_t:[206,208,210,211,280],sensor_type_temperatur:[206,208],sensor_type_user_defined_6:206,sensor_un:[206,210],sensor_unregister_listen:[210,280],sensor_value_type_float:[206,208],sensor_value_type_float_triplet:[206,208],sensor_value_type_int32:206,sensor_value_type_int32_triplet:206,sensor_value_type_opaqu:206,sensor_value_type_temperatur:208,sensornam:[206,207,208,209,276,278,280],sensorname_cli:208,sensorname_ofb:276,sensors_o:277,sensors_test:[275,276,278,279],sensors_test_config_bno055:278,sent:[20,29,130,179,187,190,193,214,249,251,262],sentenc:[62,242],sep:[4,81,82],separ:[20,26,34,35,50,51,66,128,134,176,179,197,205,222,223,249,252,253,254,257,258,260,261,262],seper:287,sequenc:[92,128,130,173,179,226,229],sequenti:[173,174,179],seri:[128,159,191,251,290],serial:[10,66,87,128,129,130,132,133,134,140,182,187,190,223,236,238,239,257,261,262,273,275,276,277,284,285],serror_stat:223,serv:[18,55,93,140,209,222,275],server:[12,14,18,20,21,27,31,133,209,210,212,222,242,251,262,272,275,277,279,280],servic:[16,17,21,27,28,29,31,92,96,134,181,234,247,248,249,250,266,268,273,275],service_data_uuid128:[27,29],service_data_uuid16:29,service_data_uuid32:[27,29],sesnor:280,session:[12,38,39,47,55,57,58,59,61,93,254,257,258,260,261,287],set:[1,2,7,8,9,10,12,19,20,23,24,27,28,29,31,32,34,36,37,39,50,53,55,56,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,89,96,97,98,99,100,128,129,130,134,135,145,152,153,157,160,162,163,167,170,173,175,176,177,179,181,186,187,189,190,192,193,194,199,207,209,211,212,213,214,215,219,220,221,222,223,231,235,238,239,241,245,248,249,252,253,254,255,257,258,259,260,261,262,263,265,266,267,268,269,272,274,276,277,279,280,282,283,285,286,287],setting1:224,setting2:224,settl:25,setup:[11,57,59,60,71,80,82,83,208,222,236,239,244,245,255,256,272,273,274,276,280,282,283,284,285,286],sever:[3,20,21,23,27,61,93,94,96,100,128,179,222,225,233,234,251,252,253,259,260,267],sha256:128,sha:128,shall:[24,27,29],share:[4,22,88,89,91,92,98,222,238,267],sheet:208,shell:[1,7,8,21,30,55,59,80,96,129,130,137,138,205,209,215,216,217,218,219,220,221,223,224,225,235,236,241,255,262,263,272,273,275,276,277,282,287],shell_cmd:[214,215,219,220,221,273],shell_cmd_argc_max:[214,262],shell_cmd_func_t:214,shell_cmd_h:214,shell_cmd_help:[214,219,263],shell_cmd_regist:[214,220,273],shell_compat:214,shell_complet:214,shell_evq:273,shell_init:225,shell_max_compat_command:[214,215],shell_max_input_len:138,shell_max_modul:[214,219],shell_modul:214,shell_newtmgr:[214,236],shell_nlip_input_func_t:217,shell_nlip_input_regist:214,shell_os_modul:[214,263],shell_param:[214,219],shell_prompt_modul:[214,256],shell_regist:[214,221],shell_sample_mpool_display_cmd:219,shell_sample_tasks_display_cmd:219,shell_stack:[138,273],shell_stack_s:273,shell_task:[214,224,225,236,256,263,273,276,280],shell_task_handl:273,shell_task_init:138,shell_task_prio:[138,273],shell_task_prior:224,shell_task_stack_s:138,shield:92,shift:[12,21],ship:[6,10],shortcut:[12,273],shorten:247,shorter:[179,240],shorthand:[89,267],shortli:274,shot:262,should:[4,8,10,12,19,26,30,32,55,57,59,61,81,84,85,86,87,89,90,93,96,97,98,99,128,130,134,137,138,140,146,150,152,156,157,160,170,173,179,181,182,187,190,192,193,194,197,199,208,211,214,223,225,229,231,235,240,241,245,247,248,249,250,252,253,254,256,257,258,259,260,261,262,265,266,267,270,273,274,275,276,278,280,283,286,287,288],show:[1,4,5,6,7,8,11,12,27,28,31,36,39,40,43,50,53,57,58,59,60,61,62,72,80,81,82,83,89,99,129,130,193,205,219,222,224,225,231,234,235,236,238,239,241,242,245,251,254,255,256,257,258,259,260,261,262,266,272,273,274,275,276,277,278,279,280,282,283,284,286,287,288,290],shown:[6,7,12,43,55,61,89,92,128,135,192,208,223,235,249,254,257,259,262,265,267,269,272,274,276,278,280,284],si_addr:[206,207],si_cs_pin:206,si_num:[206,207],si_typ:[206,207],sibl:[11,268],sid:27,side:[12,21,30,129,273],sierra:[58,81],sig:[20,29,31],sign:[6,10,37,46,47,57,58,59,80,206,240,245,255],signal:[20,21,26,29,99,190,250],signatuar:12,signatur:[27,46,128],signed_imag:128,signifi:187,signific:[19,89,190,222,262],significantli:31,signigic:89,silent:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,225,273],silicon:32,sim1:[283,284,286],sim:[6,7,61,94,273,283,285,286],sim_slinki:[224,284],similar:[1,8,10,12,92,93,207,245,262,265,272],similarli:[89,205],simpl:[12,20,21,61,85,89,92,93,98,99,101,129,132,134,151,181,223,235,241,246,247,252,253,256,274,280,282],simplehttpserv:[33,63],simpler:[93,251],simplest:[89,283,286],simpli:[6,10,87,89,90,98,99,130,181,222,235,241,243,248,254,272],simplic:[128,252,253],simplifi:[20,87,90,187],simul:[2,3,5,6,50,233,241,280,284],simultaen:89,simultan:[27,29,30],simultaneosli:152,sinc:[3,20,24,32,61,89,92,93,98,100,128,190,214,223,239,240,241,244,245,252,253,254,256,266,267,272,273,274,275],singl:[2,3,7,22,39,47,55,57,58,59,87,89,98,99,128,134,152,171,173,174,179,208,223,225,246,247,251,252,265,267],singli:179,sissu:191,sit:[14,18,134,181,222],site:[246,257,261],situat:[92,222],six:[22,23],size:[9,20,27,29,39,55,57,58,59,61,73,77,87,89,90,93,99,100,101,128,130,132,135,156,173,174,175,179,190,204,205,222,223,224,225,226,234,236,241,254,258,260,262,264,277],size_t:[156,162,199],sizeof:[89,129,136,153,154,155,156,160,161,163,164,171,204,207,226,241,247,249,250,253,272,273,274],skelet:245,skeleton:[7,44,50,235,244,245,254,257,258,259,260,261,262,266,274,283,284,286],skip:[6,11,47,59,128,140,142,254,257,258,259,260,261,266,283,286],sl_arg:[210,280],sl_func:[210,280],sl_next:210,sl_sensor_typ:[210,280],slash:179,slave:[27,29,187,190],slave_interval_rang:29,sleep:[9,85,87,89,91,98,99,100,182,238,241,256],slightli:[96,222],slink:[283,284,286],slinki:[7,45,61,130,152,176,177,222,224,225],slinky_o:[7,61],slinky_sim:224,slinky_task_prior:224,slist_entri:[152,179,206,210],slist_head:[91,206],slot0:128,slot1:128,slot:[7,20,61,71,195,222,239,245,248,254,256,257,258,259,260,261,262,263,266,273,276,280,283,286,287,288],slower:[3,96,97],small:[20,24,89,130,134,171,222,223,251,258,265,273,274],smaller:[10,89,132,194,222,242,254],smallest:[89,179],smart:[21,31,55,61,273,279],smarter:268,smp:[20,21],snapshot:[43,257,261,268],snip:[1,36,43,55,61,236,244,245,274],snippet:249,soc:96,socket:2,soft:[64,80,81,82,191],softwar:[1,3,4,6,21,38,42,47,50,96,97,128,181,234,239,254,257,259,260,266,267,273,274,276,280,283,287],solder:273,solut:[55,181,252,253],solv:[128,222],some:[1,8,12,30,64,76,89,90,92,93,96,98,99,101,128,130,136,140,151,152,153,160,163,173,174,182,190,193,205,219,224,231,235,236,241,246,247,248,249,250,252,253,256,257,258,261,262,263,265,266,267,273,274,280,283,286,287,288,290],somebodi:[129,273],somehow:61,someon:[10,85,274],someth:[20,235,244,245,266,269,287],sometim:[129,254,266,287],somewhat:[92,128,179],somewher:[128,179,222,274],soon:[21,268,274],sooner:194,sophist:241,sort:[179,248],sourc:[1,4,9,21,24,50,56,58,60,61,79,81,83,89,96,128,129,134,166,179,208,209,225,231,238,246,254,257,258,260,266,267,268,274,280,282,286],space:[12,21,34,35,50,51,66,89,96,140,141,156,173,174,187,195,198,214,222,223,244,252,255,266,282,285,290],spec:20,specfi:276,special:[8,89,96,135,222,226,229,251,252,253,265,266,267,268,273,276],specif:[11,20,21,22,23,29,31,57,58,59,61,62,85,87,89,90,92,93,95,96,100,128,132,134,150,152,173,174,181,186,187,189,190,191,192,193,195,205,206,208,222,225,226,230,231,236,241,245,247,249,250,252,253,254,260,262,265,266,267,273,274,283,286],specifi:[1,4,6,7,10,11,12,20,27,30,34,35,37,39,41,43,45,46,50,51,53,55,57,58,59,61,65,66,67,68,69,70,71,72,73,74,75,76,77,84,86,87,89,90,93,96,97,99,100,101,130,132,133,150,152,153,154,155,156,157,158,159,160,161,163,164,166,167,168,169,170,171,172,174,176,177,179,182,186,187,205,206,207,208,209,210,211,212,213,214,215,216,219,224,226,229,231,236,239,244,247,249,250,251,252,253,254,259,260,263,266,267,268,269,274,276,279,280,283,286,287],spectrum:21,speed:[9,21,179,193,254,257,258,259,262,274,287],spew:266,sphinx:[33,63],spi:[8,21,96,134,135,136,186],spi_cfg:[135,136],spi_miso_pin:[135,136],spi_mosi_pin:[135,136],spi_num:[135,136,190],spi_sck_pin:[135,136],spi_ss_pin:[135,136],spi_typ:190,spitest:[7,61],split:[7,71,93,179,191,224,239,274,283,284,286],split_app:7,split_app_init:225,split_config:[283,284],split_elf_nam:61,split_file_test:265,split_load:225,splitti:[7,61,222,224],spot:93,spread:21,spuriou:265,squar:187,sram:260,src:[6,7,11,45,50,55,61,70,80,82,89,93,95,134,176,177,180,181,184,188,189,191,197,225,231,240,241,244,254,257,258,259,260,261,262,265,266,272,273,274,276,278,280,283,284,286],src_off:89,ss_op_wr:249,ss_pin:[135,136],ssec:27,sstatic:272,st_cputim:280,st_ostv:280,stabil:[267,268],stabl:[1,7,57,58,80,81,267,268],stack:[1,9,18,21,24,26,27,30,55,77,85,87,89,92,99,222,225,243,244,245,246,247,249,250,251,262,273],stack_bottom:99,stack_len:217,stack_ptr:217,stack_siz:[97,99],staff:[80,81],stage:[97,128,134,207,222,225],stai:[160,161],stailq_entri:223,stale:[2,254],stand:[89,232],standalon:[10,222],standard:[7,21,31,100,132,133,134,135,151,152,160,181,247,252,253,262,272,273],standbi:[21,195],start:[2,4,8,9,10,12,26,27,28,30,38,47,59,62,71,82,86,88,89,90,91,92,93,95,99,128,134,137,140,141,143,146,152,159,160,168,171,174,179,187,188,190,191,192,193,194,203,211,222,225,233,235,241,242,243,244,247,254,255,256,257,258,260,261,262,265,267,272,273,274,275,276,277,278,280,284,288,290],starter:240,startup:[19,21,26,30,128,222,225,241,252,253],startup_stm32f40x:[258,260],stash:49,stat:[1,7,64,78,80,81,82,131,132,225,236,244,262,263,273,274,280,287],state:[6,21,26,31,52,55,85,87,93,97,99,100,133,140,176,177,181,182,186,199,238,239,241,254,260,268,270],statement:[11,225,236],statist:[1,48,64,73,76,77,80,81,82,262,283,284,286,287],stats_cli:[1,263,273],stats_hdr:[208,223],stats_inc:223,stats_incn:223,stats_init:[208,223],stats_init_and_reg:223,stats_module_init:225,stats_my_stat_sect:223,stats_nam:[1,37,38,76,208,223],stats_name_end:[208,223],stats_name_init_parm:[208,223],stats_name_map:223,stats_name_start:[208,223],stats_newtmgr:[1,224,225,236],stats_regist:[208,223],stats_sect_decl:[208,223],stats_sect_end:[208,223],stats_sect_entri:[208,223],stats_sect_start:[208,223],stats_size_16:223,stats_size_32:[208,223],stats_size_64:223,stats_size_init_parm:[208,223],statu:[10,11,20,136,171,222,239,248,250,252,254,262,273,283,284,286],stdarg:[226,229],stderr:197,stdio:274,stener:210,step:[2,4,6,7,12,47,55,57,59,80,82,92,93,94,128,130,187,207,222,223,242,244,245,252,253,254,257,258,259,260,261,262,266,267,273,274,283,284,286],sterli:268,sterlinghugh:268,stic:[249,251],still:[5,59,66,86,96,97,248,282,287],stitch:1,stksz:[77,273,283,286],stkuse:[77,273,283,286],stlink:258,stm32:[258,260,286],stm32_boot:286,stm32_slinki:286,stm32f2x:258,stm32f303vc:[235,240],stm32f3discoveri:235,stm32f4:[134,135,136,255],stm32f4_adc_dev_init:134,stm32f4_hal_spi_cfg:[135,136],stm32f4disc_blinki:258,stm32f4disc_boot:258,stm32f4discoveri:[53,258],stm32f4discovery_debug:258,stm32f4x:258,stm32f4xx:186,stm32f4xxi:186,stm32serial:286,stm32x:258,stm34f4xx:186,stm:286,stmf303:235,stmf32f4xx:186,stmf3:235,stmf3_blinki:[235,240],stmf3_boot:[235,240],stop:[2,27,84,86,140,150,187,188,192,193,247,266,276],stopbit:193,storag:[20,129,140,167,245,267],store:[1,11,22,27,31,34,35,37,50,55,57,59,61,80,85,87,89,100,129,130,140,147,179,190,195,198,199,217,223,244,247,249,250,267,273,274,275,280,282],stori:89,str:[130,193,199],straight:[247,273],straightforward:[244,274],strategi:241,strcmp:[129,273],stream:[21,199,204,205,217],strength:29,strict:[249,254],strictli:[173,174,179,274],string:[1,10,27,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,101,129,130,133,139,160,171,197,198,199,204,214,215,219,223,225,226,229,252,253,265,267,268,272,273,274,284],strip:[46,89],strlen:[247,249],strongli:152,struct:[84,85,86,87,89,90,91,92,93,97,98,99,100,128,129,130,134,135,136,140,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,160,161,163,164,165,166,168,169,170,173,176,177,179,180,182,185,187,190,192,197,198,199,200,201,202,203,204,205,206,207,208,210,211,214,215,216,217,218,219,220,221,223,226,231,232,238,241,247,249,250,251,252,253,256,265,272,273,274,278,280],structur:[7,11,12,18,28,55,61,78,84,87,89,90,91,92,93,98,99,128,130,134,136,146,162,175,178,187,192,197,198,205,207,208,209,215,219,220,223,249,255,265,266,273,274,278,282,285,290],strutur:89,stub:[61,101,205,238,252,253,256,265,273,274],studio:[5,13],stuff:267,style:[130,242],sub:[28,43,45,50,70,71,72,75,76,134,155,253,270],subcmd1:220,subcmd2:220,subcommand:[45,50,62,64,66,70,71,72,75,76,220],subcompon:21,subdirectori:[2,231,265],subfold:257,subject:179,submit:11,subrang:20,subscrib:[28,248,250,274],subsequ:[21,22,128,160,161,222,247,250,265],subset:[22,176,206,208,211,276],substitut:[6,242,244,245],subsystem:[30,59,87,129,130,135,136,214],subtract:[98,100],subtre:129,succe:[176,265],succesfulli:[239,240,244,245,248,254,256,257,258,259,260,261,262,266,273,276,280,283,286,287,288],success:[3,20,55,84,86,89,92,97,99,100,136,141,142,143,144,145,146,148,149,150,152,153,154,156,157,159,160,161,163,164,165,166,167,168,169,170,171,172,176,177,178,179,182,186,187,190,192,193,194,197,200,201,202,203,204,215,217,218,219,229,232,233,235,240,249,251,260,262,265,274],successfuli:[93,265,280],successfulli:[7,20,55,90,93,97,222,235,236,239,240,244,245,248,250,252,253,254,257,258,259,260,261,262,266,273,274,275,276,277,280,283,284,286],sudo:[4,6,7,11,57,58,60,80,83,245],suffici:[89,90,179],suffix:265,suggest:[3,6,211,234,263,290],suit:[6,55,228,230,231,244,264],suitabl:[20,93,173],summar:[93,222],summari:[6,11,19,36,214,219,253],supersed:179,supervision_timeout:[30,248],supplement:[29,247],supplementari:93,suppli:[152,170,172,176,191,265],support:[1,3,4,6,7,10,12,14,19,20,21,22,29,30,32,53,58,66,81,86,92,93,95,101,128,130,132,133,134,135,136,151,179,182,186,190,199,205,206,207,208,211,214,215,219,220,222,223,225,238,239,244,245,246,247,251,252,254,255,257,266,267,268,273,277,282,284,285,290],suppos:[43,91,98,186,223],suppress:284,suppresstasknam:12,sure:[2,7,8,57,89,198,244,245,247,249,254,256,262,265,267,272,273,274],suspend:276,svc:251,sw_rev:276,swap:[2,85,93,173,180,222,254,287],swclk:254,swd:[254,257,258,259,260,261,262,266,274,280],swdio:254,sweep:179,swim:258,swo:[257,266,280],symbol:[4,7,12,61,222,254,258,280,287,288],symlink:[60,83],sync:[20,25,39,57,58,59],sync_cb:[26,252,253],synchron:[20,39,49,57,58,59,96,98,134,190],syntax:[225,242,262,263,276],synthes:24,sys:[1,7,55,57,61,129,130,131,180,205,214,223,224,225,232,236,238,244,256,265,266,273,274,276,280,288],sys_config:[129,222],sys_config_test:7,sys_console_ful:222,sys_einv:[208,280],sys_enodev:208,sys_flash_map:[258,260],sys_log:222,sys_mfg:[7,254,257,258,259,260,276,283,286],sys_shel:222,sys_stat:222,sys_sysinit:[7,254,257,258,259,260,261,276,283,286],syscfg:[23,24,32,37,38,50,61,93,97,129,130,152,173,207,208,209,211,212,213,214,215,219,223,224,236,239,245,254,256,257,262,263,265,266,273,274,276,277,279,280,287,288],sysconfig:236,sysflash:[254,260],sysinit:[7,25,26,92,99,130,196,207,225,238,252,253,254,256,262,265,266,273,274,280],sysinit_assert_act:225,sysinit_panic_assert:[207,208,225],sysresetreq:254,system:[1,3,6,8,9,25,39,50,57,58,59,61,62,86,89,90,93,96,97,99,100,101,128,129,130,131,140,154,155,156,160,161,162,164,165,167,173,175,176,177,179,182,186,190,193,195,196,205,219,222,223,233,234,241,244,245,254,256,257,260,262,263,266,267,268,273,280,288],system_l:186,system_stm32f4xx:[258,260],systemview:290,sysview:[288,289],sysview_mynewt:288,sytem:188,syuu:59,t_arg:99,t_ctx_sw_cnt:99,t_dev:206,t_driver:206,t_flag:99,t_func:[99,241],t_interfa:206,t_itf:206,t_name:99,t_next_wakeup:99,t_obj:99,t_poll_r:206,t_prio:[85,99],t_run_tim:99,t_sanity_check:99,t_stackptr:99,t_stacksiz:99,t_stacktop:99,t_string:204,t_taskid:99,t_type_m:206,t_uinteg:204,tab:[30,36],tabl:[19,20,93,128,131,151,160,179,225,249,251,262,276],tag:268,tail:[89,179],tailq_entri:[179,192],tailq_head:179,take:[6,7,23,45,50,55,62,89,92,129,141,198,211,222,223,241,247,249,250,251,252,253,265,272,274],taken:[7,61,87,92,249,267,268,272],talk:[245,247,284],tap:[4,56,79],tar:[4,57,58,59,60,81,82,83],tarbal:4,target:[3,4,5,7,12,25,29,32,34,35,36,37,38,39,42,43,46,47,48,53,55,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,96,129,195,222,223,224,225,231,239,241,243,252,253,255,263,265,273,275,277,279,285],target_nam:34,targetin:[252,253],task1:[92,97,283,286],task1_evq:97,task1_handl:92,task1_init:92,task1_prio:92,task1_sanity_checkin_itvl:97,task1_sem:92,task1_stack:92,task1_stack_s:92,task2:[92,283,286],task2_handl:92,task2_init:92,task2_prio:92,task2_sem:92,task2_stack:92,task2_stack_s:92,task:[9,11,55,64,77,80,81,82,84,85,87,89,90,91,92,93,95,96,98,100,130,134,139,169,202,211,214,216,219,225,233,236,249,256,262,272,273,275,278,280,283,284,286,290],task_l:238,task_prior:[224,225],tasknam:12,taskstat:[64,78,80,81,82,131,133,236,283,286],tbd:[251,274],tc_case_fail_arg:231,tc_case_fail_cb:231,tc_case_init_arg:231,tc_case_init_cb:231,tc_case_pass_arg:231,tc_case_pass_cb:231,tc_print_result:[231,232],tc_restart_arg:231,tc_restart_cb:231,tc_suite_init_arg:231,tc_suite_init_cb:231,tc_system_assert:231,tck:254,tcp:[254,258],tdi:254,tdo:254,teach:241,team:[4,181,242],technic:[10,235],technolog:[21,135],tee:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],telee02:262,telee02_boot:262,telemetri:252,telenor:262,teli:[252,253],tell:[30,55,140,155,193,195,199,222,223,225,235,247,249,252,253,260,268,272,274],telnet:[266,280,287],tem:276,temperatur:[159,206,276],templat:[7,45,244,265,273,280],temporari:[20,97,128,179],temporarili:[91,97],ten:190,term:[3,128,134,152,186,189,267],termin:[2,4,7,8,10,12,20,21,27,59,82,130,154,155,156,160,161,164,171,173,174,176,179,245,247,250,251,254,256,257,258,259,260,261,262,266,278,280,287],terminato:156,termintor:156,terribl:[7,244],test:[4,6,12,39,50,57,58,59,61,64,67,71,75,80,81,82,128,130,131,181,208,209,222,225,226,227,228,229,230,231,232,233,236,239,245,251,252,253,254,256,257,259,264,267,272,274,284,287,290],test_assert:[227,228,230,265],test_assert_fat:[226,265],test_cas:[226,265],test_case_1:228,test_case_2:228,test_case_3:228,test_case_nam:[227,228],test_datetime_parse_simpl:265,test_datetime_suit:265,test_json:265,test_json_util:265,test_project:44,test_suit:[227,228,265],test_suite_nam:230,testbench:[7,61],testcas:[7,265],testnam:75,testutil:[7,180,265],text:[39,48,69,89,130,171,214,222,229,258,283,286],textual:1,tgt:129,tgz:4,than:[3,7,14,20,29,72,89,91,92,93,96,98,99,100,101,128,132,152,163,166,179,190,194,211,214,222,224,226,228,241,245,251,252,253,257,274,280,287],thank:30,thee:96,thei:[1,6,20,29,30,61,84,87,89,90,92,93,98,99,128,129,134,169,179,192,222,223,225,231,234,240,247,248,249,251,252,253,262,263,265,267,268,270,272,276],their_key_dist:27,them:[2,9,55,89,93,98,99,160,177,179,195,222,223,225,241,245,247,252,253,254,265,266,267,274,275,290],themselv:[89,92,251],theori:[55,225],therebi:[98,140],therefor:[20,90,128,148,152,160,241,269],thi:[1,2,3,4,5,6,7,8,9,10,11,12,14,18,20,21,22,23,24,25,26,27,29,30,31,32,33,34,41,43,52,53,55,57,58,59,60,61,63,64,66,71,72,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,128,129,130,132,134,135,136,137,138,140,141,142,143,146,152,154,155,156,158,159,160,161,162,164,166,168,169,171,172,173,174,175,176,178,179,180,181,182,183,185,186,187,188,190,192,193,194,195,196,199,200,201,202,203,204,205,206,207,208,209,210,211,212,214,215,216,217,219,221,222,223,224,225,227,228,229,230,231,232,233,234,235,236,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],thing:[1,10,21,24,26,55,61,90,93,96,97,134,187,206,222,252,253,265,268,272,273,274,278,280],thingi:[207,287,288],thingy_boot:280,thingy_debug:[280,287,288],thingy_my_sensor:280,think:[10,128,274],third:[6,19,100,245,247,254,266,274],thorough:268,those:[1,31,32,39,55,57,58,59,61,93,96,128,137,141,222,234,268,272,273,274],though:[89,128,179,187,211,222],thought:274,thread:[9,244,254,258,260],three:[2,11,19,59,61,89,128,130,166,205,222,223,225,238,241,244,246,247,253,254,260,262],through:[21,23,61,62,89,99,128,133,140,146,151,154,155,156,161,164,173,174,181,190,199,211,236,246,248,250,253,254,256,260,265,266,272,273,274,277,279,282],throughout:[1,93,265],throughput:21,thrown:6,thu:[89,93,98,128,134,173,174,186,187,190,241],tick:[84,86,91,96,97,98,100,130,187,192,214,241,256,257,273,280],ticker:84,ticket:10,tickl:[97,194],tid:[77,273,283,286],tie:222,tied:152,ties:[89,244],time:[1,7,9,10,11,12,19,20,21,22,25,27,31,34,43,57,58,59,60,61,77,82,83,84,87,89,92,93,96,97,98,99,128,130,136,140,151,160,161,179,181,194,206,214,222,223,234,238,240,241,244,247,249,251,252,253,257,259,262,265,266,272,273,274,276,280,282,287],time_datetim:[222,280],time_datetime_test:265,time_in_flight:89,timeout:[20,27,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,91,98,187,239,273],timer:[24,84,86,87,93,97,181,189,194,211,280],timer_0:24,timer_4:262,timer_5:24,timer_ev_cb:[256,280],timer_interrupt_task:238,timer_num:192,timestamp:[72,206],timev:100,timezon:[100,265],timo:87,timo_func:84,timtest:[7,61],ting:[252,253],tini:[260,286],tinycbor:[7,275],tinycrypt:7,tinyprintf:101,tip:97,titl:[8,285],tlm:252,tlv:[27,128],tmp:[57,59,80,82,169,222],tmpstr:280,tmr:192,todo:[61,179,252,253],togeth:[1,43,55,61,89,137,179,222,248,260,274],toggl:[7,99,186,238,241,256],token:[75,92,98,214,269],told:195,too:[20,89,92,100,134,160,161,179,182,224,273],took:258,tool:[1,2,3,5,6,7,9,10,12,13,39,54,57,58,61,62,63,66,78,79,80,81,92,93,94,96,133,134,223,224,225,231,235,236,238,239,243,244,245,254,255,260,262,263,265,266,267,268,269,274,275,280,282,284,285,287,288,290],toolbox:2,toolchain:[2,3,5,7,12,33,59,63,236,239,245,255,266,282,285,290],toolkit:3,tools_1:[57,58,59,81,82],top:[1,10,12,35,61,89,99,134,173,187,224,245,252,253,265,274],topic:1,total:[9,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,99,101,128,179,257,259,262,274],tour:246,track:[19,21,22,100,128,179],tradeoff:222,trail:[89,128],trailer:128,transact:[20,187,190],transfer:[22,190,273],transform:179,transit:128,translat:[186,252],transmiss:[20,27,190,193,218,262],transmit:[29,31,130,187,190,262],transmitt:193,transport:[20,21,27,80,130,133,225,239,244,245,254,258,273,274,275,277,279,282],travers:[89,154,155,156,161,164],traverse_dir:[154,155,156,161,164],treat:[140,200],tree:[1,6,7,50,55,61,93,159,244],tri:[3,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,129,136,224,262],trial:93,tricki:99,trig:186,trigger:[6,10,87,186],trim:89,trip:97,triplet:206,troubleshoot:[223,224],truncat:[157,169,170,172],truncate_test:265,trust:[22,27,273],tt_chr_f:251,tt_svc_type_p:251,ttl:[245,286],tty:[8,256,266,273,276,283,286],ttys002:66,ttys003:66,ttys005:284,ttys012:[283,286],ttys10:8,ttys2:[8,256,266,276,283,286],ttys5:8,ttyusb0:[10,66,245],ttyusb2:[8,266,283,286],ttyusb:[8,256,266,276,283,286],tu_any_fail:[232,265],tu_case_init_fn_t:231,tu_case_report_fn_t:231,tu_config:[231,232],tu_init:231,tu_restart_fn_t:231,tu_suite_init_fn_t:231,tupl:100,turn:[24,134,181,182,186,222,236,244,245,255,256,259,267,268,276,283],tutiori:[73,76],tutori:[2,3,6,7,8,10,12,21,23,59,77,207,208,212,213,214,231,235,236,238,239,241,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,265,266,272,273,274,275,276,277,278,279,280,283,284,286],tv_sec:[100,265,280],tv_usec:[100,265,280],tvp:100,tweak:151,two:[2,3,10,12,18,19,21,22,23,27,31,43,45,50,55,61,66,89,90,91,92,93,95,99,100,128,130,132,173,179,187,205,206,214,220,222,223,224,225,235,236,238,241,244,245,247,249,252,253,254,256,257,258,259,260,261,262,265,266,267,268,269,270,273,274,275,276,279,280,283,286],tx_data:273,tx_done:193,tx_func:193,tx_len:273,tx_off:273,tx_phys_mask:27,tx_power_level:[27,29],tx_time_on_air:262,txbuf:190,txd:262,txpower:262,txrx:190,txrx_cb:190,txt:[70,153,157,160,163,170,171,172,288],type:[1,7,8,10,12,19,20,23,27,29,30,31,39,43,45,46,53,55,57,58,59,61,66,84,89,90,93,96,99,128,130,133,160,161,176,177,179,186,190,193,199,200,204,205,207,210,212,214,217,224,225,226,227,228,229,230,235,238,239,241,244,245,247,248,249,250,251,252,254,257,258,259,260,262,265,266,267,268,269,272,273,274,278,279,280,283,284,286,287,288],typedef:[26,87,90,97,99,100,130,150,186,190,192,193,199,206,214],typic:[3,9,21,26,31,55,61,89,92,93,94,97,128,130,134,173,174,181,183,186,187,190,205,206,222,223,225,231,247,252,253,265],tz_dsttime:[100,265],tz_minuteswest:[100,265],u8_len:136,uart0:[130,273,284],uart1:273,uart:[7,8,21,55,96,130,134,188,217,236,244,245,257,258,259,260,261,262,273,280,287],uart_0_pin_rx:273,uart_0_pin_tx:273,uart_bitbang:[188,257],uart_flow_control_non:130,uart_hal:[7,258,259,260],uart_rx_char:193,uartno:273,ubuntu:[4,6,7,57,80],uci:23,udev:258,udp:66,uext:286,uicr:23,uid:252,uint16:[27,28],uint16_max:27,uint16_t:[20,89,90,91,97,98,99,128,135,140,141,179,187,190,199,206,217,223,249,272,273,274],uint32:[27,71],uint32_max:27,uint32_t:[84,86,89,90,91,98,99,100,128,135,140,148,152,153,157,158,160,162,163,168,171,172,174,175,179,182,184,187,189,190,192,194,205,206,208,223],uint64:27,uint64_t:199,uint8:27,uint8_max:27,uint8_t:[23,32,87,89,90,91,93,97,99,128,130,134,135,140,148,152,153,154,155,156,160,161,162,163,164,168,171,174,179,182,184,185,187,190,193,199,205,206,208,217,223,247,249,252,253,273,274],uint_max:204,uinteg:[199,204],ultim:249,umbrella:222,unabl:[2,179,254,257,258,261],unaccept:20,unadorn:20,unam:2,unc_t:214,unchang:[93,179],unconfirm:262,und:[27,30],undefin:[82,182,225],under:[4,7,10,11,12,20,26,34,55,61,71,101,129,134,214,251,254,258,259,261,273,274],underli:[96,134,140,152,160,161,180,181,190,206],underlin:242,understand:[7,100,206,222,234,235,239,262,267,274],understood:[160,226],underwai:128,undesir:92,undirect:[27,247],unexpect:[20,154,155,156,161,164,167],unexpectedli:[20,265],unicast:31,unicod:151,unidirect:27,unifi:134,uniform:[29,59],uniformli:62,uninstal:7,unint32:71,uninterpret:225,union:[179,199,249],uniqu:[9,19,32,93,179,182,205,223,224,225,252,262],unit:[1,7,20,27,39,51,57,58,59,84,99,128,225,265,290],unittest:[7,45,55,61,225,244,265,273],univers:193,unix:[2,59,152,235],unknown:[20,224],unlabel:273,unless:[27,99,128,173,187,195,225,273,274],unlicens:21,unlik:[20,90,265],unlink:[58,60,81,83,153,161,166,169],unlink_test:265,unlock:[206,211],unmet:93,unpack:[57,59],unplug:261,unpredict:161,unprovis:31,unregist:210,unresolv:[181,265],unrespons:20,unset:[50,128],unsign:[99,199,223,261,280],unspecifi:[20,42],unstabl:[57,58,80,81],unsuccess:187,unsupport:[20,251],unsur:179,unsync:26,untar:4,until:[20,26,61,86,87,89,92,98,130,140,179,187,190,193,247,252,253,262,267],unuesd:250,unus:[71,272,273,274],unwritten:128,updat:[2,4,15,20,27,30,36,37,49,52,57,58,59,60,80,81,83,89,128,142,179,225,248,250,256,257,263,265,272,274,275,280],upgrad:[2,39,56,59,79,93,128,130,235,236,245,254,266,287,290],uplink:262,uplink_cntr:262,uplink_freq:262,upload:[10,43,70,71,152,195,222,239,257],upon:[1,3,10,26,55,89,128,179,223,250],upper:[23,179,193,225],uppercas:209,upstream:132,uri:[27,29,133],url:[27,252,265,267],url_bodi:252,url_body_len:252,url_schem:252,url_suffix:252,usabl:[1,90,93,244,252],usag:[1,9,57,58,59,62,80,81,82,89,99,134,135,152,173,179,187,206,214,219,223,225,241,262,273,284],usart6_rx:286,usart6_tx:286,usb:[2,3,8,21,42,66,236,238,239,241,245,254,255,257,258,259,260,261,262,266,274,276,282,283,285,286],usbmodem14211:66,usbmodem14221:66,usbmodem401322:8,usbseri:[8,256,266,273,276,283,286],usbttlseri:245,use:[1,4,5,6,7,8,11,12,14,19,20,21,22,24,27,30,32,41,45,50,51,55,56,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,87,93,94,96,98,99,128,129,130,131,134,136,140,141,151,152,165,166,169,173,176,177,179,180,187,190,192,199,200,201,202,203,204,205,206,207,208,209,210,211,214,215,216,219,220,222,223,224,225,231,235,236,237,238,239,240,241,243,244,245,247,248,249,250,252,253,254,255,256,257,260,262,263,265,266,268,269,272,273,274,275,276,279,280,282,283,284,285,286,287,288],use_wl:27,use_wl_inita:27,usec:[86,276,280],used:[6,7,10,11,12,19,20,22,23,24,27,29,30,31,34,46,49,61,66,72,84,86,89,90,91,93,98,99,100,101,128,129,130,135,136,140,143,151,152,156,179,184,187,188,190,192,194,199,206,207,208,214,222,223,224,225,226,227,228,229,230,233,234,235,240,241,245,247,249,250,251,252,253,254,262,265,266,267,268,274,275,276],useful:[3,20,92,171,208,244,267],user:[1,2,4,6,7,8,9,18,20,22,24,48,55,58,59,61,78,80,81,82,84,87,89,90,93,94,97,128,130,131,134,135,140,146,152,173,182,190,191,192,193,213,222,223,224,225,232,235,238,251,254,260,262,266,267,268,269,273,274,280,286],user_defined_head:89,user_hdr:89,user_hdr_len:89,user_id:[224,225],user_manu:235,user_pkthdr_len:89,usernam:[10,48,59,267],uses:[2,4,6,7,8,12,14,20,21,22,23,24,30,32,55,65,66,67,68,69,70,71,72,73,74,75,76,77,78,86,87,93,97,100,101,128,130,131,132,133,134,136,140,151,152,179,181,186,187,205,206,207,208,210,211,214,216,220,224,225,231,233,236,238,239,249,250,251,254,256,259,266,267,269,273,275,276,277,280,283,286],using:[1,2,4,6,7,8,11,12,19,20,21,24,26,27,28,29,31,33,36,37,43,44,57,58,59,60,61,63,66,76,80,81,82,83,84,86,87,89,91,92,94,95,96,97,98,99,100,101,128,129,134,140,143,145,150,151,152,160,179,181,186,187,189,190,192,194,199,208,209,211,214,222,223,225,227,228,230,231,235,236,238,239,241,242,244,245,251,253,254,255,256,257,258,259,260,261,262,265,266,272,273,274,275,277,280,284,285,287,288],usr:[4,6,11,36,57,58,59,60,80,81,82,83],usu:95,usual:[24,89,90,101,134,203,205],utc:[68,100,265],utctim:100,utf:29,util:[7,11,20,21,31,92,101,130,151,152,188,190,205,225,236,265],util_cbmem:280,util_cbmem_test:7,util_crc:[280,284,286],util_mem:[7,254,256,257,258,259,260,261,262,266,276,280,283,284,286],util_pars:[262,276,280],uuid128:[27,29,249,251,253],uuid128_is_complet:[27,29],uuid16:[27,28,29,249,272,274],uuid16_is_complet:[27,29],uuid32:[27,29],uuid32_is_complet:[27,29],uuid:[27,28,29,30,32,66,249,251,253,272,274,275],uvp:100,v10:280,v14:258,v25:258,va_arg:208,va_list:[226,229],val:[23,24,39,50,57,58,59,61,93,129,183,186,190,200,205,223,224,225,236,252,253,256,262,273,275],valid:[20,39,50,53,57,58,59,61,66,72,89,128,135,140,150,152,169,176,177,179,187,190,206,249,265,273,274],valu:[1,4,7,12,20,23,24,27,28,29,30,37,39,42,46,50,53,57,58,59,61,62,64,65,66,68,71,72,75,80,81,82,85,89,90,93,98,99,100,128,129,134,174,175,179,182,186,187,190,191,192,193,194,199,205,207,209,211,214,222,223,236,238,239,245,248,249,250,251,252,253,263,267,268,272,273,274,276,277,279,280,282,287],valuabl:267,value1:[50,225],value2:[50,225],valuen:225,vanilla:151,vari:[9,89,96,128],variabl:[1,4,11,24,34,37,50,59,61,62,65,89,90,99,129,130,173,199,205,206,207,208,211,219,222,226,229,235,241,247,249,262,267,268,275,276,277,280],variant:[22,95,186],variat:12,varieti:[4,250],variou:[23,24,61,89,128,132,134,181,250,255,262],vdd:274,vector:276,vendor:267,ver:[1,7,55,197,198,235,245,254,266,267,268,269,273,274],ver_len:198,ver_str:198,verb:62,verbos:[1,7,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,254,266,273],veri:[1,9,31,55,89,99,101,128,179,207,242,243,251,256,257,267,274,275,287],verif:22,verifi:[22,57,59,80,82,128,179,181,208,222,239,241,257,258,259,261,262,265,274,275],versa:[8,222],version:[1,2,4,6,7,10,11,12,21,22,34,37,39,41,43,47,55,56,60,79,83,84,130,140,179,195,197,198,205,222,225,235,236,239,245,253,254,256,257,258,259,260,261,262,266,270,273,274,276,280,283,286,287,288],via:[8,20,26,42,55,89,90,128,130,134,152,154,155,156,161,164,173,174,176,179,180,181,187,211,214,222,223,225,239,245,246,247,249,257,259,262,267,273,274,276,277,279,282],vice:[8,222],vid:258,view:[1,7,10,12,30,50,62,66,209,213,214,222,223,225,267,274,279,288],vim:59,vin:276,violat:20,viper:11,virtual:[66,183,186],virtualbox:254,visibl:[2,28],visit:[39,57,58,59],visual:[5,13,288],visualstudio:12,vol:22,volatil:258,voltag:[134,136,181,191,258,274],volum:[29,151],vscode:12,vtref:[257,259,262,274],vvp:100,wai:[2,3,9,21,30,31,59,61,84,87,92,99,100,130,152,186,187,188,205,222,224,242,267,268,269,273,274],wait:[84,85,86,87,89,91,92,98,99,136,182,187,190,225,238,241,260,262,272,273,274,282],waitin:91,wake:[85,89,92,98,99,182,211,241],wakeup:[99,211],walk:[89,99,146,150,179,205,274],wall:6,wallclock:[84,100],wanda:81,want:[1,3,11,18,50,57,58,59,60,61,80,83,84,85,89,90,91,92,97,98,99,128,129,130,150,152,169,186,205,206,207,210,223,234,236,240,244,246,247,249,251,252,253,254,255,257,258,259,260,262,263,265,267,273,274,277,287,290],warn:[1,6,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,224,249,257,273],warranti:[4,254,273,274,280,287,288],watch:244,watchdog:[92,97,191],watchpoint:[254,258],wdog:67,wear:244,wear_level_test:265,wearabl:9,web:[235,242],webfreak:12,websit:242,welcom:[8,134,243,266,273,276],well:[8,22,40,55,89,90,96,98,128,129,134,195,226,234,248,262,273,274],were:[29,73,89,128,181,222,268,272,273],werror:[6,50],wes:262,west:100,wfi:258,wget:[57,59,80,82],what:[7,8,20,41,55,96,98,135,140,173,174,179,207,208,222,225,237,241,247,250,251,252,253,265,268,272,273,274],whatev:[23,98,266],wheel:[8,235],when:[1,2,6,7,8,10,12,14,20,22,23,24,26,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,66,72,81,84,85,86,87,88,89,90,91,92,93,94,96,97,98,99,100,128,129,130,131,134,140,141,142,145,151,152,154,155,156,160,161,162,164,169,171,173,174,179,186,187,190,192,193,195,199,202,206,207,208,210,211,212,214,217,220,222,223,224,225,229,231,233,236,238,239,241,242,244,245,246,247,250,251,252,253,254,257,258,260,261,265,267,268,269,273,274,275,276,277,278,279,280,284,287],whenev:[21,26,90,134,179,199,210,249,251,280],where:[8,9,10,11,22,29,31,35,37,50,55,59,60,61,83,89,90,93,95,96,99,128,129,130,140,141,142,145,148,150,179,186,189,190,193,198,199,205,222,224,225,236,241,251,252,253,256,257,262,266,273,274,276,283,286],wherea:[89,268],whether:[10,12,22,84,87,90,100,128,140,155,187,190,191,207,208,209,211,212,213,214,223,225,233,247,249,251,265,276,278,279,280],which:[1,2,4,8,10,11,14,19,20,21,30,32,34,39,55,57,58,59,61,62,66,80,81,82,84,85,86,89,90,92,93,96,97,98,99,100,101,128,129,134,135,137,140,150,151,152,179,182,183,186,187,190,192,195,199,206,208,222,223,224,226,229,232,233,235,239,241,247,248,249,250,251,252,253,254,262,265,266,267,268,273,274,284,287],white:[22,27],whitelist:27,who:10,whole:135,whose:[61,62,179,211],why:[10,241],wide:[21,222],wifi:[7,266],wifi_connect:266,wifi_init:266,wifi_request_scan:266,wikipedia:[187,190],winc1500_wifi:266,window:[5,6,7,9,12,27,56,66,78,79,93,130,239,245,254,256,257,258,259,260,261,262,266,276,283,286,287],winusb:[258,260,286],wipe:144,wire:[8,187,190,262,273,274,286],wireless:21,wish:[6,10,173,174,187,241,267,285],withdraw:10,within:[1,12,20,31,41,55,89,93,94,96,128,134,140,145,148,150,173,174,179,181,186,197,199,205,208,209,210,214,223,231,241,250,260,265,267,273],without:[6,10,22,24,28,30,90,128,152,161,173,174,179,180,205,214,221,222,223,225,239,254,265,273,274,278],wno:6,won:[8,222,274],wonder:274,word:[6,55,89,92,98,128,179,190,249,254,267,280,287,288],word_siz:190,work:[2,4,8,10,11,22,24,55,61,62,85,89,91,92,93,95,96,98,99,128,130,134,135,160,181,223,235,236,240,241,244,245,248,254,256,262,265,270,272,273,274,277,279,282],work_stack:241,work_stack_s:241,work_task:241,work_task_handl:241,work_task_prio:241,workaround:10,workspac:[1,2,11,39,57,58,59,60,80,82,83],workspaceroot:12,world:[12,21,193,247,252,253,255,269,290],worri:92,worth:[1,94,273],would:[5,12,58,59,81,82,84,89,92,98,128,130,137,140,181,186,187,190,202,220,222,223,231,241,244,260,262,265,267,268,273,274,282,286],wrap:[100,223,256],wrapper:87,write:[1,9,14,20,28,61,64,65,80,81,82,94,128,129,130,134,135,136,140,141,142,146,151,152,157,158,168,170,172,173,174,181,184,186,187,193,195,197,200,201,202,203,205,218,223,229,238,241,243,248,250,251,262,264,273,274,275,282],write_cmd_rx:[76,236],write_cmd_tx:[76,236],write_config:[157,170],write_id:172,write_req_rx:[76,236],write_req_tx:[76,236],write_rsp_rx:[76,236],write_rsp_tx:[76,236],written:[11,20,23,59,82,92,128,140,141,142,145,150,156,157,160,163,169,170,171,173,174,179,187,190,249,251,256,268],wrong:[42,274],wsl:[12,59],www:[101,235,245,254,273,274,280,286,287,288],x86:[4,12],x86_64:[254,280,287,288],xml:[7,88,129],xpf:4,xpsr:[254,258,260],xtal_32768:93,xtal_32768_synth:24,xxx:[6,93,99,135],xxx_branch_0_8_0:[267,268],xxx_branch_1_0_0:[267,268],xxx_branch_1_0_2:[267,268],xxx_branch_1_1_0:[267,268],xxx_branch_1_1_2:[267,268],xxx_branch_1_2_0:[267,268],xxx_branch_1_2_1:[267,268],xxxx:181,xzf:[57,59,60,82,83],yai:273,yaml:11,year:31,yes:[22,262],yesno:27,yet:[7,92,96,239,244,267,268,274],yield:92,yml:[1,6,7,41,43,50,52,53,55,61,94,95,101,129,130,135,136,152,173,180,205,207,214,222,223,224,225,235,236,238,244,245,254,256,262,263,265,266,267,269,270,273,274,275,276,280],you:[1,3,4,5,6,7,8,9,10,11,12,18,19,30,33,34,35,39,41,43,45,46,47,50,51,52,53,54,55,57,58,59,60,61,63,64,66,68,76,80,81,82,83,84,92,93,94,95,96,101,128,129,130,131,132,134,137,138,140,141,142,146,155,160,161,163,169,171,173,174,180,181,183,186,187,189,199,202,205,206,207,209,210,211,214,215,216,219,220,221,222,223,224,225,231,234,236,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,272,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],your:[1,3,4,6,8,10,19,30,39,50,52,55,56,58,59,60,61,70,71,79,81,82,83,84,92,93,94,95,96,97,99,131,132,133,134,135,136,138,140,151,173,181,205,207,214,220,222,224,225,231,238,239,240,242,243,244,245,246,247,248,250,251,252,253,255,256,262,263,268,272,273,274,275,277,278,282,283,285,286,287,288,290],yourself:[2,10,30,92,93,246,273,290],ype:[252,253],yym:6,zadig:[258,260,286],zero:[12,24,84,89,90,93,99,100,144,148,150,157,169,170,175,182,186,187,190,191,192,193,199,215,217,218,219,225,241,251,252,253,255,262,265,266,267,280,290],zip:[4,257,274],zone:100},titles:["&lt;no title&gt;","Concepts","Everything You Need in a Docker Container","Setup &amp; Get Started","Installing the Cross Tools for ARM","Native Installation","Installing Native Toolchain","Creating Your First Mynewt Project","Using the Serial Port with Mynewt OS","Mynewt Documentation","FAQ","Contributing to Newt or Newtmgr Tools","Developing Mynewt Applications with Visual Studio Code","Appendix","NimBLE Host ATT Client Reference","NimBLE Host GAP Reference","NimBLE Host GATT Client Reference","NimBLE Host GATT Server Reference","NimBLE Host","NimBLE Host Identity Reference","NimBLE Host Return Codes","BLE User Guide","NimBLE Security","Configure device ddress","Configure clock for controller","NimBLE Setup","Respond to <em>sync</em> and <em>reset</em> events","GAP API for btshell","GATT feature API for btshell","Advertisement Data Fields","API for btshell app","Bluetooth Mesh","Sample application","Mynewt Newt Tool Documentation","newt build","newt clean","newt complete","newt create-image","newt debug","newt help","newt info","newt install","newt load","newt mfg","newt new","newt pkg","newt resign-image","newt run","newt size","newt sync","newt target","newt test","newt upgrade","newt vals","newt version","Newt Tool Guide","Install","Installing Newt on Linux","Installing Newt on Mac OS","Installing Newt on Windows","Installing Previous Releases of Newt","Theory of Operations","Command Structure","Mynewt Newt Manager Documentation","Command List","newtmgr config","newtmgr conn","newtmgr crash","newtmgr datetime","newtmgr echo","newtmgr fs","newtmgr image","newtmgr log","newtmgr mpstat","newtmgr reset","newtmgr run","newtmgr stat","newtmgr taskstat","Newt Manager Guide","Install","Installing Newtmgr on Linux","Installing Newtmgr on Mac OS","Installing Newtmgr on Windows","Installing Previous Releases of Newtmgr","Callout","Scheduler","CPU Time","Event Queues","Heap","Mbufs","Memory Pools","Mutex","Apache Mynewt Operating System Kernel","BSP Porting","Porting Mynewt to a new CPU Architecture","Porting Mynewt to a new MCU","Porting Mynewt OS","Sanity","Semaphore","Task","OS Time","Baselibc","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","Bootloader","Config","Console","Customizing Newt Manager Usage with mgmt","Newt Manager","Using the OIC Framework","Drivers","flash","mmc","elua","lua_init","lua_main","Flash Circular Buffer (FCB)","fcb_append","fcb_append_finish","fcb_append_to_scratch","fcb_clear","fcb_getnext","fcb_init","fcb_is_empty","fcb_offset_last_n","fcb_rotate","fcb_walk","The FAT File System","File System Abstraction","fs_close","fs_closedir","fs_dirent_is_dir","fs_dirent_name","fs_filelen","fs_getpos","fs_mkdir","fs_open","fs_opendir","struct fs_ops","fs_read","fs_readdir","fs_register","fs_rename","fs/fs Return Codes","fs_seek","fs_unlink","fs_write","fsutil_read_file","fsutil_write_file","Newtron Flash Filesystem (nffs)","struct nffs_area_desc","struct nffs_config","nffs_detect","nffs_format","nffs_init","Internals of nffs","Other File Systems","Hardware Abstraction Layer","BSP","Creating New HAL Interfaces","Flash","hal_flash_int","GPIO","I2C","Using HAL in Your Libraries","OS Tick","SPI","System","Timer","UART","Watchdog","Image Manager","imgmgr_module_init","imgr_ver_parse","imgr_ver_str","JSON","json_encode_object_entry","json_encode_object_finish","json_encode_object_key","json_encode_object_start","json_read_object","Logging","Sensor API","Creating and Configuring a Sensor Device","Sensor Device Driver","Mynewt Sensor Framework Overview","Sensor Listener API","Sensor Manager API","OIC Sensor Support","Sensor Shell Command","Shell","shell_cmd_register","shell_evq_set","shell_nlip_input_register","shell_nlip_output","shell_register","shell_register_app_cmd_handler","shell_register_default_module","Split Images","Statistics Module","Validation and Error Messages","System Configuration and Initialization","TEST_ASSERT","TEST_CASE","TEST_CASE_DECL","TEST_PASS","TEST_SUITE","testutil","tu_init","tu_restart","OS User Guide","Blinky, your \u201cHello World!\u201d, on STM32F303 Discovery","Enabling Newt Manager in Your Application","How to Define a Target","How to Use Event Queues to Manage Multiple Events","Over-the-Air Image Upgrade","Pin Wheel Modifications to \u201cBlinky\u201d on STM32F3 Discovery","Tasks and Priority Management","Try Markdown","Bluetooth Low Energy","Set up a bare bones NimBLE application","Use HCI access to NimBLE controller","BLE Peripheral Project","Advertising","BLE Peripheral App","Characteristic Access","GAP Event callbacks","Service Registration","BLE Eddystone","BLE iBeacon","Blinky, your \u201cHello World!\u201d, on Arduino Zero","Project Blinky","Enabling The Console and Shell for Blinky","Blinky, your \u201cHello World!\u201d, on Arduino Primo","Blinky, your \u201cHello World!\u201d, on STM32F4-Discovery","Blinky, your \u201cHello World!\u201d, on a nRF52 Development Kit","Blinky, your \u201cHello World!\u201d, on Olimex","Blinky, your \u201cHello World!\u201d, on RedBear Nano 2","LoRaWAN App","How to Reduce Application Code Size","Other","Write a Test Suite for a Package","Enable Wi-Fi on Arduino MKR1000","Adding Repositories to your Project","Create a Repo out of a Project","Accessing a private repository","Upgrade a repo","Air Quality Sensor Project","Air quality sensor project via Bluetooth","Air quality sensor project","Adding an Analog Sensor on nRF52","Adding OIC Sensor Support to the bleprph_oic Application","Enabling an Off-Board Sensor in an Existing Application","Enabling OIC Sensor Data Monitoring in the sensors_test Application","Changing the Default Configuration for a Sensor","Enabling OIC Sensor Data Monitoring","Developing an Application for an Onboard Sensor","Sensors","Sensor Tutorials Overview","Project Slinky using the Nordic nRF52 Board","Project Sim Slinky","Project Slinky","Project Slinky Using Olimex Board","SEGGER RTT Console","SEGGER SystemView","Tooling","Tutorials"],titleterms:{"abstract":[152,181],"default":[241,256,278],"function":[93,100,101,137,140,195,199,206,208,210,211,225,231,241,249,251,275,278],"import":235,"new":[7,44,94,95,179,183,248,278,280,283,284,286],"public":23,"return":[20,136,138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,172,176,177,178,196,197,198,200,201,202,203,204,215,216,217,218,219,220,221,226,227,228,229,230,232,233],"switch":[101,241],"try":[242,265],Adding:[58,81,223,267,274,275,278,280],For:4,The:[151,256],Use:[2,236,238,245,256,273,280,283,286],Used:206,Uses:205,Using:[8,57,80,89,130,133,188,276,280,286],acceleromet:278,access:[245,249,269],adafruit:10,adc:274,add:[66,93,252,253,272,273,274,275,280],addit:[267,274],address:[19,23,30,252,253],administr:10,advertis:[27,29,30,247,252,253],air:[239,271,272,273],all:238,ambigu:224,analog:274,apach:[9,31,92],api:[27,28,30,84,85,86,87,88,89,90,91,97,98,99,100,129,130,151,152,173,180,182,183,184,186,187,189,190,191,192,193,194,205,206,210,211,280],app:[9,30,61,222,245,248,262,280,282,288],app_get_light:275,app_set_light:275,appendix:[13,93],applic:[7,12,32,92,205,206,207,222,235,236,238,241,244,245,252,253,254,256,257,258,259,260,261,262,263,266,274,275,276,277,278,280,283,286],apt:[57,80],architectur:94,arduino:[8,254,257,266],area:[173,179,224],argument:[138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,168,169,170,171,172,176,177,196,197,198,200,201,202,203,204,215,216,217,218,219,221,226,227,228,229,230,232,233],arm:4,artifact:61,assert:265,assign:224,associ:12,att:[14,20],attach:245,attribut:[30,251],autocomplet:36,avail:[27,28,39,43,50,255,267,282,285],bare:244,baselibc:101,bash:36,basic:92,beacon:[252,253],bearer:31,begin:[30,247],being:249,belong:30,between:266,binari:[57,59,80,82],bit:6,ble:[21,244,246,248,252,253,274,275],blehci:245,bleprph_gap_ev:250,bleprph_oic:275,blink:235,blink_rigado:48,blinki:[7,235,240,254,255,256,257,258,259,260,261],block:179,bluetooth:[21,31,243,245,272],bluez:245,bno055:276,bno055_log:208,bno055_stat:208,board:[96,207,254,257,258,259,260,261,262,266,274,275,276,277,283,286],bone:244,boot:[128,222],bootload:[128,245,254,257,258,259,260,261,262,266,276,280,283,286],branch:[58,81],brew:6,bsp:[53,93,96,182,224],btmgmt:245,btmon:245,btshell:[27,28,30],buffer:140,bug:10,build:[7,9,12,34,55,61,235,236,240,241,244,245,254,256,257,258,259,260,261,262,266,274,275,276,277,278,280,283,284,286],cach:179,call:278,callback:250,callout:[84,238],can:10,cannot:278,categori:290,chang:[33,63,278],channel:27,characterist:[30,246,249],check:[57,58,59,80,81,82,93,97,128,211],choos:265,circular:140,clean:35,clear:261,cli:[129,273],client:[14,16],clock:24,close:262,code:[10,12,20,93,94,167,223,263,265],collect:179,command:[12,27,28,39,43,50,62,64,66,132,208,213,214,236,245,273,284],committ:10,commun:[8,236,256],compil:94,complet:[36,214],compon:[21,267],comput:[57,80,266,276,280],concept:[1,222],conclus:[244,252,253,274],condit:225,config:[65,129],configur:[1,12,23,24,27,28,30,129,151,205,206,207,208,211,224,225,235,236,252,253,256,278],conflict:225,congratul:265,conn:66,connect:[27,30,236,239,245,254,256,257,258,259,260,261,262,266,274,275,276,277,280,283,284,286,287],consider:241,consol:[130,214,223,256,266,276,280,287],contain:2,content:[33,63],context:241,contribut:11,control:[24,245,252,253,275,276,277,282],copi:[93,275],core:[20,92,96],cpu:[86,94,96],crash:67,creat:[7,37,89,93,94,183,207,235,236,239,244,245,248,252,253,254,257,258,259,260,261,262,265,266,268,273,274,275,276,277,280,283,284,286],creation:92,cross:4,crystal:24,current:222,custom:[97,131,236],data:[29,100,137,140,152,173,179,187,195,199,206,208,210,211,214,231,247,262,275,276,277,278,279,280],datetim:68,ddress:23,debian:[57,80],debug:[12,38,61,93],debugg:[4,12],declar:223,decod:199,defin:[12,93,208,223,237],definit:[185,224,225],delet:[66,275],depend:[7,61,93,96,135,136,180,181,235,236,256,268,275,280],descript:[34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,65,66,67,68,69,70,71,72,73,74,75,76,77,84,85,86,87,88,90,91,96,97,98,99,100,101,130,134,137,140,151,152,173,181,182,184,185,186,187,189,190,191,192,193,194,195,199,214,222,231,276],descriptor:[30,246,251,267],design:[134,181],detail:223,detect:179,determin:249,develop:[12,259,280],devic:[2,23,27,30,129,206,207,208,239,245,275,276,277,278,282],direct:30,directori:[61,179],disabl:27,discov:30,discoveri:[27,235,240,258],disk:179,disk_op:152,displai:30,docker:2,document:[10,33,63],doe:267,download:[11,57,61,80,93,235,240,262,274],driver:[134,206,208,273,274,278],duplic:224,echo:69,eddyston:252,edit:10,editor:10,elua:137,empti:[252,253],emul:276,enabl:[2,27,36,214,222,223,236,256,266,275,276,277,279,280],encod:199,endif:[207,208],energi:243,enhanc:173,enter:244,environ:11,equip:241,eras:257,error:224,establish:[30,245,266],etap:274,event:[26,87,238,250,256],everyth:[2,262,274],exampl:[8,20,21,26,34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,87,92,129,134,135,136,138,139,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,159,160,161,163,164,166,168,169,170,171,172,176,177,181,185,193,197,198,200,201,202,203,204,215,217,218,220,221,224,225,226,227,228,230,231,232,233,238],execut:[6,235,240,257,258,259,261,262,274,284,287,288],exist:[236,256,267,276],explor:7,express:224,extend:[27,280],extens:[2,12],extern:[235,254,266],faq:10,fat:151,fcb:140,fcb_append:141,fcb_append_finish:142,fcb_append_to_scratch:143,fcb_clear:144,fcb_getnext:145,fcb_init:146,fcb_is_empti:147,fcb_offset_last_n:148,fcb_rotat:149,fcb_walk:150,featur:[7,10,21,22,28,31,92],fetch:[7,254,266],field:29,file:[93,135,136,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,223,228,268,275,278,280],filesystem:[152,173],fill:93,find:267,first:[7,9],flag:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],flash:[93,128,135,140,173,179,184,224,257,261],format:[128,179],framework:[133,208,209,236,279],from:[57,58,59,80,81,82,130,275,277,278],fs_close:153,fs_closedir:154,fs_dirent_is_dir:155,fs_dirent_nam:156,fs_filelen:157,fs_getpo:158,fs_mkdir:159,fs_op:162,fs_open:160,fs_opendir:161,fs_read:163,fs_readdir:164,fs_regist:165,fs_renam:166,fs_seek:168,fs_unlink:169,fs_write:170,fsutil_read_fil:171,fsutil_write_fil:172,ft232h:8,full:130,futur:173,gap:[15,27,250],garbag:179,gatt:[16,17,28,272],gcc:6,gdb:6,gener:[22,30,134,181,225,238],get:[3,57,80,208],git:[10,59],global:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],gpio:186,guarante:250,guid:[21,55,78,234],hal:[96,183,188,273],hal_flash_int:185,hal_i2c:187,handler:[129,205,214],hardcod:23,hardwar:[23,181,235,262,274,276,287,288],have:10,hci:[20,245],header:[14,15,16,17,19,20,89,135,136,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,180,223,275,278],heading3:242,heading4:242,heap:88,hello:[235,254,257,258,259,260,261],help:[39,214],high:128,hold:223,homebrew:[58,81],host:[14,15,16,17,18,19,20,252,253],how:[10,101,225,237,238,263,267,275,278],i2c:187,ibeacon:253,ident:19,identifi:267,ignor:224,imag:[10,37,46,71,128,195,222,235,236,239,240,245,257,258,259,260,261,262,266,274,275,276,277,278,280,283,286],imgmgr_module_init:196,imgr_ver_pars:197,imgr_ver_str:198,implement:[94,134,205,208,223],includ:[30,208,223,251],indefinit:[252,253],info:40,inform:214,initi:[30,135,136,173,206,208,223,225,241,278],inod:179,input:[130,214],instal:[2,4,5,6,11,12,36,41,56,57,58,59,60,79,80,81,82,83,235,262,274],instead:280,integr:128,interfac:[180,183,206],intern:[173,179],interrupt:238,introduct:[9,14,15,16,17,18,19,20,31,55,93,238,246,265],invalid:224,invok:132,issu:10,join:262,json:199,json_encode_object_entri:200,json_encode_object_finish:201,json_encode_object_kei:202,json_encode_object_start:203,json_read_object:204,kei:[22,27],kernel:92,kit:259,l2cap:[20,27],laptop:10,latest:[57,58,59,80,81,82],launch:288,layer:181,led:[235,240],legaci:27,level:[128,205,239],libc:6,librari:[188,235],like:10,limit:128,line:214,link:4,linker:93,linux:[2,4,6,8,11,57,60,80,83],lis2dh12_onb:207,list:[10,64,101,137,140,195,199,206,210,211,222,231,242,252,253,276,280],listen:[210,280],load:[42,236,245,254,257,258,259,260,261,266,275,276,277,278,280,283,286],loader:222,log:[72,205,208,239],look:211,lorawan:262,low:243,lua_init:138,lua_main:139,mac:[2,4,6,8,11,58,60,81,83],macro:100,main:[241,256,275,278,280],make:10,manag:[9,10,20,55,63,78,131,132,195,211,236,238,241],manual:[57,80],map:[93,128],markdown:242,master:[58,81],mbuf:89,mcu:[93,95,96],measur:173,memori:[90,261],merg:10,mesh:[21,31],messag:224,method:[23,57,80],mfg:43,mgmt:131,mingw:59,minim:130,miscellan:173,mkr1000:266,mmc:136,model:31,modif:240,modifi:[236,256,275,280],modul:[214,223],monitor:[245,277,279],more:[55,235],move:179,mpstat:73,mqueue:89,msy:89,msys2:59,multipl:[12,152,223,224,238],mutex:91,my_sensor_app:280,mynewt:[2,7,8,9,10,12,23,31,33,58,63,81,92,93,94,95,96,130,209,244,267,275,277,282],mynewt_v:[207,208],name:[30,214,223,225],nano:261,nativ:[5,6],need:[2,235,240,262,267,273,274,276,287,288],newt:[2,9,10,11,12,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,63,78,131,132,236],newtmgr:[11,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,132,214,223,236,239,283,284,286],newtron:173,next:[6,276],nff:[173,179],nffs_area_desc:174,nffs_config:175,nffs_detect:176,nffs_format:177,nffs_init:178,nimbl:[14,15,16,17,18,19,20,21,22,25,244,245,252,253],node:31,nordic:[8,283],normal:89,note:[55,100,137,138,139,141,142,143,144,145,146,147,148,149,150,153,156,158,159,160,161,165,166,168,170,171,174,175,196,197,198,216,223,226,229,274],notnul:224,nrf52:[259,274,276,283],nrf52_adc:274,nrf52dk:[8,10],nrf:23,object:[179,206,235,240,255,262,274,287,288],off:[207,276],oic:[133,212,275,277,279,282],oicmgr:236,olimex:[260,286],omgr_app_init:275,onboard:[207,280],onto:[254,266],open:[245,262],openocd:4,oper:[55,61,92,128,187,190,222],option:[236,257],orient:27,ota:262,other:[7,12,180,236,264,268],out:[265,267,268],output:[48,53,130],over:[214,239],overrid:[224,225],overview:[64,209,246,247,248,250,255,275,278,279,282,285],own:10,pack:2,packag:[1,7,57,61,80,93,96,130,180,205,206,209,224,225,236,244,254,265,266,273,275,276,280],packet:89,passiv:30,patch:10,peer:[20,30],perform:30,peripher:[246,248],persist:129,pin:240,pkg:[45,93],platform:[8,181],poll:[206,211],pool:[89,90],port:[8,93,94,95,96,262],preempt:241,prerequisit:[7,236,238,239,241,245,248,254,255,256,257,258,259,260,261,266,275,276,277,278,279,280,282,283,284,285,286,290],preview:[33,63],previou:[60,83],primo:257,principl:[134,181],prioriti:[224,241],privaci:22,privat:269,pro:8,process:[214,256],produc:[6,61],profil:[236,239,284],project:[1,7,10,12,21,235,236,244,245,246,254,255,256,257,258,259,260,261,262,266,267,268,271,272,273,274,283,284,285,286],prompt:214,protect:261,protocol:[214,236,252,253],provis:31,pull:[2,10],put:238,qualiti:[271,272,273],queri:[283,286],question:10,queue:[87,238,256],ram:179,random:23,rate:206,rational:55,read:[30,206,208,249,278,280],reboot:278,rebuild:[11,280],reconfigur:207,recoveri:128,redbear:261,reduc:[10,239,263],refer:[14,15,16,17,19,20,225],referenc:225,regist:[97,180,208,211,214,223,276],registr:251,releas:[57,58,59,60,80,81,82,83],renam:179,repo:[267,268,270],repositori:[7,10,55,267,268,269,274],represent:179,request:10,requir:93,reset:[26,74,128],resign:46,resolut:268,resolv:[61,225,268],respond:26,restrict:224,retriev:[222,223],review:[241,249],round:240,rtt:[280,287],run:[7,12,47,75,254,256,284,287,288],runtim:[23,129],safeti:152,sampl:[32,276,278],saniti:97,satisfi:93,scale:265,scan:30,schedul:85,scratch:179,script:[2,93],section:223,secur:[20,22,27],segger:[4,287,288],select:2,semaphor:98,semiconductor:8,send:[30,245,262],sensor:[206,207,208,209,210,211,212,213,271,272,273,274,275,276,277,278,279,280,281,282],sensor_read:280,sensors_test:277,sequenc:222,serial:[8,214,245,256,266,283,286],server:17,servic:[30,246,251,272,274],set:[6,11,30,57,80,93,205,206,208,224,225,236,244,247,251,256,273,275,278,284],settl:24,setup:[3,8,25,266,287,288],shell:[208,213,214,256,280],shell_cmd_regist:215,shell_evq_set:216,shell_nlip_input_regist:217,shell_nlip_output:218,shell_regist:219,shell_register_app_cmd_handl:220,shell_register_default_modul:221,should:268,show:[30,66],sign:[128,235,257,258,259,260,261,262,266,274,283,286],signatur:249,sim:284,simul:7,singl:222,size:[10,48,263],skeleton:280,slinki:[283,284,285,286],slot:128,smart:[275,277,282],softwar:[10,288],some:10,sourc:[7,11,55,57,59,80,82,236,252,253,273,275],space:179,special:100,specif:[94,268],specifi:[180,225],spi:190,split:222,stack:[241,252,253],start:[3,245,266],startup:93,stat:[76,208,223],state:[128,129,222],statist:223,statu:128,step:[11,239,255,275,276,277,278,280,285],stm32f303:235,stm32f3:[235,240],stm32f4:258,storag:27,struct:[152,162,174,175],structur:[62,100,137,140,152,173,179,195,199,206,210,211,214,231],stub:130,studio:12,stuff:273,sub:66,submit:10,suit:265,summari:20,support:[2,31,61,96,152,181,209,212,235,236,275,276,279,280],swap:128,sync:[26,49,252,253],syscfg:[205,222,225,275],sysinit_app:225,system:[24,55,92,151,152,180,191,224,225],systemview:288,tabl:223,talk:266,tap:[58,81],target:[1,23,50,61,93,235,236,237,240,244,245,248,254,256,257,258,259,260,261,262,266,274,276,280,283,284,286,287,288],task:[12,97,99,224,238,241,274],taskstat:77,tcp:266,templat:93,termin:276,test:[7,51,93,265,273],test_assert:226,test_cas:[227,228],test_case_decl:228,test_pass:229,test_suit:230,testutil:231,theori:[61,187,190,222],thingi:280,thread:152,through:223,tick:189,time:[24,86,100],timer:[192,238,256],togeth:238,tool:[4,11,33,55,59,82,289],toolchain:[4,6],topolog:31,transport:[214,236],tree:273,tu_init:232,tu_restart:233,tutori:[222,255,282,285,290],type:[206,208,211,276],uart:193,undefin:224,under:265,undirect:30,unifi:222,unlink:179,updat:11,upgrad:[52,57,58,80,81,222,239,270],upload:256,usag:[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,131,140],usb2:2,use:[10,57,80,89,92,267],user:[21,234],using:[10,55,283,286],val:53,valid:224,valu:[136,138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,168,169,170,171,172,176,177,178,196,197,198,200,201,202,203,204,206,208,215,216,217,218,219,220,221,224,225,226,227,228,229,230,232,233,275,278],variabl:223,vector:128,verif:[128,278],verifi:278,version:[54,57,58,59,80,81,82,267,268],via:[266,272,280],view:[275,276,277,280],violat:224,virtualbox:2,visual:12,wait:[252,253],want:[10,235],watch:[235,240],watchdog:194,water:274,welcom:9,what:[10,235,240,267],wheel:240,where:268,why:[89,92,267],window:[2,4,8,11,59,60,82,83],work:12,workspac:12,world:[235,254,257,258,259,260,261],would:10,wrapper:2,write:[30,33,63,179,249,261,265],yml:[93,268],you:[2,235,240,273],your:[2,7,9,11,12,57,80,180,188,223,235,236,241,254,257,258,259,260,261,265,266,267,276,280,284],zero:254}})
\ No newline at end of file
+Search.setIndex({docnames:["_static/common","concepts","get_started/docker","get_started/index","get_started/native_install/cross_tools","get_started/native_install/index","get_started/native_install/native_tools","get_started/project_create","get_started/serial_access","index","misc/faq","misc/go_env","misc/ide","misc/index","network/ble/ble_hs/ble_att","network/ble/ble_hs/ble_gap","network/ble/ble_hs/ble_gattc","network/ble/ble_hs/ble_gatts","network/ble/ble_hs/ble_hs","network/ble/ble_hs/ble_hs_id","network/ble/ble_hs/ble_hs_return_codes","network/ble/ble_intro","network/ble/ble_sec","network/ble/ble_setup/ble_addr","network/ble/ble_setup/ble_lp_clock","network/ble/ble_setup/ble_setup_intro","network/ble/ble_setup/ble_sync_cb","network/ble/btshell/btshell_GAP","network/ble/btshell/btshell_GATT","network/ble/btshell/btshell_advdata","network/ble/btshell/btshell_api","network/ble/mesh/index","network/ble/mesh/sample","newt/README","newt/command_list/newt_build","newt/command_list/newt_clean","newt/command_list/newt_complete","newt/command_list/newt_create_image","newt/command_list/newt_debug","newt/command_list/newt_help","newt/command_list/newt_info","newt/command_list/newt_install","newt/command_list/newt_load","newt/command_list/newt_mfg","newt/command_list/newt_new","newt/command_list/newt_pkg","newt/command_list/newt_resign_image","newt/command_list/newt_run","newt/command_list/newt_size","newt/command_list/newt_sync","newt/command_list/newt_target","newt/command_list/newt_test","newt/command_list/newt_upgrade","newt/command_list/newt_vals","newt/command_list/newt_version","newt/index","newt/install/index","newt/install/newt_linux","newt/install/newt_mac","newt/install/newt_windows","newt/install/prev_releases","newt/newt_operation","newt/newt_ops","newtmgr/README","newtmgr/command_list/index","newtmgr/command_list/newtmgr_config","newtmgr/command_list/newtmgr_conn","newtmgr/command_list/newtmgr_crash","newtmgr/command_list/newtmgr_datetime","newtmgr/command_list/newtmgr_echo","newtmgr/command_list/newtmgr_fs","newtmgr/command_list/newtmgr_image","newtmgr/command_list/newtmgr_logs","newtmgr/command_list/newtmgr_mpstats","newtmgr/command_list/newtmgr_reset","newtmgr/command_list/newtmgr_run","newtmgr/command_list/newtmgr_stat","newtmgr/command_list/newtmgr_taskstats","newtmgr/index","newtmgr/install/index","newtmgr/install/install_linux","newtmgr/install/install_mac","newtmgr/install/install_windows","newtmgr/install/prev_releases","os/core_os/callout/callout","os/core_os/context_switch/context_switch","os/core_os/cputime/os_cputime","os/core_os/event_queue/event_queue","os/core_os/heap/heap","os/core_os/mbuf/mbuf","os/core_os/memory_pool/memory_pool","os/core_os/mutex/mutex","os/core_os/mynewt_os","os/core_os/porting/port_bsp","os/core_os/porting/port_cpu","os/core_os/porting/port_mcu","os/core_os/porting/port_os","os/core_os/sanity/sanity","os/core_os/semaphore/semaphore","os/core_os/task/task","os/core_os/time/os_time","os/modules/baselibc","os/modules/bootloader/boot_build_status","os/modules/bootloader/boot_build_status_one","os/modules/bootloader/boot_clear_status","os/modules/bootloader/boot_copy_area","os/modules/bootloader/boot_copy_image","os/modules/bootloader/boot_erase_area","os/modules/bootloader/boot_fill_slot","os/modules/bootloader/boot_find_image_area_idx","os/modules/bootloader/boot_find_image_part","os/modules/bootloader/boot_find_image_slot","os/modules/bootloader/boot_go","os/modules/bootloader/boot_init_flash","os/modules/bootloader/boot_move_area","os/modules/bootloader/boot_read_image_header","os/modules/bootloader/boot_read_image_headers","os/modules/bootloader/boot_read_status","os/modules/bootloader/boot_select_image_slot","os/modules/bootloader/boot_slot_addr","os/modules/bootloader/boot_slot_to_area_idx","os/modules/bootloader/boot_swap_areas","os/modules/bootloader/boot_vect_delete_main","os/modules/bootloader/boot_vect_delete_test","os/modules/bootloader/boot_vect_read_main","os/modules/bootloader/boot_vect_read_one","os/modules/bootloader/boot_vect_read_test","os/modules/bootloader/boot_write_status","os/modules/bootloader/bootloader","os/modules/config/config","os/modules/console/console","os/modules/devmgmt/customize_newtmgr","os/modules/devmgmt/newtmgr","os/modules/devmgmt/oicmgr","os/modules/drivers/driver","os/modules/drivers/flash","os/modules/drivers/mmc","os/modules/elua/elua","os/modules/elua/lua_init","os/modules/elua/lua_main","os/modules/fcb/fcb","os/modules/fcb/fcb_append","os/modules/fcb/fcb_append_finish","os/modules/fcb/fcb_append_to_scratch","os/modules/fcb/fcb_clear","os/modules/fcb/fcb_getnext","os/modules/fcb/fcb_init","os/modules/fcb/fcb_is_empty","os/modules/fcb/fcb_offset_last_n","os/modules/fcb/fcb_rotate","os/modules/fcb/fcb_walk","os/modules/fs/fatfs","os/modules/fs/fs/fs","os/modules/fs/fs/fs_close","os/modules/fs/fs/fs_closedir","os/modules/fs/fs/fs_dirent_is_dir","os/modules/fs/fs/fs_dirent_name","os/modules/fs/fs/fs_filelen","os/modules/fs/fs/fs_getpos","os/modules/fs/fs/fs_mkdir","os/modules/fs/fs/fs_open","os/modules/fs/fs/fs_opendir","os/modules/fs/fs/fs_ops","os/modules/fs/fs/fs_read","os/modules/fs/fs/fs_readdir","os/modules/fs/fs/fs_register","os/modules/fs/fs/fs_rename","os/modules/fs/fs/fs_return_codes","os/modules/fs/fs/fs_seek","os/modules/fs/fs/fs_unlink","os/modules/fs/fs/fs_write","os/modules/fs/fs/fsutil_read_file","os/modules/fs/fs/fsutil_write_file","os/modules/fs/nffs/nffs","os/modules/fs/nffs/nffs_area_desc","os/modules/fs/nffs/nffs_config","os/modules/fs/nffs/nffs_detect","os/modules/fs/nffs/nffs_format","os/modules/fs/nffs/nffs_init","os/modules/fs/nffs/nffs_internals","os/modules/fs/otherfs","os/modules/hal/hal","os/modules/hal/hal_bsp/hal_bsp","os/modules/hal/hal_creation","os/modules/hal/hal_flash/hal_flash","os/modules/hal/hal_flash/hal_flash_int","os/modules/hal/hal_gpio/hal_gpio","os/modules/hal/hal_i2c/hal_i2c","os/modules/hal/hal_in_libraries","os/modules/hal/hal_os_tick/hal_os_tick","os/modules/hal/hal_spi/hal_spi","os/modules/hal/hal_system/hal_sys","os/modules/hal/hal_timer/hal_timer","os/modules/hal/hal_uart/hal_uart","os/modules/hal/hal_watchdog/hal_watchdog","os/modules/imgmgr/imgmgr","os/modules/imgmgr/imgmgr_module_init","os/modules/imgmgr/imgr_ver_parse","os/modules/imgmgr/imgr_ver_str","os/modules/json/json","os/modules/json/json_encode_object_entry","os/modules/json/json_encode_object_finish","os/modules/json/json_encode_object_key","os/modules/json/json_encode_object_start","os/modules/json/json_read_object","os/modules/logs/logs","os/modules/sensor_framework/sensor_api","os/modules/sensor_framework/sensor_create","os/modules/sensor_framework/sensor_driver","os/modules/sensor_framework/sensor_framework_overview","os/modules/sensor_framework/sensor_listener_api","os/modules/sensor_framework/sensor_mgr_api","os/modules/sensor_framework/sensor_oic","os/modules/sensor_framework/sensor_shell","os/modules/shell/shell","os/modules/shell/shell_cmd_register","os/modules/shell/shell_evq_set","os/modules/shell/shell_nlip_input_register","os/modules/shell/shell_nlip_output","os/modules/shell/shell_register","os/modules/shell/shell_register_app_cmd_handler","os/modules/shell/shell_register_default_module","os/modules/split/split","os/modules/stats/stats","os/modules/sysinitconfig/sysconfig_error","os/modules/sysinitconfig/sysinitconfig","os/modules/testutil/test_assert","os/modules/testutil/test_case","os/modules/testutil/test_decl","os/modules/testutil/test_pass","os/modules/testutil/test_suite","os/modules/testutil/testutil","os/modules/testutil/tu_init","os/modules/testutil/tu_restart","os/os_user_guide","os/tutorials/STM32F303","os/tutorials/add_newtmgr","os/tutorials/define_target","os/tutorials/event_queue","os/tutorials/ota_upgrade_nrf52","os/tutorials/pin-wheel-mods","os/tutorials/tasks_lesson","os/tutorials/try_markdown","tutorials/ble/ble","tutorials/ble/ble_bare_bones","tutorials/ble/blehci_project","tutorials/ble/bleprph/bleprph","tutorials/ble/bleprph/bleprph-sections/bleprph-adv","tutorials/ble/bleprph/bleprph-sections/bleprph-app","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg","tutorials/ble/eddystone","tutorials/ble/ibeacon","tutorials/blinky/arduino_zero","tutorials/blinky/blinky","tutorials/blinky/blinky_console","tutorials/blinky/blinky_primo","tutorials/blinky/blinky_stm32f4disc","tutorials/blinky/nRF52","tutorials/blinky/olimex","tutorials/blinky/rbnano2","tutorials/lora/lorawanapp","tutorials/other/codesize","tutorials/other/other","tutorials/other/unit_test","tutorials/other/wi-fi_on_arduino","tutorials/repo/add_repos","tutorials/repo/create_repo","tutorials/repo/private_repo","tutorials/repo/upgrade_repo","tutorials/sensors/air_quality","tutorials/sensors/air_quality_ble","tutorials/sensors/air_quality_sensor","tutorials/sensors/nrf52_adc","tutorials/sensors/sensor_bleprph_oic","tutorials/sensors/sensor_nrf52_bno055","tutorials/sensors/sensor_nrf52_bno055_oic","tutorials/sensors/sensor_offboard_config","tutorials/sensors/sensor_oic_overview","tutorials/sensors/sensor_thingy_lis2dh12_onb","tutorials/sensors/sensors","tutorials/sensors/sensors_framework","tutorials/slinky/project-nrf52-slinky","tutorials/slinky/project-sim-slinky","tutorials/slinky/project-slinky","tutorials/slinky/project-stm32-slinky","tutorials/tooling/segger_rtt","tutorials/tooling/segger_sysview","tutorials/tooling/tooling","tutorials/tutorials"],envversion:52,filenames:["_static/common.rst","concepts.rst","get_started/docker.rst","get_started/index.rst","get_started/native_install/cross_tools.rst","get_started/native_install/index.rst","get_started/native_install/native_tools.rst","get_started/project_create.rst","get_started/serial_access.rst","index.rst","misc/faq.rst","misc/go_env.rst","misc/ide.rst","misc/index.rst","network/ble/ble_hs/ble_att.rst","network/ble/ble_hs/ble_gap.rst","network/ble/ble_hs/ble_gattc.rst","network/ble/ble_hs/ble_gatts.rst","network/ble/ble_hs/ble_hs.rst","network/ble/ble_hs/ble_hs_id.rst","network/ble/ble_hs/ble_hs_return_codes.rst","network/ble/ble_intro.rst","network/ble/ble_sec.rst","network/ble/ble_setup/ble_addr.rst","network/ble/ble_setup/ble_lp_clock.rst","network/ble/ble_setup/ble_setup_intro.rst","network/ble/ble_setup/ble_sync_cb.rst","network/ble/btshell/btshell_GAP.rst","network/ble/btshell/btshell_GATT.rst","network/ble/btshell/btshell_advdata.rst","network/ble/btshell/btshell_api.rst","network/ble/mesh/index.rst","network/ble/mesh/sample.rst","newt/README.rst","newt/command_list/newt_build.rst","newt/command_list/newt_clean.rst","newt/command_list/newt_complete.rst","newt/command_list/newt_create_image.rst","newt/command_list/newt_debug.rst","newt/command_list/newt_help.rst","newt/command_list/newt_info.rst","newt/command_list/newt_install.rst","newt/command_list/newt_load.rst","newt/command_list/newt_mfg.rst","newt/command_list/newt_new.rst","newt/command_list/newt_pkg.rst","newt/command_list/newt_resign_image.rst","newt/command_list/newt_run.rst","newt/command_list/newt_size.rst","newt/command_list/newt_sync.rst","newt/command_list/newt_target.rst","newt/command_list/newt_test.rst","newt/command_list/newt_upgrade.rst","newt/command_list/newt_vals.rst","newt/command_list/newt_version.rst","newt/index.rst","newt/install/index.rst","newt/install/newt_linux.rst","newt/install/newt_mac.rst","newt/install/newt_windows.rst","newt/install/prev_releases.rst","newt/newt_operation.rst","newt/newt_ops.rst","newtmgr/README.rst","newtmgr/command_list/index.rst","newtmgr/command_list/newtmgr_config.rst","newtmgr/command_list/newtmgr_conn.rst","newtmgr/command_list/newtmgr_crash.rst","newtmgr/command_list/newtmgr_datetime.rst","newtmgr/command_list/newtmgr_echo.rst","newtmgr/command_list/newtmgr_fs.rst","newtmgr/command_list/newtmgr_image.rst","newtmgr/command_list/newtmgr_logs.rst","newtmgr/command_list/newtmgr_mpstats.rst","newtmgr/command_list/newtmgr_reset.rst","newtmgr/command_list/newtmgr_run.rst","newtmgr/command_list/newtmgr_stat.rst","newtmgr/command_list/newtmgr_taskstats.rst","newtmgr/index.rst","newtmgr/install/index.rst","newtmgr/install/install_linux.rst","newtmgr/install/install_mac.rst","newtmgr/install/install_windows.rst","newtmgr/install/prev_releases.rst","os/core_os/callout/callout.rst","os/core_os/context_switch/context_switch.rst","os/core_os/cputime/os_cputime.rst","os/core_os/event_queue/event_queue.rst","os/core_os/heap/heap.rst","os/core_os/mbuf/mbuf.rst","os/core_os/memory_pool/memory_pool.rst","os/core_os/mutex/mutex.rst","os/core_os/mynewt_os.rst","os/core_os/porting/port_bsp.rst","os/core_os/porting/port_cpu.rst","os/core_os/porting/port_mcu.rst","os/core_os/porting/port_os.rst","os/core_os/sanity/sanity.rst","os/core_os/semaphore/semaphore.rst","os/core_os/task/task.rst","os/core_os/time/os_time.rst","os/modules/baselibc.rst","os/modules/bootloader/boot_build_status.rst","os/modules/bootloader/boot_build_status_one.rst","os/modules/bootloader/boot_clear_status.rst","os/modules/bootloader/boot_copy_area.rst","os/modules/bootloader/boot_copy_image.rst","os/modules/bootloader/boot_erase_area.rst","os/modules/bootloader/boot_fill_slot.rst","os/modules/bootloader/boot_find_image_area_idx.rst","os/modules/bootloader/boot_find_image_part.rst","os/modules/bootloader/boot_find_image_slot.rst","os/modules/bootloader/boot_go.rst","os/modules/bootloader/boot_init_flash.rst","os/modules/bootloader/boot_move_area.rst","os/modules/bootloader/boot_read_image_header.rst","os/modules/bootloader/boot_read_image_headers.rst","os/modules/bootloader/boot_read_status.rst","os/modules/bootloader/boot_select_image_slot.rst","os/modules/bootloader/boot_slot_addr.rst","os/modules/bootloader/boot_slot_to_area_idx.rst","os/modules/bootloader/boot_swap_areas.rst","os/modules/bootloader/boot_vect_delete_main.rst","os/modules/bootloader/boot_vect_delete_test.rst","os/modules/bootloader/boot_vect_read_main.rst","os/modules/bootloader/boot_vect_read_one.rst","os/modules/bootloader/boot_vect_read_test.rst","os/modules/bootloader/boot_write_status.rst","os/modules/bootloader/bootloader.rst","os/modules/config/config.rst","os/modules/console/console.rst","os/modules/devmgmt/customize_newtmgr.rst","os/modules/devmgmt/newtmgr.rst","os/modules/devmgmt/oicmgr.rst","os/modules/drivers/driver.rst","os/modules/drivers/flash.rst","os/modules/drivers/mmc.rst","os/modules/elua/elua.rst","os/modules/elua/lua_init.rst","os/modules/elua/lua_main.rst","os/modules/fcb/fcb.rst","os/modules/fcb/fcb_append.rst","os/modules/fcb/fcb_append_finish.rst","os/modules/fcb/fcb_append_to_scratch.rst","os/modules/fcb/fcb_clear.rst","os/modules/fcb/fcb_getnext.rst","os/modules/fcb/fcb_init.rst","os/modules/fcb/fcb_is_empty.rst","os/modules/fcb/fcb_offset_last_n.rst","os/modules/fcb/fcb_rotate.rst","os/modules/fcb/fcb_walk.rst","os/modules/fs/fatfs.rst","os/modules/fs/fs/fs.rst","os/modules/fs/fs/fs_close.rst","os/modules/fs/fs/fs_closedir.rst","os/modules/fs/fs/fs_dirent_is_dir.rst","os/modules/fs/fs/fs_dirent_name.rst","os/modules/fs/fs/fs_filelen.rst","os/modules/fs/fs/fs_getpos.rst","os/modules/fs/fs/fs_mkdir.rst","os/modules/fs/fs/fs_open.rst","os/modules/fs/fs/fs_opendir.rst","os/modules/fs/fs/fs_ops.rst","os/modules/fs/fs/fs_read.rst","os/modules/fs/fs/fs_readdir.rst","os/modules/fs/fs/fs_register.rst","os/modules/fs/fs/fs_rename.rst","os/modules/fs/fs/fs_return_codes.rst","os/modules/fs/fs/fs_seek.rst","os/modules/fs/fs/fs_unlink.rst","os/modules/fs/fs/fs_write.rst","os/modules/fs/fs/fsutil_read_file.rst","os/modules/fs/fs/fsutil_write_file.rst","os/modules/fs/nffs/nffs.rst","os/modules/fs/nffs/nffs_area_desc.rst","os/modules/fs/nffs/nffs_config.rst","os/modules/fs/nffs/nffs_detect.rst","os/modules/fs/nffs/nffs_format.rst","os/modules/fs/nffs/nffs_init.rst","os/modules/fs/nffs/nffs_internals.rst","os/modules/fs/otherfs.rst","os/modules/hal/hal.rst","os/modules/hal/hal_bsp/hal_bsp.rst","os/modules/hal/hal_creation.rst","os/modules/hal/hal_flash/hal_flash.rst","os/modules/hal/hal_flash/hal_flash_int.rst","os/modules/hal/hal_gpio/hal_gpio.rst","os/modules/hal/hal_i2c/hal_i2c.rst","os/modules/hal/hal_in_libraries.rst","os/modules/hal/hal_os_tick/hal_os_tick.rst","os/modules/hal/hal_spi/hal_spi.rst","os/modules/hal/hal_system/hal_sys.rst","os/modules/hal/hal_timer/hal_timer.rst","os/modules/hal/hal_uart/hal_uart.rst","os/modules/hal/hal_watchdog/hal_watchdog.rst","os/modules/imgmgr/imgmgr.rst","os/modules/imgmgr/imgmgr_module_init.rst","os/modules/imgmgr/imgr_ver_parse.rst","os/modules/imgmgr/imgr_ver_str.rst","os/modules/json/json.rst","os/modules/json/json_encode_object_entry.rst","os/modules/json/json_encode_object_finish.rst","os/modules/json/json_encode_object_key.rst","os/modules/json/json_encode_object_start.rst","os/modules/json/json_read_object.rst","os/modules/logs/logs.rst","os/modules/sensor_framework/sensor_api.rst","os/modules/sensor_framework/sensor_create.rst","os/modules/sensor_framework/sensor_driver.rst","os/modules/sensor_framework/sensor_framework_overview.rst","os/modules/sensor_framework/sensor_listener_api.rst","os/modules/sensor_framework/sensor_mgr_api.rst","os/modules/sensor_framework/sensor_oic.rst","os/modules/sensor_framework/sensor_shell.rst","os/modules/shell/shell.rst","os/modules/shell/shell_cmd_register.rst","os/modules/shell/shell_evq_set.rst","os/modules/shell/shell_nlip_input_register.rst","os/modules/shell/shell_nlip_output.rst","os/modules/shell/shell_register.rst","os/modules/shell/shell_register_app_cmd_handler.rst","os/modules/shell/shell_register_default_module.rst","os/modules/split/split.rst","os/modules/stats/stats.rst","os/modules/sysinitconfig/sysconfig_error.rst","os/modules/sysinitconfig/sysinitconfig.rst","os/modules/testutil/test_assert.rst","os/modules/testutil/test_case.rst","os/modules/testutil/test_decl.rst","os/modules/testutil/test_pass.rst","os/modules/testutil/test_suite.rst","os/modules/testutil/testutil.rst","os/modules/testutil/tu_init.rst","os/modules/testutil/tu_restart.rst","os/os_user_guide.rst","os/tutorials/STM32F303.rst","os/tutorials/add_newtmgr.rst","os/tutorials/define_target.rst","os/tutorials/event_queue.rst","os/tutorials/ota_upgrade_nrf52.rst","os/tutorials/pin-wheel-mods.rst","os/tutorials/tasks_lesson.rst","os/tutorials/try_markdown.rst","tutorials/ble/ble.rst","tutorials/ble/ble_bare_bones.rst","tutorials/ble/blehci_project.rst","tutorials/ble/bleprph/bleprph.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-adv.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-app.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst","tutorials/ble/eddystone.rst","tutorials/ble/ibeacon.rst","tutorials/blinky/arduino_zero.rst","tutorials/blinky/blinky.rst","tutorials/blinky/blinky_console.rst","tutorials/blinky/blinky_primo.rst","tutorials/blinky/blinky_stm32f4disc.rst","tutorials/blinky/nRF52.rst","tutorials/blinky/olimex.rst","tutorials/blinky/rbnano2.rst","tutorials/lora/lorawanapp.rst","tutorials/other/codesize.rst","tutorials/other/other.rst","tutorials/other/unit_test.rst","tutorials/other/wi-fi_on_arduino.rst","tutorials/repo/add_repos.rst","tutorials/repo/create_repo.rst","tutorials/repo/private_repo.rst","tutorials/repo/upgrade_repo.rst","tutorials/sensors/air_quality.rst","tutorials/sensors/air_quality_ble.rst","tutorials/sensors/air_quality_sensor.rst","tutorials/sensors/nrf52_adc.rst","tutorials/sensors/sensor_bleprph_oic.rst","tutorials/sensors/sensor_nrf52_bno055.rst","tutorials/sensors/sensor_nrf52_bno055_oic.rst","tutorials/sensors/sensor_offboard_config.rst","tutorials/sensors/sensor_oic_overview.rst","tutorials/sensors/sensor_thingy_lis2dh12_onb.rst","tutorials/sensors/sensors.rst","tutorials/sensors/sensors_framework.rst","tutorials/slinky/project-nrf52-slinky.rst","tutorials/slinky/project-sim-slinky.rst","tutorials/slinky/project-slinky.rst","tutorials/slinky/project-stm32-slinky.rst","tutorials/tooling/segger_rtt.rst","tutorials/tooling/segger_sysview.rst","tutorials/tooling/tooling.rst","tutorials/tutorials.rst"],objects:{"":{"HALGpio::HAL_GPIO_MODE_IN":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_IN"],"HALGpio::HAL_GPIO_MODE_NC":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_NC"],"HALGpio::HAL_GPIO_MODE_OUT":[186,1,1,"c.HALGpio::HAL_GPIO_MODE_OUT"],"HALGpio::HAL_GPIO_PULL_DOWN":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_DOWN"],"HALGpio::HAL_GPIO_PULL_NONE":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_NONE"],"HALGpio::HAL_GPIO_PULL_UP":[186,1,1,"c.HALGpio::HAL_GPIO_PULL_UP"],"HALGpio::HAL_GPIO_TRIG_BOTH":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_BOTH"],"HALGpio::HAL_GPIO_TRIG_FALLING":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_FALLING"],"HALGpio::HAL_GPIO_TRIG_HIGH":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_HIGH"],"HALGpio::HAL_GPIO_TRIG_LOW":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_LOW"],"HALGpio::HAL_GPIO_TRIG_NONE":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_NONE"],"HALGpio::HAL_GPIO_TRIG_RISING":[186,1,1,"c.HALGpio::HAL_GPIO_TRIG_RISING"],"HALGpio::hal_gpio_irq_trigger":[186,2,1,"c.HALGpio::hal_gpio_irq_trigger"],"HALGpio::hal_gpio_mode_e":[186,2,1,"c.HALGpio::hal_gpio_mode_e"],"HALGpio::hal_gpio_pull":[186,2,1,"c.HALGpio::hal_gpio_pull"],"HALSystem::HAL_RESET_BROWNOUT":[191,1,1,"c.HALSystem::HAL_RESET_BROWNOUT"],"HALSystem::HAL_RESET_PIN":[191,1,1,"c.HALSystem::HAL_RESET_PIN"],"HALSystem::HAL_RESET_POR":[191,1,1,"c.HALSystem::HAL_RESET_POR"],"HALSystem::HAL_RESET_REQUESTED":[191,1,1,"c.HALSystem::HAL_RESET_REQUESTED"],"HALSystem::HAL_RESET_SOFT":[191,1,1,"c.HALSystem::HAL_RESET_SOFT"],"HALSystem::HAL_RESET_WATCHDOG":[191,1,1,"c.HALSystem::HAL_RESET_WATCHDOG"],"HALSystem::hal_reset_reason":[191,2,1,"c.HALSystem::hal_reset_reason"],"HALUart::HAL_UART_FLOW_CTL_NONE":[193,1,1,"c.HALUart::HAL_UART_FLOW_CTL_NONE"],"HALUart::HAL_UART_FLOW_CTL_RTS_CTS":[193,1,1,"c.HALUart::HAL_UART_FLOW_CTL_RTS_CTS"],"HALUart::HAL_UART_PARITY_EVEN":[193,1,1,"c.HALUart::HAL_UART_PARITY_EVEN"],"HALUart::HAL_UART_PARITY_NONE":[193,1,1,"c.HALUart::HAL_UART_PARITY_NONE"],"HALUart::HAL_UART_PARITY_ODD":[193,1,1,"c.HALUart::HAL_UART_PARITY_ODD"],"HALUart::hal_uart_flow_ctl":[193,2,1,"c.HALUart::hal_uart_flow_ctl"],"HALUart::hal_uart_parity":[193,2,1,"c.HALUart::hal_uart_parity"],"OSTask::OS_TASK_READY":[99,1,1,"c.OSTask::OS_TASK_READY"],"OSTask::OS_TASK_SLEEP":[99,1,1,"c.OSTask::OS_TASK_SLEEP"],"OSTask::os_task_state":[99,2,1,"c.OSTask::os_task_state"],"hal_i2c_master_data::address":[187,6,1,"c.hal_i2c_master_data::address"],"hal_i2c_master_data::buffer":[187,6,1,"c.hal_i2c_master_data::buffer"],"hal_spi_settings::baudrate":[190,6,1,"c.hal_spi_settings::baudrate"],"hal_spi_settings::data_mode":[190,6,1,"c.hal_spi_settings::data_mode"],"hal_spi_settings::data_order":[190,6,1,"c.hal_spi_settings::data_order"],"hal_spi_settings::word_size":[190,6,1,"c.hal_spi_settings::word_size"],"hal_timer::bsp_timer":[192,6,1,"c.hal_timer::bsp_timer"],"hal_timer::cb_arg":[192,6,1,"c.hal_timer::cb_arg"],"hal_timer::cb_func":[192,6,1,"c.hal_timer::cb_func"],"hal_timer::expiry":[192,6,1,"c.hal_timer::expiry"],"os_callout::c_ev":[84,6,1,"c.os_callout::c_ev"],"os_callout::c_evq":[84,6,1,"c.os_callout::c_evq"],"os_callout::c_ticks":[84,6,1,"c.os_callout::c_ticks"],"os_event::ev_arg":[87,6,1,"c.os_event::ev_arg"],"os_event::ev_cb":[87,6,1,"c.os_event::ev_cb"],"os_event::ev_queued":[87,6,1,"c.os_event::ev_queued"],"os_eventq::evq_owner":[87,6,1,"c.os_eventq::evq_owner"],"os_eventq::evq_task":[87,6,1,"c.os_eventq::evq_task"],"os_mbuf::om_data":[89,6,1,"c.os_mbuf::om_data"],"os_mbuf::om_flags":[89,6,1,"c.os_mbuf::om_flags"],"os_mbuf::om_len":[89,6,1,"c.os_mbuf::om_len"],"os_mbuf::om_omp":[89,6,1,"c.os_mbuf::om_omp"],"os_mbuf::om_pkthdr_len":[89,6,1,"c.os_mbuf::om_pkthdr_len"],"os_mbuf_pkthdr::omp_flags":[89,6,1,"c.os_mbuf_pkthdr::omp_flags"],"os_mbuf_pkthdr::omp_len":[89,6,1,"c.os_mbuf_pkthdr::omp_len"],"os_mbuf_pool::omp_databuf_len":[89,6,1,"c.os_mbuf_pool::omp_databuf_len"],"os_mbuf_pool::omp_pool":[89,6,1,"c.os_mbuf_pool::omp_pool"],"os_mempool::mp_block_size":[90,6,1,"c.os_mempool::mp_block_size"],"os_mempool::mp_flags":[90,6,1,"c.os_mempool::mp_flags"],"os_mempool::mp_membuf_addr":[90,6,1,"c.os_mempool::mp_membuf_addr"],"os_mempool::mp_min_free":[90,6,1,"c.os_mempool::mp_min_free"],"os_mempool::mp_num_blocks":[90,6,1,"c.os_mempool::mp_num_blocks"],"os_mempool::mp_num_free":[90,6,1,"c.os_mempool::mp_num_free"],"os_mempool::name":[90,6,1,"c.os_mempool::name"],"os_mempool_info::omi_block_size":[90,6,1,"c.os_mempool_info::omi_block_size"],"os_mempool_info::omi_min_free":[90,6,1,"c.os_mempool_info::omi_min_free"],"os_mempool_info::omi_num_blocks":[90,6,1,"c.os_mempool_info::omi_num_blocks"],"os_mempool_info::omi_num_free":[90,6,1,"c.os_mempool_info::omi_num_free"],"os_mqueue::mq_ev":[89,6,1,"c.os_mqueue::mq_ev"],"os_mutex::SLIST_HEAD":[91,3,1,"c.os_mutex::SLIST_HEAD"],"os_mutex::_pad":[91,6,1,"c.os_mutex::_pad"],"os_mutex::mu_level":[91,6,1,"c.os_mutex::mu_level"],"os_mutex::mu_owner":[91,6,1,"c.os_mutex::mu_owner"],"os_mutex::mu_prio":[91,6,1,"c.os_mutex::mu_prio"],"os_sanity_check::sc_arg":[97,6,1,"c.os_sanity_check::sc_arg"],"os_sanity_check::sc_checkin_itvl":[97,6,1,"c.os_sanity_check::sc_checkin_itvl"],"os_sanity_check::sc_checkin_last":[97,6,1,"c.os_sanity_check::sc_checkin_last"],"os_sanity_check::sc_func":[97,6,1,"c.os_sanity_check::sc_func"],"os_sem::sem_tokens":[98,6,1,"c.os_sem::sem_tokens"],"os_task::t_arg":[99,6,1,"c.os_task::t_arg"],"os_task::t_ctx_sw_cnt":[99,6,1,"c.os_task::t_ctx_sw_cnt"],"os_task::t_flags":[99,6,1,"c.os_task::t_flags"],"os_task::t_func":[99,6,1,"c.os_task::t_func"],"os_task::t_name":[99,6,1,"c.os_task::t_name"],"os_task::t_next_wakeup":[99,6,1,"c.os_task::t_next_wakeup"],"os_task::t_obj":[99,6,1,"c.os_task::t_obj"],"os_task::t_prio":[99,6,1,"c.os_task::t_prio"],"os_task::t_run_time":[99,6,1,"c.os_task::t_run_time"],"os_task::t_sanity_check":[99,6,1,"c.os_task::t_sanity_check"],"os_task::t_stackptr":[99,6,1,"c.os_task::t_stackptr"],"os_task::t_stacksize":[99,6,1,"c.os_task::t_stacksize"],"os_task::t_stacktop":[99,6,1,"c.os_task::t_stacktop"],"os_task::t_taskid":[99,6,1,"c.os_task::t_taskid"],"os_task_info::oti_cswcnt":[99,6,1,"c.os_task_info::oti_cswcnt"],"os_task_info::oti_last_checkin":[99,6,1,"c.os_task_info::oti_last_checkin"],"os_task_info::oti_next_checkin":[99,6,1,"c.os_task_info::oti_next_checkin"],"os_task_info::oti_prio":[99,6,1,"c.os_task_info::oti_prio"],"os_task_info::oti_runtime":[99,6,1,"c.os_task_info::oti_runtime"],"os_task_info::oti_state":[99,6,1,"c.os_task_info::oti_state"],"os_task_info::oti_stksize":[99,6,1,"c.os_task_info::oti_stksize"],"os_task_info::oti_stkusage":[99,6,1,"c.os_task_info::oti_stkusage"],"os_task_info::oti_taskid":[99,6,1,"c.os_task_info::oti_taskid"],"os_timezone::tz_dsttime":[100,6,1,"c.os_timezone::tz_dsttime"],"os_timezone::tz_minuteswest":[100,6,1,"c.os_timezone::tz_minuteswest"],CPUTIME_GEQ:[86,0,1,"c.CPUTIME_GEQ"],CPUTIME_GT:[86,0,1,"c.CPUTIME_GT"],CPUTIME_LEQ:[86,0,1,"c.CPUTIME_LEQ"],CPUTIME_LT:[86,0,1,"c.CPUTIME_LT"],HAL_BSP_MAX_ID_LEN:[182,0,1,"c.HAL_BSP_MAX_ID_LEN"],HAL_BSP_POWER_DEEP_SLEEP:[182,0,1,"c.HAL_BSP_POWER_DEEP_SLEEP"],HAL_BSP_POWER_OFF:[182,0,1,"c.HAL_BSP_POWER_OFF"],HAL_BSP_POWER_ON:[182,0,1,"c.HAL_BSP_POWER_ON"],HAL_BSP_POWER_PERUSER:[182,0,1,"c.HAL_BSP_POWER_PERUSER"],HAL_BSP_POWER_SLEEP:[182,0,1,"c.HAL_BSP_POWER_SLEEP"],HAL_BSP_POWER_WFI:[182,0,1,"c.HAL_BSP_POWER_WFI"],HAL_SPI_LSB_FIRST:[190,0,1,"c.HAL_SPI_LSB_FIRST"],HAL_SPI_MODE0:[190,0,1,"c.HAL_SPI_MODE0"],HAL_SPI_MODE1:[190,0,1,"c.HAL_SPI_MODE1"],HAL_SPI_MODE2:[190,0,1,"c.HAL_SPI_MODE2"],HAL_SPI_MODE3:[190,0,1,"c.HAL_SPI_MODE3"],HAL_SPI_MSB_FIRST:[190,0,1,"c.HAL_SPI_MSB_FIRST"],HAL_SPI_TYPE_MASTER:[190,0,1,"c.HAL_SPI_TYPE_MASTER"],HAL_SPI_TYPE_SLAVE:[190,0,1,"c.HAL_SPI_TYPE_SLAVE"],HAL_SPI_WORD_SIZE_8BIT:[190,0,1,"c.HAL_SPI_WORD_SIZE_8BIT"],HAL_SPI_WORD_SIZE_9BIT:[190,0,1,"c.HAL_SPI_WORD_SIZE_9BIT"],OS_CALLOUT_F_QUEUED:[84,0,1,"c.OS_CALLOUT_F_QUEUED"],OS_EVENT_QUEUED:[87,0,1,"c.OS_EVENT_QUEUED"],OS_MBUF_DATA:[89,0,1,"c.OS_MBUF_DATA"],OS_MBUF_F_MASK:[89,0,1,"c.OS_MBUF_F_MASK"],OS_MBUF_IS_PKTHDR:[89,0,1,"c.OS_MBUF_IS_PKTHDR"],OS_MBUF_LEADINGSPACE:[89,0,1,"c.OS_MBUF_LEADINGSPACE"],OS_MBUF_PKTHDR:[89,0,1,"c.OS_MBUF_PKTHDR"],OS_MBUF_PKTHDR_TO_MBUF:[89,0,1,"c.OS_MBUF_PKTHDR_TO_MBUF"],OS_MBUF_PKTLEN:[89,0,1,"c.OS_MBUF_PKTLEN"],OS_MBUF_TRAILINGSPACE:[89,0,1,"c.OS_MBUF_TRAILINGSPACE"],OS_MBUF_USRHDR:[89,0,1,"c.OS_MBUF_USRHDR"],OS_MBUF_USRHDR_LEN:[89,0,1,"c.OS_MBUF_USRHDR_LEN"],OS_MEMPOOL_BYTES:[90,0,1,"c.OS_MEMPOOL_BYTES"],OS_MEMPOOL_F_EXT:[90,0,1,"c.OS_MEMPOOL_F_EXT"],OS_MEMPOOL_INFO_NAME_LEN:[90,0,1,"c.OS_MEMPOOL_INFO_NAME_LEN"],OS_MEMPOOL_SIZE:[90,0,1,"c.OS_MEMPOOL_SIZE"],OS_SANITY_CHECK_SETFUNC:[97,0,1,"c.OS_SANITY_CHECK_SETFUNC"],OS_TASK_FLAG_EVQ_WAIT:[99,0,1,"c.OS_TASK_FLAG_EVQ_WAIT"],OS_TASK_FLAG_MUTEX_WAIT:[99,0,1,"c.OS_TASK_FLAG_MUTEX_WAIT"],OS_TASK_FLAG_NO_TIMEOUT:[99,0,1,"c.OS_TASK_FLAG_NO_TIMEOUT"],OS_TASK_FLAG_SEM_WAIT:[99,0,1,"c.OS_TASK_FLAG_SEM_WAIT"],OS_TASK_MAX_NAME_LEN:[99,0,1,"c.OS_TASK_MAX_NAME_LEN"],OS_TASK_PRI_HIGHEST:[99,0,1,"c.OS_TASK_PRI_HIGHEST"],OS_TASK_PRI_LOWEST:[99,0,1,"c.OS_TASK_PRI_LOWEST"],OS_TASK_STACK_DEFINE:[99,0,1,"c.OS_TASK_STACK_DEFINE"],OS_TIMEOUT_NEVER:[100,0,1,"c.OS_TIMEOUT_NEVER"],OS_TIME_MAX:[100,0,1,"c.OS_TIME_MAX"],OS_TIME_TICK_GEQ:[100,0,1,"c.OS_TIME_TICK_GEQ"],OS_TIME_TICK_GT:[100,0,1,"c.OS_TIME_TICK_GT"],OS_TIME_TICK_LT:[100,0,1,"c.OS_TIME_TICK_LT"],_sbrk:[182,3,1,"c._sbrk"],completion_cb:[130,4,1,"c.completion_cb"],console_append_char_cb:[130,4,1,"c.console_append_char_cb"],console_blocking_mode:[130,3,1,"c.console_blocking_mode"],console_echo:[130,3,1,"c.console_echo"],console_handle_char:[130,3,1,"c.console_handle_char"],console_init:[130,3,1,"c.console_init"],console_input:[130,5,1,"c.console_input"],console_is_init:[130,3,1,"c.console_is_init"],console_is_midline:[130,6,1,"c.console_is_midline"],console_non_blocking_mode:[130,3,1,"c.console_non_blocking_mode"],console_out:[130,3,1,"c.console_out"],console_printf:[130,3,1,"c.console_printf"],console_read:[130,3,1,"c.console_read"],console_rx_cb:[130,4,1,"c.console_rx_cb"],console_set_completion_cb:[130,3,1,"c.console_set_completion_cb"],console_set_queues:[130,3,1,"c.console_set_queues"],console_write:[130,3,1,"c.console_write"],hal_bsp_core_dump:[182,3,1,"c.hal_bsp_core_dump"],hal_bsp_flash_dev:[182,3,1,"c.hal_bsp_flash_dev"],hal_bsp_get_nvic_priority:[182,3,1,"c.hal_bsp_get_nvic_priority"],hal_bsp_hw_id:[182,3,1,"c.hal_bsp_hw_id"],hal_bsp_init:[182,3,1,"c.hal_bsp_init"],hal_bsp_power_state:[182,3,1,"c.hal_bsp_power_state"],hal_debugger_connected:[191,3,1,"c.hal_debugger_connected"],hal_flash_align:[184,3,1,"c.hal_flash_align"],hal_flash_erase:[184,3,1,"c.hal_flash_erase"],hal_flash_erase_sector:[184,3,1,"c.hal_flash_erase_sector"],hal_flash_init:[184,3,1,"c.hal_flash_init"],hal_flash_ioctl:[184,3,1,"c.hal_flash_ioctl"],hal_flash_read:[184,3,1,"c.hal_flash_read"],hal_flash_write:[184,3,1,"c.hal_flash_write"],hal_gpio_init_in:[186,3,1,"c.hal_gpio_init_in"],hal_gpio_init_out:[186,3,1,"c.hal_gpio_init_out"],hal_gpio_irq_disable:[186,3,1,"c.hal_gpio_irq_disable"],hal_gpio_irq_enable:[186,3,1,"c.hal_gpio_irq_enable"],hal_gpio_irq_handler_t:[186,4,1,"c.hal_gpio_irq_handler_t"],hal_gpio_irq_init:[186,3,1,"c.hal_gpio_irq_init"],hal_gpio_irq_release:[186,3,1,"c.hal_gpio_irq_release"],hal_gpio_irq_trig_t:[186,4,1,"c.hal_gpio_irq_trig_t"],hal_gpio_mode_t:[186,4,1,"c.hal_gpio_mode_t"],hal_gpio_pull_t:[186,4,1,"c.hal_gpio_pull_t"],hal_gpio_read:[186,3,1,"c.hal_gpio_read"],hal_gpio_toggle:[186,3,1,"c.hal_gpio_toggle"],hal_gpio_write:[186,3,1,"c.hal_gpio_write"],hal_i2c_init:[187,3,1,"c.hal_i2c_init"],hal_i2c_master_data:[187,7,1,"_CPPv319hal_i2c_master_data"],hal_i2c_master_probe:[187,3,1,"c.hal_i2c_master_probe"],hal_i2c_master_read:[187,3,1,"c.hal_i2c_master_read"],hal_i2c_master_write:[187,3,1,"c.hal_i2c_master_write"],hal_reset_cause:[191,3,1,"c.hal_reset_cause"],hal_spi_abort:[190,3,1,"c.hal_spi_abort"],hal_spi_config:[190,3,1,"c.hal_spi_config"],hal_spi_data_mode_breakout:[190,3,1,"c.hal_spi_data_mode_breakout"],hal_spi_disable:[190,3,1,"c.hal_spi_disable"],hal_spi_enable:[190,3,1,"c.hal_spi_enable"],hal_spi_init:[190,3,1,"c.hal_spi_init"],hal_spi_set_txrx_cb:[190,3,1,"c.hal_spi_set_txrx_cb"],hal_spi_settings:[190,7,1,"_CPPv316hal_spi_settings"],hal_spi_slave_set_def_tx_val:[190,3,1,"c.hal_spi_slave_set_def_tx_val"],hal_spi_tx_val:[190,3,1,"c.hal_spi_tx_val"],hal_spi_txrx:[190,3,1,"c.hal_spi_txrx"],hal_spi_txrx_cb:[190,4,1,"c.hal_spi_txrx_cb"],hal_spi_txrx_noblock:[190,3,1,"c.hal_spi_txrx_noblock"],hal_system_clock_start:[191,3,1,"c.hal_system_clock_start"],hal_system_reset:[191,3,1,"c.hal_system_reset"],hal_system_restart:[191,3,1,"c.hal_system_restart"],hal_system_start:[191,3,1,"c.hal_system_start"],hal_timer:[192,7,1,"_CPPv39hal_timer"],hal_timer_cb:[192,4,1,"c.hal_timer_cb"],hal_timer_config:[192,3,1,"c.hal_timer_config"],hal_timer_deinit:[192,3,1,"c.hal_timer_deinit"],hal_timer_delay:[192,3,1,"c.hal_timer_delay"],hal_timer_get_resolution:[192,3,1,"c.hal_timer_get_resolution"],hal_timer_init:[192,3,1,"c.hal_timer_init"],hal_timer_read:[192,3,1,"c.hal_timer_read"],hal_timer_set_cb:[192,3,1,"c.hal_timer_set_cb"],hal_timer_start:[192,3,1,"c.hal_timer_start"],hal_timer_start_at:[192,3,1,"c.hal_timer_start_at"],hal_timer_stop:[192,3,1,"c.hal_timer_stop"],hal_uart_blocking_tx:[193,3,1,"c.hal_uart_blocking_tx"],hal_uart_close:[193,3,1,"c.hal_uart_close"],hal_uart_config:[193,3,1,"c.hal_uart_config"],hal_uart_init:[193,3,1,"c.hal_uart_init"],hal_uart_init_cbs:[193,3,1,"c.hal_uart_init_cbs"],hal_uart_rx_char:[193,4,1,"c.hal_uart_rx_char"],hal_uart_start_rx:[193,3,1,"c.hal_uart_start_rx"],hal_uart_start_tx:[193,3,1,"c.hal_uart_start_tx"],hal_uart_tx_char:[193,4,1,"c.hal_uart_tx_char"],hal_uart_tx_done:[193,4,1,"c.hal_uart_tx_done"],hal_watchdog_enable:[194,3,1,"c.hal_watchdog_enable"],hal_watchdog_init:[194,3,1,"c.hal_watchdog_init"],hal_watchdog_tickle:[194,3,1,"c.hal_watchdog_tickle"],os_callout:[84,7,1,"_CPPv310os_callout"],os_callout_init:[84,3,1,"c.os_callout_init"],os_callout_queued:[84,3,1,"c.os_callout_queued"],os_callout_remaining_ticks:[84,3,1,"c.os_callout_remaining_ticks"],os_callout_reset:[84,3,1,"c.os_callout_reset"],os_callout_stop:[84,3,1,"c.os_callout_stop"],os_cputime_delay_nsecs:[86,3,1,"c.os_cputime_delay_nsecs"],os_cputime_delay_ticks:[86,3,1,"c.os_cputime_delay_ticks"],os_cputime_delay_usecs:[86,3,1,"c.os_cputime_delay_usecs"],os_cputime_get32:[86,3,1,"c.os_cputime_get32"],os_cputime_init:[86,3,1,"c.os_cputime_init"],os_cputime_nsecs_to_ticks:[86,3,1,"c.os_cputime_nsecs_to_ticks"],os_cputime_ticks_to_nsecs:[86,3,1,"c.os_cputime_ticks_to_nsecs"],os_cputime_ticks_to_usecs:[86,3,1,"c.os_cputime_ticks_to_usecs"],os_cputime_timer_init:[86,3,1,"c.os_cputime_timer_init"],os_cputime_timer_relative:[86,3,1,"c.os_cputime_timer_relative"],os_cputime_timer_start:[86,3,1,"c.os_cputime_timer_start"],os_cputime_timer_stop:[86,3,1,"c.os_cputime_timer_stop"],os_cputime_usecs_to_ticks:[86,3,1,"c.os_cputime_usecs_to_ticks"],os_event:[87,7,1,"_CPPv38os_event"],os_event_fn:[87,4,1,"c.os_event_fn"],os_eventq:[87,7,1,"_CPPv39os_eventq"],os_eventq_dflt_get:[87,3,1,"c.os_eventq_dflt_get"],os_eventq_get:[87,3,1,"c.os_eventq_get"],os_eventq_get_no_wait:[87,3,1,"c.os_eventq_get_no_wait"],os_eventq_init:[87,3,1,"c.os_eventq_init"],os_eventq_inited:[87,3,1,"c.os_eventq_inited"],os_eventq_poll:[87,3,1,"c.os_eventq_poll"],os_eventq_put:[87,3,1,"c.os_eventq_put"],os_eventq_remove:[87,3,1,"c.os_eventq_remove"],os_eventq_run:[87,3,1,"c.os_eventq_run"],os_get_uptime_usec:[100,3,1,"c.os_get_uptime_usec"],os_gettimeofday:[100,3,1,"c.os_gettimeofday"],os_mbuf:[89,7,1,"_CPPv37os_mbuf"],os_mbuf_adj:[89,3,1,"c.os_mbuf_adj"],os_mbuf_append:[89,3,1,"c.os_mbuf_append"],os_mbuf_appendfrom:[89,3,1,"c.os_mbuf_appendfrom"],os_mbuf_cmpf:[89,3,1,"c.os_mbuf_cmpf"],os_mbuf_cmpm:[89,3,1,"c.os_mbuf_cmpm"],os_mbuf_concat:[89,3,1,"c.os_mbuf_concat"],os_mbuf_copydata:[89,3,1,"c.os_mbuf_copydata"],os_mbuf_copyinto:[89,3,1,"c.os_mbuf_copyinto"],os_mbuf_dup:[89,3,1,"c.os_mbuf_dup"],os_mbuf_extend:[89,3,1,"c.os_mbuf_extend"],os_mbuf_free:[89,3,1,"c.os_mbuf_free"],os_mbuf_free_chain:[89,3,1,"c.os_mbuf_free_chain"],os_mbuf_get:[89,3,1,"c.os_mbuf_get"],os_mbuf_get_pkthdr:[89,3,1,"c.os_mbuf_get_pkthdr"],os_mbuf_off:[89,3,1,"c.os_mbuf_off"],os_mbuf_pkthdr:[89,7,1,"_CPPv314os_mbuf_pkthdr"],os_mbuf_pool:[89,7,1,"_CPPv312os_mbuf_pool"],os_mbuf_pool_init:[89,3,1,"c.os_mbuf_pool_init"],os_mbuf_prepend:[89,3,1,"c.os_mbuf_prepend"],os_mbuf_prepend_pullup:[89,3,1,"c.os_mbuf_prepend_pullup"],os_mbuf_pullup:[89,3,1,"c.os_mbuf_pullup"],os_mbuf_trim_front:[89,3,1,"c.os_mbuf_trim_front"],os_memblock:[90,7,1,"_CPPv311os_memblock"],os_memblock_from:[90,3,1,"c.os_memblock_from"],os_memblock_get:[90,3,1,"c.os_memblock_get"],os_memblock_put:[90,3,1,"c.os_memblock_put"],os_memblock_put_from_cb:[90,3,1,"c.os_memblock_put_from_cb"],os_membuf_t:[90,4,1,"c.os_membuf_t"],os_mempool:[90,7,1,"_CPPv310os_mempool"],os_mempool_ext_init:[90,3,1,"c.os_mempool_ext_init"],os_mempool_info:[90,7,1,"_CPPv315os_mempool_info"],os_mempool_info_get_next:[90,3,1,"c.os_mempool_info_get_next"],os_mempool_init:[90,3,1,"c.os_mempool_init"],os_mempool_is_sane:[90,3,1,"c.os_mempool_is_sane"],os_mempool_put_fn:[90,4,1,"c.os_mempool_put_fn"],os_mqueue:[89,7,1,"_CPPv39os_mqueue"],os_mqueue_get:[89,3,1,"c.os_mqueue_get"],os_mqueue_init:[89,3,1,"c.os_mqueue_init"],os_mqueue_put:[89,3,1,"c.os_mqueue_put"],os_msys_count:[89,3,1,"c.os_msys_count"],os_msys_get:[89,3,1,"c.os_msys_get"],os_msys_get_pkthdr:[89,3,1,"c.os_msys_get_pkthdr"],os_msys_num_free:[89,3,1,"c.os_msys_num_free"],os_msys_register:[89,3,1,"c.os_msys_register"],os_msys_reset:[89,3,1,"c.os_msys_reset"],os_mutex:[91,7,1,"_CPPv38os_mutex"],os_mutex_init:[91,3,1,"c.os_mutex_init"],os_mutex_pend:[91,3,1,"c.os_mutex_pend"],os_mutex_release:[91,3,1,"c.os_mutex_release"],os_sanity_check:[97,7,1,"_CPPv315os_sanity_check"],os_sanity_check_func_t:[97,4,1,"c.os_sanity_check_func_t"],os_sanity_check_init:[97,3,1,"c.os_sanity_check_init"],os_sanity_check_register:[97,3,1,"c.os_sanity_check_register"],os_sanity_check_reset:[97,3,1,"c.os_sanity_check_reset"],os_sanity_task_checkin:[97,3,1,"c.os_sanity_task_checkin"],os_sched_get_current_task:[85,3,1,"c.os_sched_get_current_task"],os_sem:[98,7,1,"_CPPv36os_sem"],os_sem_get_count:[98,3,1,"c.os_sem_get_count"],os_sem_init:[98,3,1,"c.os_sem_init"],os_sem_pend:[98,3,1,"c.os_sem_pend"],os_sem_release:[98,3,1,"c.os_sem_release"],os_settimeofday:[100,3,1,"c.os_settimeofday"],os_stime_t:[100,4,1,"c.os_stime_t"],os_task:[99,7,1,"_CPPv37os_task"],os_task_count:[99,3,1,"c.os_task_count"],os_task_func_t:[99,4,1,"c.os_task_func_t"],os_task_info:[99,7,1,"_CPPv312os_task_info"],os_task_info_get_next:[99,3,1,"c.os_task_info_get_next"],os_task_init:[99,3,1,"c.os_task_init"],os_task_remove:[99,3,1,"c.os_task_remove"],os_task_state_t:[99,4,1,"c.os_task_state_t"],os_tick_idle:[189,3,1,"c.os_tick_idle"],os_tick_init:[189,3,1,"c.os_tick_init"],os_time_advance:[100,3,1,"c.os_time_advance"],os_time_delay:[100,3,1,"c.os_time_delay"],os_time_get:[100,3,1,"c.os_time_get"],os_time_ms_to_ticks:[100,3,1,"c.os_time_ms_to_ticks"],os_time_t:[100,4,1,"c.os_time_t"],os_timeradd:[100,0,1,"c.os_timeradd"],os_timersub:[100,0,1,"c.os_timersub"],os_timeval:[100,7,1,"_CPPv310os_timeval"],os_timezone:[100,7,1,"_CPPv311os_timezone"]}},objnames:{"0":["c","define","define"],"1":["c","enumvalue","enumvalue"],"2":["c","enum","enum"],"3":["c","function","C function"],"4":["c","typedef","typedef"],"5":["c","struct","struct"],"6":["c","variable","variable"],"7":["cpp","class","C++ class"]},objtypes:{"0":"c:define","1":"c:enumvalue","2":"c:enum","3":"c:function","4":"c:typedef","5":"c:struct","6":"c:variable","7":"cpp:class"},terms:{"000s":[257,259,262,274],"008s":[257,259,262,274],"00z":265,"01t22":68,"02d":10,"02t22":265,"04x":20,"05t02":265,"093s":[257,259,262,274],"0b1000110":187,"0mb":11,"0ubuntu5":6,"0x0":[254,261,274],"0x00":[20,261,262,273],"0x0000":[245,273],"0x00000000":[179,222,224,225],"0x00000001":128,"0x00000002":[128,261],"0x00000004":128,"0x00000008":128,"0x00000010":128,"0x000000b8":254,"0x000000d8":[287,288],"0x000000dc":[244,280,287,288],"0x00004000":[222,224,225],"0x00008000":[93,222,224,225],"0x00009ef4":261,"0x0000fca6":254,"0x00023800":222,"0x0003f000":222,"0x0003f800":222,"0x0006":29,"0x0007d000":[10,225],"0x000e0000":224,"0x0010":27,"0x01":[20,27,30,128,262],"0x0100":27,"0x01000000":260,"0x0101":20,"0x0102":20,"0x0103":20,"0x0104":20,"0x0105":20,"0x0106":20,"0x0107":20,"0x0108":20,"0x0109":20,"0x010a":20,"0x010b":20,"0x010c":20,"0x010d":20,"0x010e":20,"0x010f":20,"0x0110":20,"0x0111":20,"0x02":[20,27,30,128,262,273],"0x0201":20,"0x0202":20,"0x0203":20,"0x0204":20,"0x0205":20,"0x0206":20,"0x0207":20,"0x0208":20,"0x0209":20,"0x020a":20,"0x020b":20,"0x020c":20,"0x020d":20,"0x020e":20,"0x020f":20,"0x0210":20,"0x0211":20,"0x0212":20,"0x0213":20,"0x0214":20,"0x0215":20,"0x0216":20,"0x0217":20,"0x0218":20,"0x0219":20,"0x021a":20,"0x021b":20,"0x021c":20,"0x021d":20,"0x021e":20,"0x021f":20,"0x0220":20,"0x0221":20,"0x0222":20,"0x0223":20,"0x0224":20,"0x0225":20,"0x0226":20,"0x0227":20,"0x0228":20,"0x0229":20,"0x022a":20,"0x022c":20,"0x022d":20,"0x022e":20,"0x022f":20,"0x0230":20,"0x0232":20,"0x0234":20,"0x0235":20,"0x0236":20,"0x0237":20,"0x0238":20,"0x0239":20,"0x023a":20,"0x023b":20,"0x023c":20,"0x023d":20,"0x023e":20,"0x023f":20,"0x0240":20,"0x03":[20,30,128],"0x0300":[20,27],"0x0301":20,"0x0302":20,"0x04":[20,27],"0x0401":20,"0x0402":20,"0x0403":20,"0x0404":20,"0x0405":20,"0x0406":20,"0x0407":20,"0x0408":20,"0x0409":20,"0x040a":20,"0x040b":20,"0x040c":20,"0x040d":20,"0x040e":20,"0x0483":258,"0x05":20,"0x0501":20,"0x0502":20,"0x0503":20,"0x0504":20,"0x0505":20,"0x0506":20,"0x0507":20,"0x0508":20,"0x0509":20,"0x050a":20,"0x050b":20,"0x050c":20,"0x050d":20,"0x050e":20,"0x06":[20,245],"0x07":20,"0x08":[20,27,273],"0x08000000":260,"0x08000020":260,"0x08000250":260,"0x08021e90":258,"0x09":20,"0x0a":20,"0x0b":20,"0x0bc11477":254,"0x0c":20,"0x0c80":29,"0x0d":20,"0x0e":20,"0x0f":[20,276],"0x0f505235":128,"0x0fffffff":179,"0x1":[274,276,278,280],"0x10":[20,254,261,262,276],"0x100":20,"0x1000":[89,276,278],"0x10000":93,"0x10000000":179,"0x10010000":260,"0x10036413":260,"0x10076413":258,"0x1010":89,"0x103":20,"0x11":[20,23,253,262],"0x12":20,"0x13":20,"0x14":20,"0x1400":273,"0x15":[20,272,274,276],"0x16":20,"0x17":20,"0x18":20,"0x1800":30,"0x1808":30,"0x180a":30,"0x19":[20,207],"0x1a":20,"0x1b":20,"0x1c":[20,272,274],"0x1d":20,"0x1e":20,"0x1f":20,"0x2":[276,278],"0x20":[20,32,93,254,261,272,274],"0x200":[20,276,278],"0x2000":[276,278],"0x20000":274,"0x20000000":93,"0x20002290":258,"0x20002408":254,"0x20008000":254,"0x21":[20,32],"0x21000000":254,"0x22":[20,23,32,262],"0x23":[20,32],"0x24":20,"0x25":[20,273],"0x26":20,"0x27":20,"0x28":20,"0x2800":273,"0x29":20,"0x2a":20,"0x2ba01477":261,"0x2c":20,"0x2d":20,"0x2e":20,"0x2f":20,"0x30":[20,254,261],"0x300":20,"0x311":276,"0x32":[20,276],"0x33":23,"0x34":20,"0x35":20,"0x36":20,"0x37":20,"0x374b":258,"0x38":20,"0x39":20,"0x3a":20,"0x3a000":93,"0x3b":20,"0x3c":20,"0x3c00":273,"0x3d":20,"0x3e":20,"0x3f":20,"0x4":[276,278],"0x40":[20,254,261,272,274],"0x400":20,"0x4000":[276,278],"0x40007000":274,"0x4001e504":261,"0x4001e50c":261,"0x40number":187,"0x41000000":258,"0x42000":61,"0x44":[23,273],"0x4400":273,"0x46":187,"0x4f":[272,274],"0x50":[254,261],"0x500":20,"0x5000":273,"0x55":23,"0x60":[254,261],"0x61":[272,274],"0x66":23,"0x6c00":273,"0x70":[254,261],"0x72":[272,274],"0x7800":273,"0x7fefd260":128,"0x7fff8000":274,"0x7fffffff":179,"0x80":[272,274],"0x8000":61,"0x8000000":260,"0x80000000":179,"0x8079b62c":128,"0x81":187,"0x8801":273,"0x8c":187,"0x8d":187,"0x90":[272,274],"0x96f3b83c":128,"0x9c01":273,"0x9f":273,"0xa0":276,"0xa001":273,"0xa7":[272,274],"0xaf":[272,274],"0xb3":[272,274],"0xb401":273,"0xb5":[272,274],"0xbead":[272,274],"0xcc01":273,"0xd2":[272,274],"0xd801":273,"0xdead":[272,274],"0xe401":273,"0xe7":[272,274],"0xf":273,"0xf001":273,"0xf395c277":128,"0xfb":276,"0xfe":273,"0xff":[128,179],"0xffff":[29,190,273],"0xfffffffe":179,"0xffffffff":[91,98,128,179,206,254],"0xffffffff0xffffffff0xffffffff0xffffffff":261,"100kb":101,"1024kbyte":[258,260],"103kb":222,"10m":27,"110kb":222,"128hz":10,"128kb":[9,224],"12c":[257,259,262,274],"12kb":[10,225],"12mhz":9,"132425ssb":30,"132428ssb":30,"132433ssb":30,"132437ssb":30,"132441ssb":30,"14e":287,"14h":[280,287],"1503a0":266,"16kb":[9,224,225],"16kbram":53,"16mb":9,"190a192":273,"1_amd64":[57,60,80,83],"1c15":[272,274],"1d11":283,"1d13":[266,286],"1d560":222,"1eec4":222,"1kb":222,"1mhz":10,"1ms":10,"1st":[10,68],"1ubuntu1":6,"1wx":261,"200mhz":9,"2015q2":[4,12],"2022609336ssb":248,"2022687456ssb":248,"2022789012ssb":248,"2022851508ssb":248,"2042859320ssb":248,"2042937440ssb":248,"248m":6,"250m":238,"256kb":254,"262s":[257,259,262,274],"28a29":273,"28t22":265,"291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682":239,"296712s":260,"2a24":48,"2d5217f":81,"2m_interval_max":27,"2m_interval_min":27,"2m_latenc":27,"2m_max_conn_event_len":27,"2m_min_conn_event_len":27,"2m_scan_interv":27,"2m_scan_window":27,"2m_timeout":27,"2msym":21,"300v":[257,259,262,274],"32kb":[225,254],"32mb":9,"32wx":[254,261],"363s":[257,259,262,274],"3_1":36,"3mb":81,"4_9":4,"4fa7":[272,274],"500m":238,"512kb":93,"575c":222,"5kb":101,"5ms":10,"6lowpan":21,"73d77f":71,"78e4d263eeb5af5635705b7cae026cc184f14aa6c6c59c6e80616035cd2efc8f":222,"7b3w9m4n2mg3sqmgw2q1b9p80000gn":55,"7kb":222,"8ab6433f8971b05c2a9c3341533e8ddb754e404":269,"948f118966f7989628f8f3be28840fd23a200fc219bb72acdfe9096f06c4b39b":222,"9cf8af22b1b573909a8290a90c066d4e190407e97680b7a32243960ec2bf3a7f":286,"9mb":58,"abstract":[9,20,95,96,134,151,162,165,173,180,206,208,209,238,273,290],"boolean":[199,225],"break":[20,89,136,233,249,273],"byte":[10,19,23,27,46,66,71,73,89,90,99,128,130,132,140,141,153,157,158,160,163,168,169,170,171,172,173,174,179,182,187,190,193,199,222,226,239,241,252,253,262],"case":[2,6,7,10,20,21,30,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,92,93,97,98,99,128,134,173,179,183,222,223,225,226,227,228,229,230,231,233,235,241,245,249,250,252,253,254,265,266,272,273,274,288],"catch":20,"char":[90,92,97,99,129,130,134,138,139,152,154,155,156,159,160,161,162,164,166,169,171,172,176,177,179,193,197,198,199,200,202,205,214,215,219,220,221,223,225,232,238,241,249,252,253,256,265,273,278,280],"class":[134,262],"const":[87,89,90,93,99,128,130,135,152,154,155,156,157,158,159,160,161,162,164,165,166,169,170,171,172,176,177,180,182,184,185,199,204,205,208,214,219,221,223,249,251,252,253,265,272,273,274],"default":[1,2,4,6,7,10,12,20,24,26,27,28,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,91,92,93,94,96,97,99,130,131,133,134,135,151,175,190,199,205,206,207,208,209,211,212,213,214,216,221,222,223,224,225,235,236,238,239,245,247,249,252,253,254,255,262,267,272,273,274,276,277,279,280,282,287],"enum":[99,129,186,191,193,199,206,272,273],"export":[1,11,23,60,61,80,82,83,87,130,134,136,205,206,207,208,209,236,275,276,278],"final":[8,55,89,91,93,128,142,179,181,201,222,240,241,244,247,272,274],"float":[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,101,199,206,275],"function":[1,7,9,14,20,23,31,61,84,86,87,88,89,90,92,94,95,96,97,99,128,129,130,134,135,136,138,146,150,151,152,153,154,155,156,158,160,161,162,164,166,167,168,169,171,173,174,176,179,180,181,183,186,187,188,189,190,191,192,193,196,198,200,201,202,203,204,205,207,209,212,214,215,216,217,219,220,222,226,227,228,229,230,232,233,235,236,238,239,244,247,248,250,252,253,255,256,262,265,267,272,273,274,276,280,285,287,288,290],"goto":[97,159,204,208,217,218,272,273,274],"i\u00b2c":187,"import":[11,55,57,80,89,93,100,101,187,241,244,247,250,274],"int":[1,10,20,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,86,87,89,90,92,97,99,100,129,130,134,135,136,138,139,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,159,160,161,162,163,164,165,166,168,169,170,171,172,176,177,178,180,182,183,184,186,187,189,190,191,192,193,194,197,198,199,200,201,202,203,204,207,208,214,215,217,218,219,220,221,223,225,226,227,228,230,231,232,238,240,241,247,249,250,251,252,253,256,265,272,273,274,278,280],"long":[3,10,21,24,28,89,92,98,101,151,169,179,187,222,261,280],"new":[2,3,4,6,10,11,21,23,24,27,30,31,34,39,41,45,46,50,53,57,58,59,61,85,89,93,96,99,128,130,140,141,142,151,152,161,166,173,176,177,181,187,195,214,222,223,225,235,239,241,243,244,245,250,251,252,253,254,257,258,259,260,261,262,265,266,267,273,274,275,277,290],"null":[84,86,87,89,90,91,92,93,97,98,99,130,135,152,156,160,163,171,173,179,185,190,204,205,207,208,214,219,221,224,225,238,241,247,250,251,252,253,256,272,273,274,275,278,280],"public":[19,25,27,29,30,32,57,66,80,84,87,89,90,91,97,98,99,100,128,130,187,190,192,252,253],"return":[18,26,84,85,86,87,89,90,91,92,93,97,98,99,100,129,130,135,140,152,182,185,186,187,190,191,192,193,194,199,207,208,211,225,238,241,247,249,250,251,254,256,262,265,272,273,274,276,278,280,284],"short":[89,91,214,241],"static":[19,26,66,84,87,90,92,93,97,98,129,130,135,139,180,198,200,201,203,204,205,207,208,215,217,218,219,220,221,226,235,238,245,247,249,250,251,252,253,256,272,273,274,275,278,280],"switch":[10,12,20,58,71,77,81,85,92,93,99,128,181,195,214,236,244,245,249,250,272,273,274,280,287],"transient":250,"true":[8,10,12,86,90,97,100,204,222,226,239,265,274,283,286],"try":[2,10,20,21,23,89,152,179,187,235,240,244,245,248,254,255,256,257,258,259,261,266,268,274,276,280,282,287],"var":[50,55,65,66,97,166],"void":[20,26,84,85,86,87,89,90,92,97,99,100,129,130,134,135,136,138,150,152,153,157,159,160,162,163,166,168,169,170,171,172,178,180,182,183,184,186,187,189,190,191,192,193,194,196,198,199,205,207,208,210,215,216,217,219,220,221,225,226,227,228,230,231,232,233,238,241,247,249,250,251,252,253,256,272,273,274,275,278,280],"while":[4,6,7,8,21,23,26,49,55,61,89,90,92,93,97,99,101,130,136,138,152,154,155,156,161,164,179,193,199,204,208,222,225,226,231,236,238,241,252,253,256,263,265,272,273,274,278,280,287,288],AES:22,ANS:246,Adding:[56,79,290],And:[61,128,140,222,224,240,241,243,248,272,273,274],Are:10,But:274,CTS:[193,245],FOR:4,For:[2,3,5,6,7,8,10,11,12,20,22,23,24,29,30,34,37,39,50,53,55,57,58,59,60,61,62,66,83,84,89,92,93,96,100,101,128,134,135,152,170,173,174,179,180,183,186,187,190,199,205,206,207,208,209,210,220,222,223,224,225,231,233,235,238,239,244,249,250,251,252,253,254,256,258,259,260,262,265,266,267,268,273,274,276,278,280,283,286,287,288,290],IDE:[5,12],IDs:128,Its:[94,100,101,235,268],NOT:[156,187,192,274],Not:[7,20,29,86,89,179,181,186,190,222,274],One:[6,20,92,101,179,222,235,247,266,273],PCs:8,QoS:[20,21],RTS:[193,245],Such:[179,252,253,268],TMS:254,That:[2,10,20,61,140,179,225,252,253,254,262,266,267,273,274],The:[1,2,3,4,5,6,7,8,10,11,12,14,15,16,17,18,19,20,21,22,23,24,26,27,29,30,31,33,34,37,43,45,46,47,50,55,57,58,59,61,63,64,66,70,71,72,73,75,76,77,78,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,128,129,130,131,132,133,134,135,136,140,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,172,173,174,175,176,177,179,180,181,182,183,184,185,186,187,189,190,191,192,193,194,195,197,198,199,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,222,223,224,225,226,229,231,233,234,235,236,238,239,240,241,242,243,244,245,247,249,250,251,252,253,254,255,257,258,259,260,261,262,263,265,266,267,268,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],Then:[10,33,63,128,140,179,222,235,245,265,273,274,287],There:[4,8,10,22,23,28,57,61,80,84,89,91,93,94,98,99,100,101,129,130,134,160,179,181,186,205,206,211,214,222,223,249,254,262,265,269,274,280,287,288],These:[5,20,27,50,61,89,93,94,96,98,128,129,134,179,187,206,209,210,211,214,224,236,243,247,251,252,253,254,255,260,267,268,275,276],Use:[1,7,8,11,27,28,50,57,58,59,62,71,80,81,82,93,132,140,142,222,235,249,252,253,254,257,262,266,267,274,275,277,285],Used:[93,190,193,227,228,230],Uses:[31,42,133,224],Using:[20,49,91,256,285,290],Was:262,Will:20,With:[9,10,20,21,30,89,92,96,128,222,224,240,241,244,273,287,288,290],Yes:[10,19,89,128,133,242],__arg:97,__asm:258,__builtin_offsetof:223,__etext:260,__ev:87,__f:97,__hdr:89,__itvl:97,__n:89,__name:99,__om:89,__omp:89,__sc:97,__size:99,__t1:[86,100],__t2:[86,100],__type:89,__wfi:258,_access:249,_adc:274,_addr:252,_addr_:[252,253],_app:252,_build:[33,63],_cfg:[207,208],_cli:[208,209,276],_cnt:140,_config:[206,207,208,278],_file:152,_gatt_ac:249,_imghdr_siz:93,_init:[206,207,208],_log:208,_name:225,_nrf52_adc_h_:274,_object:199,_ofb:[207,209,276],_onb:[207,209,280],_pad1:128,_pad2:128,_pad3:128,_pad:[91,128],_param:214,_rea:199,_reserv:206,_resource_t:275,_sbrk:182,_senseair_h_:273,_sensor:207,_set:252,_shell_init:[208,276],_stage:225,_stat:208,a600anj1:222,abbrevi:247,abc:265,abil:[6,22,31,55,89,241],abl:[2,10,89,93,134,135,236,242,248,252,253,254,267,273,274],abort:[49,190,215,219,224,225,226,265,278],about:[1,3,10,23,29,40,57,58,59,62,64,80,81,82,90,92,93,97,99,100,140,141,145,179,199,210,222,223,234,235,238,241,247,250,251,252,253,257,261,262,268,273,274],abov:[9,10,14,19,89,92,97,100,128,152,160,179,187,190,214,222,223,224,225,236,244,247,249,252,253,256,262,265,267,272,274],absent:[128,179],absolut:[89,192],abstrat:140,acc:276,accel:[276,280],accel_rev:276,acceleromet:[206,208,275,276,277,280],accept:[20,27,136,160,179,187,193,195,235,254,258,260,262,267],access:[15,20,21,27,59,61,64,70,80,81,82,86,88,89,91,92,93,98,134,135,136,140,152,160,167,169,173,180,181,187,195,205,206,208,209,222,225,231,238,244,251,254,265,273],access_:251,access_cb:[249,251,272],access_fla:160,access_flag:[160,162],accgyro:276,accommod:[24,89,96,128,179,252],accompani:10,accomplish:[9,10,55,173,179,249],accord:[10,93,128,231,232],accordingli:[24,93,99],account:[10,61,89,128],accur:260,achiev:[26,179,252,253],ack_rxd:262,acknowledg:262,acl:20,acquir:[26,91,98,179,187],acquisit:187,across:[30,31,55,61,62,134,179,181],act:[22,30,195,222],action:[9,10,27,62,235,241,247,251,262,274],activ:[12,16,17,21,47,71,93,99,190,195,222,235,239,247,262,283,286,287,288],actual:[2,7,10,34,77,89,93,99,128,156,163,171,179,183,194,222,224,226,234,241,244,252,253,254,267,268,269,273,274],ad_fil:152,adafruit:[8,274,276],adapt:[21,96,254,257,258,266,280],adapter_nsrst_delai:[254,258],adaptor:260,adc0:274,adc:[9,10,53,134],adc_0:274,adc_0_interrupt_prior:274,adc_0_oversampl:274,adc_0_resolut:274,adc_buf_read:274,adc_buf_releas:274,adc_buf_s:274,adc_buf_set:274,adc_chan_config:274,adc_config:274,adc_dev:274,adc_event_handler_set:274,adc_evq:274,adc_hw_impl:53,adc_init:274,adc_nrf52:274,adc_number_channel:274,adc_number_sampl:274,adc_read:274,adc_read_ev:274,adc_result:274,adc_result_mv:274,adc_sampl:274,adc_sns_str:274,adc_sns_typ:274,adc_sns_val:274,adc_stack:274,adc_stack_s:274,adc_stm32f4:134,adc_task:274,adc_task_handl:274,adc_task_prio:274,add:[1,2,4,6,7,10,11,12,27,37,39,50,55,57,58,59,61,62,80,87,89,92,96,98,100,101,130,131,140,152,181,187,207,208,215,223,225,235,236,238,239,240,241,244,245,248,254,255,256,263,265,266,267,276,277,278,279,281,283,284,285,286,290],added:[10,12,32,53,55,81,89,93,98,99,128,130,135,137,152,187,214,238,239,254,256,266,268,272,273,283,284,286,290],adding:[2,10,31,37,55,89,93,94,100,140,223,244,256,265,267,268,272,273,274],addit:[1,10,12,21,29,43,55,61,62,89,93,94,96,128,134,152,179,187,205,222,225,226,229,235,236,241,244,247,254,255,257,258,260,261,262,273,284],addition:62,addr:[27,30,135,199,204,245,252,253,276],addr_typ:[27,30],address:[10,20,21,22,25,27,29,31,32,55,66,89,90,92,128,134,135,136,151,179,184,187,190,199,206,208,222,239,245,249,262,266,280,287],aditihilbert:4,adjust:[10,20,89,93,238,240],admin:[4,245],adress:27,adsertis:27,adv:[10,21,27,30,31],adv_data:27,adv_field:[247,252],adv_param:[247,250,252,253],advanc:[59,168,179,287,288],advantag:250,advantang:247,adverb:62,adverti:[252,253],advertis:[15,20,21,24,26,31,32,66,239,246,248,250,272,274,275],advertise_128bit_uuid:275,advertise_16bit_uuid:275,advertising_interv:[27,29],advic:[94,95],advinterv:29,aes:[254,257,259,261,266,283,284,286],aesni:[283,284],af80:[272,274],affect:[128,168,173,174,180,205,222,244,263],aflag:[1,50,61],after:[4,8,10,11,22,26,30,41,50,55,57,58,61,80,81,86,89,90,94,99,100,128,129,134,138,142,146,152,173,179,187,190,193,208,222,224,229,235,236,239,241,242,245,247,249,250,251,254,255,266,267,276,280],again:[8,10,20,26,57,59,80,93,99,128,140,222,223,241,247,254,257,258,259,260,261,262,272,274,286],against:[10,22,89,92,100],agnost:152,agre:[273,274],agreement:[273,274],ah02mie2:273,ahead:100,aid:[61,208],aim:[20,135,152,246,290],ain0:274,ain1:274,air:[20,89,222,236,262,281,290],air_q:273,air_qual:[272,273,274],albeit:243,alert:246,algorithm:[21,85],align:[89,90,140,241],all201612161220:75,all:[1,2,3,6,7,8,9,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,35,40,41,43,49,50,51,52,53,55,61,66,72,75,89,91,92,93,94,96,97,99,100,128,129,130,134,140,144,150,152,159,160,163,165,166,169,171,173,175,177,179,180,181,183,190,199,205,206,207,208,209,210,211,212,214,219,222,223,224,225,229,231,234,235,236,240,242,244,245,246,247,248,249,250,251,252,253,256,258,260,262,263,265,267,268,269,270,272,273,274,276,278,280,283,286],alloc:[73,77,87,88,89,90,151,179,219,247,249],allow:[2,3,4,6,8,9,10,12,20,21,27,31,39,50,55,57,58,59,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,91,92,96,98,128,130,134,152,173,179,182,187,190,191,205,209,210,211,213,214,222,223,225,228,232,235,236,238,241,245,247,250,252,256,257,262,266,274,276,280,282],almost:[8,241],alon:232,along:[10,61,89,90,99,217,273],alongsid:[241,252],alphabet:[179,225],alreadi:[6,7,8,10,11,20,24,31,43,58,59,81,82,86,95,96,128,135,146,153,159,160,165,166,167,172,179,186,192,235,240,243,244,254,256,257,258,259,260,261,262,266,272,273,274,275,283,286,287,288],also:[1,3,5,6,7,8,10,11,12,21,23,24,27,34,37,40,55,57,58,59,60,61,66,80,83,89,90,92,93,96,98,99,100,128,129,130,131,134,135,140,152,173,179,190,193,195,205,206,207,208,210,212,214,222,223,224,225,235,236,238,241,244,247,250,251,255,256,262,263,265,266,267,268,272,273,274,276,277,278,279,280,283,284,286],alt:286,altern:[6,128,140,222,249],although:267,altogeth:[84,272],alwai:[8,10,61,93,100,128,156,158,160,161,168,170,179,183,243,249,252,253,260,265,267,268,273,290],ambigu:20,ambiti:244,amd64:[57,80],amend:[1,32,50,62,239,263,287,288],amg:276,among:[85,93,128,176,222],amongst:89,amount:[24,89,90,95,152,171,205,222,241,247],analog:[134,281],analyz:[12,288],android:[275,277,279,282],ani:[1,4,8,10,14,21,22,27,33,49,50,59,61,63,64,66,73,76,77,80,81,82,84,86,87,89,90,91,92,93,95,97,98,99,100,128,130,135,136,152,159,169,173,174,175,176,178,179,190,193,205,208,209,214,222,223,225,232,235,236,239,245,247,256,257,262,268,272,273,274,280,285,290],announc:[247,252,253],annoy:[249,269],anonym:27,anoth:[10,21,26,27,30,61,89,91,92,93,94,95,98,99,100,130,186,195,222,224,235,241,247,249,262,273,274,284,287,288],ans:[273,274],answer:92,anymor:[89,241],anyon:10,anyth:[1,8,23,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,222,235,240,244,252,253,255,268,273,274],apach:[1,2,6,7,10,11,12,21,32,33,37,38,39,43,44,50,51,53,55,57,58,59,61,62,63,80,81,82,84,93,128,130,133,134,152,183,222,223,225,235,242,244,245,246,248,252,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,275,276,277,280,282,283,284,285,286,287,288,290],apart:100,api:[1,10,16,17,18,19,20,21,53,55,61,92,96,134,135,162,181,185,208,209,214,223,253,258,275,279],app:[1,7,8,10,12,21,26,29,32,34,37,38,42,43,45,46,47,48,50,53,55,62,73,76,77,93,128,130,134,152,181,191,223,224,225,235,236,238,239,240,241,244,246,247,250,251,252,253,254,256,257,258,259,260,261,265,266,272,273,274,275,276,277,278,279,283,284,285,286,287,290],app_error:274,app_log_init:205,app_util_platform:274,appear:[10,27,29,96,187,241,249,251],append:[89,140,158,168,170,179,265],append_loc:[141,142],append_test:265,appl:[254,280,282,287,288],appli:[10,12,24,100,128,130,173,174,179,193,205,222,225,262,265],applic:[1,2,4,5,6,8,9,10,11,13,14,18,20,21,23,24,25,26,28,30,34,39,42,47,50,55,57,58,59,60,61,73,76,77,78,82,83,87,89,93,97,99,128,130,131,132,133,134,152,173,179,184,190,208,209,210,211,212,213,214,220,223,224,225,234,239,243,246,249,250,255,264,265,272,273,279,282,284,285,288,290],applicaton:1,applict:12,approach:[31,93,225],appropri:[62,89,93,96,99,132,134,179,187,190,225,235,240,244,247,250,252,253,255,273,274,279],approv:10,apps_air_qu:273,apps_bleprph:222,apps_blinki:[55,61],apps_my_sensor_app:280,apr:[257,259,262,274],apropo:[254,280,287,288],apt:[4,6,7,56,60,79,83,245],arbitrari:[128,235,245,254,257,258,259,260,261,262,266,274,276,283,284,286],arbitrarili:[128,179,253],arc4:254,arch:[61,93,96,231,257,258,259,260,261,262,280],arch_sim:[256,280],architectur:[57,80,85,90,93,95,96,100,128,134,151,181,186,241],archiv:[4,7,57,59,61,166,235,236,244,254,256,257,258,259,260,261,262,266,273,274,276,280,283,284,286],arduino:[12,241,255,264,267,272,273,290],arduino_101:53,arduino_blinki:[12,241,254],arduino_boot:[12,254],arduino_mkr1000:266,arduino_primo_nrf52:[53,257,273],arduino_zero:254,arduino_zero_debug:254,arduinowifi:266,area:[10,89,93,128,129,140,150,174,176,177,182,225],area_cnt:182,area_desc:[176,177],aren:[10,101],arg:[12,86,89,90,92,97,99,134,150,184,186,190,192,193,205,208,217,226,238,241,249,250,272,273,274,280],argc:[92,99,129,138,139,176,177,197,214,215,219,220,221,225,232,238,241,252,253,256,265,273,278,280],argument:[11,12,20,45,50,55,62,84,87,89,90,97,99,100,130,167,183,186,187,190,192,199,205,208,210,214,220,241,247,250,251,252,253,257,259,267,268,280],argv:[99,129,138,139,176,177,197,214,215,219,220,221,225,232,238,241,252,253,256,265,273,278,280],arm:[5,6,7,12,84,93,101,254,260,280,286,287,288],around:[30,89,128,274,275,277],arrai:[23,87,139,140,150,173,174,176,177,190,199,200,201,203,204,214,219,225,240,241,247,251],arrang:[93,222],arriv:89,articl:269,artifact:[35,39,50,55,57,58,59,267],ascii:179,asf:[1,267,273,274],ask:[10,92,129,193,206,241,260,267,268,273],aspect:[27,89,128,241],assembl:[1,61,93,96,257,258,259,260,261,262,280],assert:[10,67,89,97,130,157,170,176,177,190,207,223,226,238,241,249,250,251,252,253,256,272,273,274,278,280],assign:[10,19,21,23,29,37,50,53,66,90,92,93,99,140,179,180,225,235,249,254,257,258,259,260,261,262,266,274,276,283,286],associ:[22,24,87,89,97,99,128,192,225,226,247,250],assum:[7,10,12,30,43,59,60,82,83,87,89,93,99,128,135,190,195,225,235,236,238,240,243,244,256,262,272,273,274,275,277,279,280,287,288],assumpt:10,asynchron:193,at45db:[10,135],at45db_default_config:135,at45db_dev:135,at45db_erase_sector:135,at45db_init:135,at45db_read:135,at45db_sector_info:135,at45db_writ:135,at45dbxxx:135,at91samd21g18:254,at91samd:254,ate_m:206,atmel:[2,254,266],atop:[134,181],att:[18,21,28,249],attach:[8,12,89,93,186,191,244,257,262,274,280,287,288],attempt:[20,23,27,89,90,91,99,128,163,171,176,177,178,179,187,225,249,250,251,262],attempt_stat:223,attent:3,attr:[28,30,204],attr_handl:[248,249,250,272,274],attribit:199,attribut:[14,16,17,20,21,28,50,53,62,66,90,94,96,199,204,225,246,249],auth:[10,27,269],authent:[20,22,30,128,248],author:[1,20,43,61,130,265,273,274],auto:[29,135],autocomplet:55,autoconf:55,autom:31,automat:[1,10,21,24,25,42,55,61,94,196,214,223,225,229,236,244,246,247,254,257,258,260,261,265,267,273,274,275,290],autoselect:254,avaial:262,avail:[1,2,3,4,7,9,10,20,21,23,24,29,30,31,32,47,57,58,59,62,64,73,80,81,82,87,89,90,91,97,98,101,128,130,132,134,140,152,163,173,193,195,206,214,222,225,231,234,236,252,256,262,268,274,279,287,288],avail_queu:130,avoid:[61,89,91,92,97,241,275],awai:[20,93,129,249,274],await:3,awar:[247,252,253],b0_0:260,b0_1:260,b1_0:260,b1_1:260,b5729002b340:[272,274],b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2:239,bab:205,back:[8,58,64,69,80,81,82,89,90,100,101,128,129,130,187,212,236,251,260,261,273,279,283,284,286],backend:129,backward:[21,128,130,179,214],bad:[128,222,268],badli:92,bake:10,band:[21,22,27],bang:273,bank:260,bar:[12,129,290],bare:[84,246,252,253,290],base64:[7,130,262,280],base:[1,2,4,6,7,10,12,20,21,24,31,34,39,55,57,58,59,61,89,101,132,134,136,168,181,182,187,224,241,245,251,254,257,258,260,261,266,273,275,276,280],baselibc:[7,10,48,93],baselin:133,bash:[2,12,55,59,93],bash_complet:36,bash_profil:[11,58,60,81,83],bashrc:55,basi:[9,19,22,99,268,273,274],basic:[1,10,14,21,29,30,31,61,89,93,99,101,134,152,182,184,186,193,222,236,239,244,245,262,267,269,271,272,282,284,285],batch:93,batteri:[9,24,31,96,252],baud:[66,130,245,273],baudrat:[135,190,193],bbno055_cli:276,bc_acc_bw:[208,278],bc_acc_rang:[208,278],bc_mask:[208,278],bc_opr_mod:[208,278],bc_placement:208,bc_pwr_mode:[208,278],bc_unit:[208,278],bc_use_ext_xt:278,bcfg:278,bd_addr:20,be9699809a049:71,beacon:[14,243,244,255],bearer:[10,21,32],becaus:[8,10,12,20,22,26,30,50,87,128,169,179,180,187,190,206,208,211,215,222,224,241,265,267,269,273,275,276,277,280],becom:[22,31,128,247,250],been:[4,10,20,26,36,43,55,58,59,61,77,81,82,84,88,89,90,99,128,129,138,140,152,153,165,173,179,190,193,222,225,242,245,250,254,257,262,266,272,273],befor:[2,4,7,8,10,12,20,41,50,57,61,80,84,86,88,89,91,92,93,97,99,100,101,128,129,130,140,146,173,174,178,190,192,193,194,199,210,211,214,216,222,223,225,231,232,236,238,241,244,245,246,247,249,252,253,255,256,258,262,265,266,274,279,282,285],begin:[10,26,89,99,140,148,193,245,248,250,252,253,265,267],beginn:290,behav:[20,30,92,252,253,265],behavior:[59,92,96,161,162,173,241,249,251,265,266,288],behaviour:89,behind:[89,100],being:[10,20,89,90,92,97,99,100,128,129,135,152,179,186,187,188,197,198,222,226,241,248,250,265,273,290],bell:98,belong:[14,90,128,179,251],below:[1,2,4,6,10,12,18,20,22,23,24,30,43,62,89,92,93,94,98,99,128,130,132,135,153,160,163,179,180,192,208,222,235,241,244,249,251,254,257,258,260,261,262,263,265,267,268,269,272,274,275,276,278,282,290],benefit:[10,92,179,225,234,238],best:[10,89,93,160,199,268],beta:[134,274],better:[10,128,223],between:[7,12,21,26,27,31,37,46,55,98,100,130,179,186,187,197,199,209,222,224,225,236,238,245,257,262,268,274,276,280],beyond:[89,179],bhd:66,big:[23,61,89,262,268],bigger:222,bin:[2,4,7,10,11,12,34,35,37,38,43,46,48,50,55,57,58,59,60,61,80,81,82,83,93,168,169,222,225,235,236,239,240,244,245,248,254,256,257,258,259,260,261,262,265,266,273,274,276,280,283,284,286,287,288],bin_basenam:61,binari:[4,7,10,11,34,37,39,55,58,60,61,79,81,83,101,132,187,256,273],binutil:4,bit:[7,14,23,25,27,29,57,58,59,66,81,82,86,89,90,99,100,101,128,179,187,188,190,193,206,208,210,211,222,223,241,244,249,250,251,252,253,266,268,273,274,275,280,287,288],bitbang:188,bitmap:90,bitmask:99,bits0x00:27,bl_rev:276,bla:205,blank:10,ble:[14,18,19,23,26,30,31,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,128,132,133,222,225,236,239,243,245,247,249,250,251,255,271,272,273,277,279,282,290],ble_:249,ble_addr_t:[252,253],ble_addr_type_publ:250,ble_app:[244,252,253],ble_app_advertis:[252,253],ble_app_on_sync:[252,253],ble_app_set_addr:[252,253],ble_att:[76,236,249],ble_att_err_attr_not_found:20,ble_att_err_attr_not_long:20,ble_att_err_insufficient_authen:20,ble_att_err_insufficient_author:20,ble_att_err_insufficient_enc:20,ble_att_err_insufficient_key_sz:20,ble_att_err_insufficient_r:[20,272,274],ble_att_err_invalid_attr_value_len:[20,249],ble_att_err_invalid_handl:20,ble_att_err_invalid_offset:20,ble_att_err_invalid_pdu:20,ble_att_err_prepare_queue_ful:20,ble_att_err_read_not_permit:20,ble_att_err_req_not_support:20,ble_att_err_unlik:[20,272,274],ble_att_err_unsupported_group:20,ble_att_err_write_not_permit:20,ble_att_svr_entry_pool:73,ble_att_svr_prep_entry_pool:73,ble_eddystone_set_adv_data_uid:252,ble_eddystone_set_adv_data_url:252,ble_eddystone_url_scheme_http:252,ble_eddystone_url_suffix_org:252,ble_err_acl_conn_exist:20,ble_err_auth_fail:20,ble_err_chan_class:20,ble_err_cmd_disallow:20,ble_err_coarse_clk_adj:20,ble_err_conn_accept_tmo:20,ble_err_conn_establish:20,ble_err_conn_limit:20,ble_err_conn_parm:20,ble_err_conn_rej_bd_addr:20,ble_err_conn_rej_channel:20,ble_err_conn_rej_resourc:20,ble_err_conn_rej_secur:20,ble_err_conn_spvn_tmo:20,ble_err_conn_term_loc:20,ble_err_conn_term_m:20,ble_err_ctlr_busi:20,ble_err_diff_trans_col:20,ble_err_dir_adv_tmo:20,ble_err_encryption_mod:20,ble_err_host_busy_pair:20,ble_err_hw_fail:20,ble_err_inq_rsp_too_big:20,ble_err_instant_pass:20,ble_err_insufficient_sec:20,ble_err_inv_hci_cmd_parm:20,ble_err_inv_lmp_ll_parm:20,ble_err_link_key_chang:20,ble_err_lmp_collis:20,ble_err_lmp_ll_rsp_tmo:20,ble_err_lmp_pdu:20,ble_err_mac_conn_fail:20,ble_err_mem_capac:20,ble_err_no_pair:20,ble_err_no_role_chang:20,ble_err_page_tmo:20,ble_err_parm_out_of_rang:20,ble_err_pending_role_sw:20,ble_err_pinkey_miss:20,ble_err_qos_parm:20,ble_err_qos_reject:20,ble_err_rd_conn_term_pwroff:20,ble_err_rd_conn_term_resrc:20,ble_err_rem_user_conn_term:20,ble_err_repeated_attempt:20,ble_err_reserved_slot:20,ble_err_role_sw_fail:20,ble_err_sco_air_mod:20,ble_err_sco_itvl:20,ble_err_sco_offset:20,ble_err_sec_simple_pair:20,ble_err_synch_conn_limit:20,ble_err_unit_key_pair:20,ble_err_unk_conn_id:20,ble_err_unk_lmp:20,ble_err_unknown_hci_cmd:20,ble_err_unspecifi:20,ble_err_unsupp_lmp_ll_parm:20,ble_err_unsupp_qo:20,ble_err_unsupp_rem_featur:20,ble_err_unsupport:20,ble_ga:251,ble_gap:[10,76],ble_gap_adv_param:[252,253],ble_gap_adv_set_field:247,ble_gap_adv_start:[247,250,252,253],ble_gap_chr_uuid16_appear:[249,251],ble_gap_chr_uuid16_device_nam:[249,251],ble_gap_chr_uuid16_periph_pref_conn_param:249,ble_gap_chr_uuid16_periph_priv_flag:249,ble_gap_chr_uuid16_reconnect_addr:249,ble_gap_conn_desc:250,ble_gap_conn_find:250,ble_gap_conn_fn:247,ble_gap_conn_mode_und:[247,250],ble_gap_disc_mode_gen:[247,250],ble_gap_ev:250,ble_gap_event_conn_upd:250,ble_gap_event_connect:250,ble_gap_event_disconnect:250,ble_gap_event_enc_chang:250,ble_gap_event_fn:[252,253],ble_gap_event_subscrib:250,ble_gap_svc_uuid16:[249,251],ble_gap_upd:73,ble_gap_update_param:10,ble_gatt:76,ble_gatt_access_ctxt:[249,272,274],ble_gatt_access_op_read_chr:[249,272,274],ble_gatt_access_op_write_chr:[249,272,274],ble_gatt_chr_def:[249,251,272],ble_gatt_chr_f_notifi:272,ble_gatt_chr_f_read:[249,251,272],ble_gatt_chr_f_read_enc:272,ble_gatt_chr_f_writ:272,ble_gatt_chr_f_write_enc:272,ble_gatt_register_fn:251,ble_gatt_svc_def:[249,251,272],ble_gatt_svc_type_primari:[249,251,272],ble_gattc:76,ble_gattc_proc_pool:73,ble_gatts_chr_upd:[272,274],ble_gatts_clt_cfg_pool:73,ble_gatts_find_chr:[272,274],ble_gatts_register_svc:251,ble_h:[10,14,15,16,17,19,20,23,26,76,252,253,274],ble_hci_ram_evt_hi_pool:73,ble_hci_ram_evt_lo_pool:73,ble_hci_uart_baud:245,ble_hs_:251,ble_hs_adv_field:[247,252],ble_hs_att_err:20,ble_hs_cfg:[26,252,253],ble_hs_conn_pool:73,ble_hs_eagain:20,ble_hs_ealreadi:20,ble_hs_eapp:20,ble_hs_eauthen:20,ble_hs_eauthor:20,ble_hs_ebaddata:20,ble_hs_ebusi:20,ble_hs_econtrol:20,ble_hs_edon:20,ble_hs_eencrypt:20,ble_hs_eencrypt_key_sz:20,ble_hs_einv:[10,20],ble_hs_emsgs:20,ble_hs_eno:20,ble_hs_enoaddr:20,ble_hs_enomem:20,ble_hs_enomem_evt:20,ble_hs_enotconn:20,ble_hs_enotsup:20,ble_hs_enotsync:20,ble_hs_eo:20,ble_hs_ereject:20,ble_hs_erol:20,ble_hs_err_sm_peer_bas:20,ble_hs_err_sm_us_bas:20,ble_hs_estore_cap:20,ble_hs_estore_fail:20,ble_hs_etimeout:20,ble_hs_etimeout_hci:20,ble_hs_eunknown:20,ble_hs_ev_tx_notif:87,ble_hs_event_tx_notifi:87,ble_hs_forev:[250,252,253],ble_hs_hci_err:20,ble_hs_hci_ev_pool:73,ble_hs_id:23,ble_hs_id_gen_rnd:[23,252,253],ble_hs_id_set_rnd:[19,23,252,253],ble_hs_l2c_err:20,ble_hs_reset_fn:26,ble_hs_sm_peer_err:20,ble_hs_sm_us_err:20,ble_hs_sync_fn:26,ble_ibeacon_set_adv_data:253,ble_l2cap:76,ble_l2cap_chan_pool:73,ble_l2cap_sig_err_cmd_not_understood:20,ble_l2cap_sig_err_invalid_cid:20,ble_l2cap_sig_err_mtu_exceed:20,ble_l2cap_sig_proc_pool:73,ble_ll:[76,77,273],ble_ll_cfg_feat_le_encrypt:222,ble_ll_conn:76,ble_ll_prio:225,ble_lp_clock:24,ble_max_connect:[275,277],ble_mesh_dev_uuid:32,ble_mesh_pb_gatt:32,ble_own:[252,253],ble_own_addr_random:[252,253],ble_phi:76,ble_prph:273,ble_public_dev_addr:23,ble_rigado:47,ble_role_broadcast:277,ble_role_peripher:277,ble_sm_err_alreadi:20,ble_sm_err_authreq:20,ble_sm_err_cmd_not_supp:20,ble_sm_err_confirm_mismatch:20,ble_sm_err_cross_tran:20,ble_sm_err_dhkei:20,ble_sm_err_enc_key_sz:20,ble_sm_err_inv:20,ble_sm_err_numcmp:20,ble_sm_err_oob:20,ble_sm_err_pair_not_supp:20,ble_sm_err_passkei:20,ble_sm_err_rep:20,ble_sm_err_unspecifi:20,ble_sm_legaci:222,ble_store_config:10,ble_tgt:[244,252,253],ble_uu:251,ble_uuid128_init:[272,274],ble_uuid128_t:[272,274],ble_uuid16:[249,251],ble_uuid16_declar:[272,274],ble_uuid:274,ble_uuid_128_to_16:249,ble_uuid_u16:[272,274],ble_xtal_settle_tim:24,bleadc:274,blecent:[7,61],blehci:[7,61],blehciproj:245,blehostd:66,blemesh:[21,32],blenano:53,bleprph:[7,10,21,61,66,222,239,246,247,248,249,250,251,272,273,274,275,288],bleprph_advertis:[247,250],bleprph_appear:249,bleprph_device_nam:[247,249],bleprph_log:[247,250,272,274],bleprph_oic:[7,61,279],bleprph_oic_sensor:275,bleprph_on_connect:247,bleprph_pref_conn_param:249,bleprph_print_conn_desc:250,bleprph_privacy_flag:249,bleprph_reconnect_addr:249,blesplit:[7,61],bletest:[7,61],bletini:[7,21,37,38,45,46,50,61,71,236,245,248],bletiny_chr_pool:73,bletiny_dsc_pool:73,bletiny_svc_pool:73,bletoh:89,bleuart:[7,61],bleuartx000:10,blink:[1,7,61,93,99,238,240,241,254,255,257,258,259,260,261,273,274,290],blink_nord:288,blink_nrf:273,blink_primo:273,blink_rigado:47,blinki:[1,10,12,34,43,44,48,55,61,93,241,244,245,262,266,273,274,282,283,284,286,287,288,290],blinky_callout:256,blinky_primo:273,blinky_sim:61,blksize:90,blksz:[73,284],blob:[20,183],block:[20,29,73,86,87,89,90,98,134,140,143,173,174,175,176,177,187,190,192,193,238,273,284],block_addr:90,block_siz:90,blocks_siz:90,blue:261,bluetooth:[1,9,20,22,23,24,27,29,32,89,222,239,246,247,252,253,255,273,274,290],bmd300eval:[48,53,259,274],bmd:[259,274],bno055:[207,208,275,277,278],bno055_0:[207,276,278],bno055_acc_cfg_bw_125hz:278,bno055_acc_cfg_rng_16g:278,bno055_acc_unit_ms2:278,bno055_angrate_unit_dp:278,bno055_cfg:[208,278],bno055_cli:[276,277],bno055_config:[208,278],bno055_default_cfg:208,bno055_do_format_android:278,bno055_err:208,bno055_euler_unit_deg:278,bno055_get_chip_id:208,bno055_id:208,bno055_info:208,bno055_init:[207,208],bno055_ofb:[207,275,276,277],bno055_opr_mode_ndof:278,bno055_pwr_mode_norm:278,bno055_sensor_get_config:208,bno055_sensor_read:208,bno055_shel:276,bno055_shell_init:276,bno055_stat_sect:208,bno055_temp_unit_degc:278,board:[1,2,4,5,7,8,10,12,23,24,30,39,42,47,53,55,57,58,59,61,92,93,134,181,182,187,208,209,213,222,224,225,235,236,238,239,240,241,245,248,252,253,255,256,272,273,278,279,280,282,285,287,288,290],bodi:[128,278],bold:[235,242],bond:[22,27,29,30,248],bondabl:27,bone:[84,246,252,253,290],bookkeep:140,bool:[90,199],boot:[7,43,61,93,100,101,130,195,235,236,239,245,254,257,258,259,260,261,262,266,273,274,276,280,283,284,286],boot_boot_serial_test:7,boot_bootutil:222,boot_build_statu:128,boot_build_status_on:128,boot_clear_statu:128,boot_copy_area:128,boot_copy_imag:128,boot_erase_area:128,boot_fill_slot:128,boot_find_image_area_idx:128,boot_find_image_part:128,boot_find_image_slot:128,boot_go:128,boot_img_mag:128,boot_init_flash:128,boot_load:93,boot_mag:128,boot_move_area:128,boot_nrf:273,boot_olimex:260,boot_primo:273,boot_read_image_head:128,boot_read_statu:128,boot_select_image_slot:128,boot_seri:[7,10,130],boot_serial_setup:7,boot_slot_addr:128,boot_slot_to_area_idx:128,boot_swap_area:128,boot_test:7,boot_vect_delete_main:128,boot_vect_delete_test:128,boot_vect_read_main:128,boot_vect_read_on:128,boot_vect_read_test:128,boot_write_statu:128,bootabl:[222,239,283,286],bootload:[1,12,43,47,93,96,101,130,191,195,235,239,241,255,256,273,274,275,277,285],bootutil:[7,10,101,128,130,254,257,258,259,260,261,262,266,276,283,284,286],bootutil_misc:[7,254,257,258,259,261,276,283,284,286],both:[6,9,11,14,20,22,27,29,39,55,57,58,59,62,89,91,93,98,128,129,131,134,173,179,187,190,199,205,222,224,225,234,254,256,262,265,266,269,274],bottl:[58,81],bottom:[12,93,97,99,248],bound:[89,93,152],boundari:[89,90,93],box:[12,288],bps:193,branch:[1,4,7,10,11,55,56,57,59,60,79,80,82,83,128,242,254,266,267,268],branchnam:10,brand:261,bread:274,breadboard:274,breakdown:222,breakout:8,breakpoint:[254,258],breviti:[222,235,284],brew:[3,4,7,11,36,55,58,60,81,83],brick:128,bridg:179,brief:[10,19,186,252,253,262],briefli:93,bring:[12,93,181,276,279,282],broad:290,broadca:[252,253],broadcast:[10,14,27,31,247,252,253],brows:[248,257,267],browser:242,bsd:101,bsp:[1,7,10,24,32,34,37,38,42,43,45,47,50,55,61,62,92,129,134,173,174,176,177,181,185,186,192,193,206,207,208,209,211,222,225,235,238,244,245,248,254,256,257,258,259,260,261,262,266,273,274,275,276,277,278,280,283,284,286,287,288,290],bsp_arduino_zero:254,bsp_arduino_zero_pro:[254,266],bsp_flash_dev:174,bsp_timer:192,bsppackag:93,bss:[10,48,93,222],bssnz_t:[272,273,274],bt_mesh_provis:10,btattach:245,btmesh_shel:10,btshell:[10,29],buad:66,buf:[129,135,153,154,155,156,160,161,163,164,168,171,199],buf_len:89,buffer:[10,20,89,90,92,96,97,130,134,156,163,169,171,179,187,190,199,205,224,253,274],buffer_len:274,buffer_size_down:287,bug:[4,7,11,160,161,254,258,280,287,288],bui:274,build:[1,2,3,4,5,6,11,31,32,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,92,93,94,96,128,134,181,187,198,205,209,222,223,224,225,231,238,239,246,247,248,255,265,272,273,282,285,290],build_arduino_blinki:12,build_arduino_boot:12,build_numb:197,build_profil:[1,32,37,38,43,50,53,61,93,222,235,244,245,248,254,257,258,259,260,261,262,266,273,274,275,276,277,280,283,284,286],buildabl:7,builder:242,built:[1,4,7,8,9,10,21,33,34,38,39,42,43,55,57,58,59,60,61,63,81,82,83,89,128,190,205,222,231,235,236,242,244,245,248,252,253,254,255,256,257,258,259,260,261,262,265,266,272,273,274,275,276,280,283,284,286],bunch:273,bundl:[10,55,101,152],burn:[10,252,253],bus:[2,187],buse:[134,181],busi:[20,90,91,241,273],button1_pin:238,button:[2,4,10,12,98,238,254,257],bytes_read:[153,160,163,168,171],bytyp:211,c_ev:84,c_evq:84,c_tick:84,cabl:[236,238,239,241,245,254,255,257,258,259,260,262,266,274,280,282,283,285,286],cach:[58,81,134,173,175,181],cache_large_file_test:265,calcul:[20,29,48,90,100,128,140],calendar:9,call:[6,7,9,11,19,21,23,26,36,61,84,85,86,87,88,89,90,91,92,93,97,98,99,100,101,128,129,130,131,132,134,135,138,140,141,142,143,145,146,150,158,161,165,168,171,172,175,176,178,179,180,183,186,187,189,190,191,192,193,194,196,199,205,206,207,208,210,211,212,214,216,217,220,223,225,227,228,229,230,231,232,233,236,238,241,243,244,247,248,249,250,251,252,253,254,256,262,265,267,273,274,275,276,280,285],callback:[20,26,86,87,89,90,130,140,145,150,186,190,192,193,206,207,208,210,212,225,238,247,249,251,252,253,256,273,280],caller:[89,90,130,140,192,198,199,215,219],callout:[87,92,97,211,256,280],callout_l:238,callout_reset:129,came:245,can:[1,2,3,4,5,6,7,8,9,11,12,19,20,21,22,23,24,27,30,31,33,34,35,42,45,50,55,57,58,59,60,61,62,63,64,66,72,76,80,81,82,83,84,85,86,87,89,90,91,92,93,94,96,97,98,99,101,128,129,130,131,134,135,136,137,140,141,143,145,146,150,151,152,161,165,166,169,171,173,174,176,179,180,181,186,188,189,190,192,193,194,195,199,205,206,207,208,209,210,211,214,215,219,220,221,222,223,224,225,227,228,230,231,234,235,236,238,239,240,241,242,244,245,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,272,273,274,275,276,277,278,280,282,283,284,286,287,288,290],cancel:[20,27,84],candid:267,cannot:[4,19,20,71,86,88,91,92,98,128,129,151,169,179,182,190,192,225,236,254,266,267,268,269],cap:10,capabl:[10,20,22,27,29,95,130,134,205,222,241,256,287],capac:20,captian:81,captur:179,carbon:272,card:[136,151],care:[10,89,92,99,163,171,252,253,267,268,272],carri:89,cascad:[1,61],cast:[89,90,249],cat:[80,273,274],catastroph:26,categor:93,categori:[10,96],caus:[90,92,98,153,160,161,166,169,179,187,191,224,226,239,241,274,287],caveat:[10,128],cb_arg:[150,192,247,251,252,253],cb_func:192,cbmem:[7,205,226],cbmem_buf:205,cbmem_entry_hdr:226,cbmem_init:205,cbmem_read:226,cbmem_test_case_1_walk:226,cbor:[132,133],cborattr:7,cccd:27,ccm:22,cdc:257,cell:22,cellar:[4,6,11,36,58,60,81,83],central:[10,20,30,246,247,248,250],certain:[1,21,89,90,92,93,134,245,268],certainli:[10,274],cess_op_:249,cfg:[70,171,172,187,190,192,193,207,208,258],cflag:[1,50,61,93],cgi:101,ch_commit:129,ch_export:129,ch_get:129,ch_name:129,ch_set:129,chain:[89,90,199],challeng:263,chanc:[92,99],chang:[1,4,6,7,10,11,19,20,21,22,24,28,30,46,49,50,52,57,61,62,80,89,93,94,128,179,186,190,206,207,214,222,224,225,235,236,238,240,241,242,245,248,250,252,253,254,258,272,273,274,275,276,277,280,282,287,288],channel:[10,20,21,29,134,274],channel_map:27,chapter:[2,21,96,132],charact:[130,139,156,159,173,179,193,197,198,199,200,201,202,203,214,219,225,251,266,280,287],character:24,characteri:[249,251],characterist:[9,16,17,21,27,28,128,248,251,272,274],check:[4,6,8,10,11,20,22,55,56,79,84,87,90,99,129,179,199,208,222,224,225,235,239,244,245,246,257,260,262,265,268,273,276,278,285],checkbox:59,checkin:[77,97,99],checkout:[10,80,82,255],checksum:[140,142],child:[90,154,155,156,161,164,179],children:179,chip:[4,96,134,135,181,186,190,191,206,208,254,255,257,258,261,266,267,273,276],chip_id:276,chipset:[134,181,254,266],choic:[2,10,173,245,276],choos:[6,7,10,89,99,101,222,223,236,241,244,247,256,257,259,272,274],chose:223,chosen:[89,93,128,151,179,274],chr:[249,272,274],chr_access:249,chr_val_handl:[272,274],chunk:[10,89],ci40:53,cid:248,circuit:187,circular:[10,205,224,225],circularli:268,clang:6,clarif:10,clarifi:134,clariti:136,classif:20,clean:[1,11,33,39,50,57,58,59,63,81,159,177,241,262],cleanli:225,clear:[72,84,89,99,128,179],clearli:[8,20],cli:130,click:[2,4,10,12,242,248,252,253,254,257,258,260,286],client:[10,12,17,18,20,21,27,31,152,180,209,252,272],clk:190,clobber:166,clock:[20,25,86,191,254,258,276],clock_freq:86,clone:[10,11,45,50,55,58,81],close:[2,59,134,152,153,154,155,156,157,160,161,163,164,168,169,170,171,172,193,207,254,257,258,260,261,278],closest:192,clue:10,cmake:1,cmd:[55,61,93,184,273,276],cmd_len:273,cmd_queue:130,cmd_read_co2:273,cmp:273,cmsi:[2,7,10,48,254,257,258,259,260,261,280],cmsis_nvic:[257,258,259,260,261,280],cn4:235,cnt:[73,130,176,177,190,284],co2:[272,273],co2_evq:272,co2_read_ev:272,co2_sns_str:272,co2_sns_typ:272,co2_sns_val:272,co2_stack:272,co2_stack_s:272,co2_task:272,co2_task_handl:272,co2_task_prio:272,coap:[133,209,212,275,279],coars:20,coc:27,code:[1,5,7,9,11,13,18,21,24,26,27,29,55,85,89,90,92,95,96,97,100,101,128,130,132,134,136,139,152,153,154,155,156,157,159,160,161,163,164,166,168,169,170,171,172,176,177,178,179,180,181,182,186,187,190,192,193,195,205,207,208,209,222,225,226,227,228,230,231,232,236,238,241,246,247,249,250,251,254,255,256,262,264,266,267,273,274,275,278,279,280,282,284,285,290],codebas:[254,266],coded_interval_max:27,coded_interval_min:27,coded_lat:27,coded_max_conn_event_len:27,coded_min_conn_event_len:27,coded_scan_interv:27,coded_scan_window:27,coded_timeout:27,codepag:151,coding_standard:7,coexist:128,collect:[1,7,43,55,61,89,90,132,140,180,199,222,235,267],collis:20,colon:66,color:240,column:19,com11:8,com1:66,com3:[8,256,266,276,283,286],com6:8,com:[8,10,11,12,33,55,57,58,59,63,80,81,82,101,183,235,245,256,266,267,269,276,283,284,286],combin:[1,20,22,26,43,61,92,93,187,244,252,253,267,268],combo:222,come:[3,21,30,55,61,93,101,130,134,205,254,260,261,266,273,274,286],comm:[235,255],comma:[51,66],comman:220,command:[1,2,4,7,8,11,20,30,34,35,36,37,38,40,41,42,44,45,46,47,48,49,51,52,53,54,57,58,59,60,61,67,68,70,71,72,75,76,78,80,81,82,83,93,96,128,131,133,136,138,187,195,196,205,209,215,219,220,221,222,223,224,225,231,235,237,239,240,241,244,252,253,254,256,257,258,259,260,261,262,263,265,266,267,269,270,274,275,276,277,278,280,283,286,287,288],comment:[3,10,93,234,290],commerci:273,commit:[10,11],common:[55,61,87,89,96,98,99,134,135,181,186,208,209,222,251,258],commonli:[98,190,252],commun:[9,10,21,26,27,31,66,78,130,132,136,187,190,206,207,208,235,238,239,240,241,245,247,250,255,262,266,267,273,274,276,280,283,284,285,286,290],compani:29,compar:[10,20,89,160,241,257,258,259,262,270,274],comparison:[20,22,89,100],compat:[4,10,21,55,128,130,135,214,215,222,254,262,266,276,278,280,287],compens:100,compil:[1,4,5,6,7,8,11,20,34,47,53,55,58,61,81,89,93,96,101,134,214,223,225,231,234,235,236,238,244,254,257,258,259,260,261,262,266,273,274,275,276,280,283,284,286],complaint:21,complementari:31,complet:[9,12,20,22,27,29,30,33,55,59,63,93,95,96,99,128,130,140,154,155,156,161,164,179,181,187,190,193,205,222,229,233,234,238,241,245,247,252,253,258,267,274,275,278,279,280,283,284,286],completion_cb:130,complex:[9,31,92,93,134,181,241,243],compli:21,complianc:[273,274],compliant:21,complic:[55,92,222],compon:[1,7,12,18,39,48,55,57,58,59,61,85,93,96,129,134,181,187,190,222,223,236,238,239,245,252,253,255,266,273,282,285],compos:[39,57,58,59,234],composit:199,comprehens:234,compress:[55,81,173,252],compris:[7,128,173,174],comput:[3,4,6,8,10,12,31,56,58,59,79,81,130,142,151,239,241,244,245,254,255,257,258,259,260,261,275,277,282,283,285,286],concept:[12,22,89,92,160,214,225,239,241,243,244,246,254,255,266,282,285],conceptu:10,concern:[3,89,179],concis:132,conclud:[252,253,274],concurr:[1,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,84,88,246,247],condit:[4,20,128,179,187,207,214,224,226,265,273,274],condition:[55,207,224,225,276],conduct:[128,132],conf:262,conf_export_tgt:129,conf_fcb_dst:129,conf_fcb_src:129,conf_file_dst:129,conf_file_src:129,conf_get_valu:129,conf_handl:129,conf_init:232,conf_int8:129,conf_load:129,conf_regist:[129,226],conf_sav:129,conf_save_on:129,conf_set_valu:129,conf_str_from_valu:129,conf_value_set:129,confidenti:22,config:[1,7,10,32,50,61,62,64,78,80,81,82,131,135,151,153,157,160,163,170,192,224,225,232,236,244,273,274,276],config_:207,config__sensor:207,config_bno055_sensor:[207,278],config_cli:129,config_fcb:[129,224],config_fcb_flash_area:[224,225],config_lis2dh12_sensor:207,config_newtmgr:[50,236],config_nff:[129,152,224],config_pkg_init:225,config_test_al:232,config_test_handl:226,config_test_insert:[226,227],configur:[6,7,9,10,19,20,25,26,31,32,50,55,57,58,59,61,62,86,90,92,93,94,96,128,130,132,134,152,173,175,179,181,182,186,187,190,192,193,194,209,210,212,222,238,241,244,247,251,254,257,260,261,262,263,269,274,276,279,280,282,284,287,288],configuraton:151,confirm:[8,10,20,27,71,128,222,239,262,283,286],confirmbe9699809a049:71,conflict:[61,224,268],confluenc:10,confus:[267,274],congratul:[7,235,248,272,273,274],conjunct:[31,210],conn:[10,27,28,30,64,65,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,239,250,252,253,283,284,286],conn_handl:[20,248,249,250,272,274],conn_interval_max:29,conn_interval_min:29,conn_itvl:[30,248],conn_lat:[30,248],conn_mod:250,conn_profil:[65,66,67,68,69,70,71,72,73,74,75,76,77],conn_upd:250,connect:[4,7,8,9,12,15,20,21,22,24,26,28,29,31,38,42,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,96,130,132,133,134,181,186,187,190,191,222,235,238,246,247,248,249,250,252,253,255,272,273,282,285],connect_don:266,connectable_mod:247,connection_profil:71,connectionless:27,connector:[4,236,245,257,260,262,286],connextra:10,connintervalmax:29,connintervalmin:29,connstr:[10,66,239,283,284,286],conntyp:10,consecut:97,consequ:[20,128,222],conserv:[9,89,96],consid:[21,62,89,92,98,142,187,226,251,267],consider:226,consist:[1,21,31,61,98,99,128,129,132,134,162,179,190,222,224,225,231,251],consol:[1,7,8,10,12,26,55,61,96,101,129,137,154,155,156,161,164,171,193,205,218,225,238,244,245,248,252,253,255,265,273,274,284],console_append_char_cb:130,console_blocking_mod:130,console_compat:130,console_echo:130,console_handle_char:130,console_init:130,console_input:130,console_is_init:130,console_is_midlin:130,console_max_input_len:130,console_non_blocking_mod:130,console_out:130,console_pkg_init:225,console_printf:[10,20,26,130,153,154,155,156,160,161,163,164,168,171,226,272,273,274,280],console_prompt:273,console_read:130,console_rtt:[130,280,287],console_rx_cb:130,console_set_completion_cb:130,console_set_queu:130,console_tick:[130,273],console_uart:[130,280,287],console_uart_baud:130,console_uart_dev:130,console_uart_flow_control:130,console_uart_tx_buf_s:130,console_writ:[130,226],consolid:179,consortium:132,constant:[10,190],constantli:[247,266,274,290],constitu:[43,179],constrain:[9,55,133,263],constraint:254,construct:[10,11,89,98],consult:[152,181],consum:[87,98,193],consumpt:22,contact:[94,95,235],contain:[1,3,7,10,11,29,31,34,50,55,61,84,89,90,93,95,96,98,99,100,128,130,132,134,137,140,153,156,157,160,163,166,167,168,170,176,179,182,186,193,195,197,198,199,210,218,222,223,225,226,229,231,234,244,245,247,249,251,252,253,262,265,267,268,276,290],content:[10,12,49,61,80,89,93,128,140,141,142,154,155,156,161,164,171,179,192,199,222,232,235,241,247,251,252,253,260,262,265,268,269,276,278],context:[10,55,77,85,86,87,92,99,130,134,139,190,192,214,216,225,236,238,250,256],contigu:[89,128,140,179],continu:[6,10,93,98,129,179,214,222,236,238,240,241,242,245,254,255,260,266,274,277,278,279,280,282,284,285,287],contrast:225,contribut:[13,22,57,58,59,80,81,82,243,265,282],contributor:[181,273,274],control:[8,9,10,18,19,20,21,22,23,25,26,29,31,55,66,96,130,134,140,160,173,181,183,190,193,205,208,214,225,244,258,260,267,268,273,274,279],contruct:248,convei:89,conveni:[12,20,89,129,171,179,198,226],convent:[262,265,276,280],convers:[101,134,249],convert:[1,8,20,71,84,86,89,100,129,134,174,176,177,179,190,199,225,249,251,273,274],cooperat:10,coordin:[275,277],copi:[1,4,45,49,50,62,80,82,89,94,95,128,140,179,199,207,222,223,239,247,250,254,273,274,278,280,287,288],copy_don:128,copyright:[4,254,260,273,274,280,287,288],core:[1,6,7,12,21,29,32,37,38,43,48,50,51,53,55,61,62,71,88,93,95,97,129,132,134,152,181,183,222,223,235,241,244,245,246,247,248,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,275,276,277,280,282,283,284,285,286,287,288,290],core_cminstr:258,core_cmx:10,core_o:[10,130],core_path:61,coreconvert:71,coredownload:71,coredump:[7,182],coredump_flash_area:225,coreeras:71,corelist:71,corner:260,corp:[2,254],correct:[1,2,4,41,90,93,100,128,173,222,225,241,245,258,259,260,262,265,274,276],correctli:[2,10,89,240,245,254,258,265,274,275],correspo:251,correspond:[12,20,86,89,90,93,128,162,175,179,180,205,206,247,249,252,253,268,274],corrupt:[90,167,179],corrupt_block_test:265,corrupt_scratch_test:265,cortex:[4,101,257,259,262,266,274,280],cortex_m0:61,cortex_m4:[61,93,257,258,259,260,261,262,280],cortex_m:254,cost:9,could:[10,20,89,98,179,197,249,273],couldn:[226,247,273],count:[10,55,81,89,98,99,128,129,179],counter:[85,89,223,262],countri:21,coupl:[1,10,260,273,274],cours:[10,272],cover:[8,61,134,179,225,234,241,251],cpha:190,cpol:190,cpptool:12,cpu:[10,85,93,95,134,181,182,189,241,254,258],cputim:[10,24,86,276,280],cputime_geq:86,cputime_gt:86,cputime_leq:86,cputime_lt:86,crank:274,crash:[64,78,80,81,82,97,128,131,191,193,236],crash_test:[7,131,236],crash_test_newtmgr:236,crc16:179,crc:[7,130,136,273],creat:[1,2,3,4,5,6,8,10,11,12,22,27,32,34,39,41,43,44,45,46,47,50,55,57,58,59,61,62,66,71,80,81,82,87,90,91,92,95,97,98,99,101,130,134,143,157,159,160,161,166,169,170,172,173,176,179,205,206,208,209,211,212,216,222,223,224,225,231,233,238,240,241,246,251,255,256,267,269,272,278,279,282,285,290],create_arduino_blinki:12,create_mbuf_pool:89,create_path:159,creation:[47,134,235,262,274],creator:[206,207,208,209,211,275,276,278,280],credenti:269,criteria:20,critic:3,cross:[5,6,7,9,96],crt0:48,crti:48,crtn:48,crw:8,crypto:[7,10,254,257,259,261,266,283,284,286],crypto_mbedtl:222,cryptograph:[22,128],cryptographi:22,crystal:25,csrk:27,css:242,cssv6:29,csw:[77,273,283,286],ctlr_name:66,ctlr_path:66,ctrl:[12,244,273,276,287],ctxt:[249,250,272,274],cur_ind:250,cur_notifi:250,curi:[248,250],curiou:[3,242],curl:[11,58],curn:[248,250],curr:266,currantlab:[81,82],current:[10,11,24,27,31,39,40,41,44,45,46,50,51,57,58,59,60,71,81,82,83,85,86,89,90,91,92,93,97,98,99,100,128,129,130,134,135,136,137,139,140,151,152,157,158,159,160,170,172,179,186,187,190,192,195,206,214,223,224,226,229,233,235,236,239,241,252,254,255,258,260,262,263,267,268,270,276,280],custom:[10,23,71,90,162,180,182,205,225],cvs:[254,260,280,287,288],cwd:12,cycl:[19,21,31,179],cylind:274,daemon:[2,245],dai:[100,214],dap:[2,254,257,261],darwin10:[254,280,287,288],darwin:6,data:[9,10,14,20,21,27,28,30,31,43,48,64,69,80,81,82,84,86,89,90,92,93,96,99,128,129,130,132,133,141,142,143,144,145,146,150,153,157,159,160,162,163,168,169,170,171,172,175,178,188,190,193,204,207,209,212,213,217,219,222,225,241,249,250,252,253,272,273,274,282,288,290],data_len:273,data_mod:190,data_ord:190,databas:28,databit:193,databuf:[89,280],datagram:217,datalen:27,datasheet:93,date:[11,68,151,262,265,273],datetim:[7,64,78,80,81,82,130,131,133,236,265],datetime_pars:265,daunt:247,daylight:100,dbm:[21,27,29],ddress:25,deactiv:222,deal:[89,92,93,134],deb:[57,60,80,83],debian:[4,6],debug:[1,2,4,5,6,7,10,39,43,47,50,55,57,58,59,62,94,208,209,224,235,239,244,245,254,256,257,258,259,260,261,266,273,274,275,276,277,280,283,284,286,287,288],debug_arduino_blinki:12,debug_arduinoblinki:12,debugg:[5,10,38,39,55,57,58,59,61,191,254,257,258,260,261,262,286,287,288],dec:[48,222],decemb:22,decid:[55,85,96,241,273],decim:[22,187],decis:187,declar:[12,91,99,129,183,192,207,219,228,230,238,265,267,278,280],decod:[214,217],decompress:252,dedic:[87,93,96,214,222,236,238,249,287,288],deep:182,deeper:[89,235,262,274],def:[7,207,224,225,274,280],defaultdevic:82,defin:[1,6,10,19,20,21,24,27,28,29,31,34,42,43,47,50,53,61,84,86,87,89,90,92,97,99,128,129,131,133,134,176,177,182,183,185,186,190,205,206,207,209,210,211,212,213,214,220,222,224,225,226,227,229,231,235,238,241,243,245,247,249,255,262,265,267,268,272,273,274,275,276,279,280,283,285,286,287],defininig:31,defininit:198,definit:[1,12,29,35,37,42,50,61,84,89,90,93,128,214,223,231,245,249,251,267,272,273,274],defint:[89,224],del:27,delai:[26,86,100,192,240,241,262],deleg:222,delet:[1,6,10,12,27,35,39,45,49,50,55,57,58,59,61,62,153,169,173,179,240,263,272,278,280],delimit:50,deliv:[84,151],delta:[55,81,235],demo:272,demonstr:[20,26,89,159,166,171,262,276,280],denot:89,dep:[1,50,55,61,62,93,130,135,136,151,152,180,181,205,207,214,223,225,236,238,244,256,265,273,274,275,280],depend:[1,4,6,8,10,20,22,24,27,39,41,49,50,52,55,57,58,59,62,66,84,89,95,101,128,130,151,152,160,179,186,187,190,200,205,207,214,223,225,226,229,231,233,241,244,254,265,266,267,270,273,274,276,283,285,286],depict:181,deploi:[43,222,256],deploy:31,deprec:225,depth:[4,95],dequeu:[87,238],deriv:[20,179],desc:[176,177,250],descend:[128,169],describ:[1,2,7,10,11,12,24,28,33,63,90,92,93,94,96,99,128,132,140,146,151,173,179,186,188,190,199,204,206,207,208,214,222,224,225,231,235,236,242,244,246,251,252,258,261,262,267,273,274,275,276,278,282],descript:[1,7,10,19,27,28,30,55,61,89,93,94,95,129,136,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,166,167,168,169,170,171,172,176,177,197,198,200,201,202,203,204,205,206,207,210,211,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,235,262,263,265,267,268,273,274,288],descriptor:[16,17,27,28,61,160,161,174,176,177,179,249],design:[21,22,23,55,96,97,100,128,173,179,214,222,233,241,251,265],desir:[86,89,98,192,207,265,270],desktop:10,destin:[4,10,31,89,156,163,166,171,179,187,198,205],detail:[1,10,12,21,22,29,55,92,99,128,129,152,173,187,190,206,207,208,210,211,222,235,236,244,247,249,251,252,253,254,262,267,280,287,288],detect:[20,55,90,140,152,173,176,177,191,217,224,225,245],determin:[20,87,89,90,99,128,140,179,192,214,222,225,234,247,250,267,278],determinist:10,dev:[1,2,3,4,7,8,10,11,12,48,61,66,82,130,134,135,207,208,225,234,235,239,240,244,245,248,254,256,257,258,259,260,261,262,266,267,268,269,273,274,275,276,278,280,283,284,286,290],dev_found:245,develop:[3,5,6,7,8,9,10,13,20,55,59,61,82,89,90,92,94,95,96,99,132,134,209,212,214,225,234,239,241,245,246,249,252,254,255,257,260,261,267,268,272,273,274,279,282,286,287,288,290],devic:[3,4,8,9,14,19,20,21,22,25,28,29,31,32,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,96,128,130,132,133,134,135,136,152,174,181,183,186,187,190,209,210,211,212,222,223,224,225,236,243,244,246,247,248,249,251,252,253,254,256,257,258,259,260,261,262,266,272,274,279,280,283,284,285,286,287,288,290],device_id:183,deviceaddr:23,deviceaddrtyp:23,dflt:199,dhcp:266,dhkei:20,diag:193,diagram:[132,241,258,260],dialog:[12,59,288],dictat:[11,62],did:[10,222],diff:273,differ:[4,6,7,8,11,12,20,24,27,30,45,55,57,80,84,89,91,92,93,94,95,96,99,134,173,181,186,193,207,222,223,224,225,228,236,238,239,241,244,245,256,257,258,260,263,265,266,267,268,270,272,276,278,280,286,288],differenti:[89,267],difficult:[21,95,128,224],dig:[7,246],digit:[22,134,186,274],dioxid:272,dir:[27,136,152,154,155,156,161,162,164],direct:[10,20,27,187,214,223,268],direct_addr:[252,253],directli:[7,11,14,18,36,152,192,193,205,222,225,252,254,263,265,266,275,278],directori:[1,4,6,7,8,10,11,12,34,35,37,41,43,45,50,55,57,59,60,80,82,83,88,93,94,95,129,134,136,154,155,156,159,160,161,164,165,166,167,169,171,172,189,191,231,235,240,244,245,254,255,257,258,259,260,261,265,266,267,268,273,274,275,276,280,282,283,285,286,288,290],dirent:[136,154,155,156,161,162,164],dirnam:[154,155,156,161,164],dirti:235,disabl:[6,10,20,22,24,30,86,130,151,179,186,190,193,205,207,208,214,222,224,225,236,250,263,266,275,276,277,280,287],disable_auto_eras:135,disallow:[20,173],disbl:214,disc_mod:250,discard:[179,266],disciplin:245,disclaim:[7,11,55,244],disconnec:27,disconnect:[27,250],discontigu:128,discov:[10,22,27,28,245],discover:[10,27,29,133,212,247,279],discoverable_mod:247,discoveri:[10,28,132,134,136,245,250,255],discret:[173,174],discuss:[10,89,94,207,222,247,276],disjoint:20,disk:[7,128,140,152,153,167,169,173,174],disk_nam:152,disk_op:136,disk_regist:[136,152],dispatch:[92,225,238],displai:[1,6,10,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,66,69,71,72,73,76,77,80,81,82,134,181,225,245,260,262,273,275,277,282,283,286],displayonli:27,displayyesno:27,dist:[57,80],distanc:[21,223],distinct:22,distinguish:10,distribut:[1,4,6,20,21,27,55,101,128,267,273,274],distro:6,div0:67,dive:89,divid:[18,20,67,129,131,173,174,222],dle:27,dll:[257,259,262,274],dm00063382:235,dma:134,dndebug:50,dnrf52:93,do_task:223,doc:[4,6,7,10,23,33,63,242,254,255,258],docker:[3,7,254,290],dockertest:2,document:[1,4,8,12,14,18,20,23,25,59,62,64,93,97,101,137,151,152,162,180,181,183,222,231,235,239,241,246,249,251,252,253,254,257,259,265,266,267,276,280,283,284,287,288],doe:[7,10,20,22,35,50,61,66,71,87,89,90,92,93,94,99,100,128,130,132,134,140,157,161,169,170,173,174,176,179,187,190,195,205,207,208,210,220,223,224,225,236,238,239,241,244,247,254,257,258,259,261,262,263,269,280,285],doesn:[8,10,20,32,97,128,136,157,169,170,222,226,240,241,244,245,247],doing:[10,88,100,134,241,249,256,273],domain:2,don:[1,10,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,87,89,129,137,140,163,171,235,249,251,252,253,267,273,274],done:[6,7,8,10,23,25,55,81,91,92,93,100,128,130,140,141,160,161,175,194,195,211,227,228,230,235,236,239,241,245,251,252,253,254,257,258,259,262,266,274,280,287,288],dont:287,doorbel:55,dop:152,doubl:[2,199,260],doubli:179,doubt:[10,251],down:[1,12,61,80,82,186,222,236,258,260,286],downgrad:[6,7],download:[1,2,4,7,10,12,29,39,41,42,55,58,59,60,70,71,81,82,83,152,195,242,244,245,254,257,258,259,260,261,265,266,269,273,280,282,283,284,286,287,288],doxygen:[4,7,88,129,254,258],doxygengroup:[88,129],dpidr:261,dpkg:[57,60,80,83],drag:20,drain:24,draw:24,drive:[9,10,61,100,134,187],driver:[7,55,135,136,152,181,185,186,188,190,192,193,207,209,211,223,244,254,257,258,259,260,261,266,276,280,286,287],drop:[10,12,26,179,193,258,260,286],dsc:249,dsimmon:273,dsize:89,dst:[10,45,50,70,89,171,184,198],dsym:[55,61],dtest:50,due:[10,20,90,128,135,140,151,191,254,258,260],dummi:179,dump:[10,129,287],dumpreg:276,duplex:21,duplic:[27,89],durat:[10,19,27,30,100,249,276],duration_m:[252,253],dure:[10,20,22,71,85,93,97,99,128,130,161,179,196,207,222,225,231,241,244,249,256,275,278],duti:[21,31],dwarf:61,dylib:4,dynam:[88,90],e407:[260,286],e407_:260,e407_devboard:[53,260,286],e407_devboard_download:260,e407_sch:286,e761d2af:[272,274],e_gatt:251,eabi:[4,7,12,93,101,254,280,287,288],each:[1,2,10,11,12,19,20,21,22,23,28,32,43,48,49,50,61,62,64,66,73,77,87,89,90,92,93,98,100,128,130,134,154,155,156,161,162,164,166,173,174,175,179,181,186,205,206,208,209,210,211,212,214,218,219,222,223,225,236,238,241,249,250,251,252,253,254,265,267,276,278,279,280,290],ead:152,eager:3,earlier:[10,30,57,58,59,80,81,82,169,249,252,253,272,273,274,287],eas:135,easi:[1,2,3,8,9,134,181,187,223,224,226,242,257,274,275],easier:[10,24,93,273],easiest:273,easili:[9,171,209,225,280],east:100,eavesdropp:19,ecdsa256:128,ecdsa:128,echo:[10,12,60,64,78,80,81,82,83,130,131,133,236,266,273,283,284,286],echocommand:12,eclips:12,ectabl:[252,253],edbg:[2,254],eddyston:[27,255],eddystone_url:[27,29],edg:186,edit:[7,94,151,235,240,262,263,267,278],editign:242,editor:[59,61,235,240,258],ediv:27,edr:[20,29,245],edu:[257,287],ee02:262,eeirili:272,eeprom:135,effect:[98,100,129,152,173,174],effici:[10,21,31,89,90,179,254],eid:252,eight:[132,168],einval:86,eir:29,eir_len:245,either:[1,4,6,10,11,21,27,29,30,57,59,61,80,84,85,87,89,90,99,129,130,131,137,140,166,186,187,190,191,222,225,226,229,230,236,252,253,262,273,274,282],elaps:[20,86,100],electron:290,element:[39,53,55,57,58,59,89,90,99,128,129,139,140,141,142,145,147,148,179,199,214,241],elev:91,elf:[7,12,34,38,48,55,61,71,222,235,236,244,245,248,254,256,257,258,259,260,261,262,265,266,273,274,276,280,283,284,286,287,288],elfifi:71,elicit:222,els:[23,85,97,128,154,155,156,161,164,179,208,222,272,273,274,287],elsewher:[246,249,267],emac:273,email:[3,234,290],emb:135,embed:[1,3,4,10,12,39,55,57,58,59,101,128,173,190,234,235,254,260,280,287,288],emit:[55,61],emploi:21,empti:[50,89,99,140,167,179,225,229,243,251,265],emptiv:9,emul:[262,266,278],enabl:[1,8,9,10,24,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,62,73,76,77,78,87,93,129,130,131,132,134,135,151,181,186,190,194,205,207,208,209,211,212,213,219,224,225,235,238,239,244,247,250,255,264,271,272,273,274,278,282,285,287,288,290],enc:[198,200,201,203],enc_chang:250,encapsul:21,encod:[7,51,130,132,133,200,201,202,203,212,214,218,262,265,275,279,280],encoding_cborattr:222,encoding_tinycbor:222,encompass:[14,20],encount:[7,10,20,57,89,150,179,241],encourag:134,encrypt:[20,22,27,30,173,248,250],encrypt_connect:20,end:[9,20,28,30,55,89,128,140,158,168,170,179,187,204,225,233,243,244,262,273],endian:[23,61,89,128,190,262],endif:[219,223,225,232,233,256,265,273,274,280],energi:[9,21,22,89,255,290],english:128,enjoi:274,enough:[55,89,96,128,156,195,198,273],enqueu:[89,192],ensur:[11,12,21,59,89,93,97,100,101,156,181,187,222,223,224,225,236,238,239,241,245,249,255,266,267,268,276,279,282,285],entail:222,enter:[12,22,47,93,214,220,221,223,241,254,256,258,276,280],entir:[2,10,89,90,93,128,173,174,179,241,251,273],entireti:171,entiti:[43,246],entri:[10,20,22,72,129,140,141,142,145,148,150,154,155,156,161,164,171,173,174,179,204,208,214,219,222,251,277],enumer:[128,183,191,206],environ:[3,4,9,10,12,55,58,59,61,82,96,101,134,190,233,245,284],eof:[57,80],ephemer:252,epoch:100,equal:[10,29,72,89,179,205,224,225,226],equat:29,equival:[46,61,135,160,181,274,290],eras:[10,71,128,135,136,140,149,173,174,177,179,184,254,258,259,260,262,274],erase_sector:260,err:[97,159,204,208,217,218,223,272,274],error:[1,2,4,6,7,20,21,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,86,89,91,92,93,97,98,135,136,153,154,155,156,157,159,160,161,163,164,166,167,168,169,170,171,172,173,176,177,178,182,186,187,190,192,193,208,222,225,247,249,250,251,254,257,258,260,261,262,265,266,268,272,273,274,275,278,280,286],error_rsp_rx:[76,236],error_rsp_tx:[76,236],error_stat:223,escap:[266,280,287],especi:[10,100],essenti:[43,61,225,241],establish:[20,27,78,236,238,247,248,250,257,259,262,274],estim:89,etc:[1,10,21,24,26,36,43,57,80,89,90,92,95,96,128,132,134,181,182,193,197,241,243,250,273,274],ethernet:[134,181],etyp:274,eui:262,eul:276,euler:276,ev_arg:[84,87,97,130],ev_cb:[84,87,89,130,238],ev_queu:87,eval:[259,274],evalu:[12,86,100,224,225,259,262,267,274],evalut:100,even:[4,10,86,89,96,128,151,179,193,199,211,222,272,274,278],event:[10,20,24,25,27,84,89,92,97,99,130,134,205,211,214,216,223,225,236,241,245,247,248,252,253,272,273,274,278,280,290],event_q:274,event_queu:130,eventq:[89,272,273],eventq_exampl:238,eventu:[4,99,100,179],ever:[89,90,128,140],everi:[1,32,61,97,98,99,134,150,179,190,250,252,254,256,268,273,280],everyon:[10,241],everyth:[1,93,97,222,241,265,266,273],evq:[84,87,89,216],evq_own:87,evq_task:87,exact:[96,128,186,192,223],exactli:[89,93,98,157,170,225],examin:[192,247,249,284],exampl:[1,2,3,6,7,9,10,12,22,23,24,25,30,31,55,57,58,59,60,61,62,64,80,82,83,89,90,91,93,94,96,97,98,99,100,101,128,130,133,152,173,174,180,183,186,187,188,205,207,208,209,210,214,219,222,223,234,235,236,241,243,245,246,250,254,256,258,262,265,266,267,268,269,273,275,276,277,278,279,280,283,284,286,287,288,290],example1:89,example2:89,exce:[179,215,219,287],exceed:20,except:[7,51,87,128,223,247,252,253,273,274],excerpt:[130,206,207,208,219,224,225,249,251,278],exchang:[14,21,22,27,28],excit:[7,235,244],exclud:[51,128,222,276],exclus:[22,91,98,206],exe:[12,59,60,82,83],exec:10,exec_write_req_rx:[76,236],exec_write_req_tx:[76,236],exec_write_rsp_rx:[76,236],exec_write_rsp_tx:[76,236],execut:[1,2,7,10,11,12,30,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,67,80,82,85,87,90,92,93,96,99,101,133,136,137,139,190,195,216,225,229,231,232,236,241,247,249,250,251,252,253,256,265,273],exhaust:[20,97,140,179],exisit:27,exist:[2,10,20,24,29,41,46,49,50,71,94,140,146,151,157,159,160,161,166,167,169,170,172,173,176,177,179,186,206,208,213,225,228,240,248,254,257,258,259,260,261,266,268,273,274,275,277,278,279,280,282,283,285,286,287,288,290],exit:[8,80,257,259,262,273,274,287],expect:[6,10,20,43,61,84,92,97,129,130,134,222,226,227,228,229,230,241,245,252,253,262,265],experi:[10,22,263,276],experienc:10,experiment:99,expertis:267,expir:[84,86,87,192,194,238],expire_msec:194,expire_sec:194,expiri:[84,192],explain:[4,10,12,98,236,243,244,245,252,253,255,266,268,282,285,290],explan:[34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,152,247],explanatori:[30,94,252,253],explic:276,explicit:265,explicitli:247,explor:[128,222,249,282],expos:[1,10,14,21,92,133,173,174,175,209,214,225,246,251],express:[23,168,225,226,251,273,274],ext:[10,12,258],ext_bynam:211,ext_bytyp:211,extend:[10,20,29,30,89,90,274,277,279],extended_dur:27,extended_period:27,extens:[10,21,30,137,262],extent:[254,280,287,288],extern:[12,29,40,93,97,134,135,175,181,186,205,223,231,267,268,274,287,288],extra:[10,38,42,47,89,134,152,190,239,242,247,280,287],extra_gdb_cmd:61,extract:[4,11,58,59,60,82,83,190,235,257],extrajtagcmd:[38,42,47],extrem:9,eyes:226,f401re:53,f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42:283,f4discoveri:258,f_activ:140,f_active_id:140,f_align:140,f_close:[162,180],f_closedir:[162,180],f_dirent_is_dir:[162,180],f_dirent_nam:[162,180],f_filelen:[162,180],f_getpo:[162,180],f_magic:140,f_mkdir:[162,180],f_mtx:140,f_name:[162,180],f_oldest:140,f_open:[162,180],f_opendir:[162,180],f_read:[162,180],f_readdir:[162,180],f_renam:[162,180],f_scratch:140,f_scratch_cnt:140,f_sector:140,f_sector_cnt:140,f_seek:[162,180],f_unlink:[162,180],f_version:140,f_write:[162,180],face:222,facil:[19,101,231,238],fact:[10,135,267],factor:9,factori:261,fail:[10,20,42,57,80,89,97,140,143,160,161,173,179,226,227,228,230,244,250,257,258,261,262,265,267,274,287],fail_msg:226,failov:222,failur:[20,84,89,97,99,100,128,136,141,142,143,145,146,148,149,150,152,153,154,156,157,159,160,163,166,167,168,169,170,171,172,176,177,178,182,186,187,190,192,193,194,215,217,218,219,226,232,233,249,250,251,265],fair:89,fairli:[24,55,61,89,98],fall:[96,101,186,290],fallback:27,fals:[90,222,224,226],famili:[4,101,135,151,245],familiar:[3,12,225,235,236,243,244,246,273,274,280,287,290],fanci:99,faq:[11,13],far:[244,280],fashion:[92,140,179,235],fast:[10,273],fat2n:[7,61],fatf:[7,136,151,152],fault:130,favorit:[235,240],fcb:[7,129,141,142,143,144,145,146,147,148,149,150,205],fcb_append:[140,142,143],fcb_append_finish:[140,141],fcb_append_to_scratch:141,fcb_entri:[140,141,142,145,150],fcb_err_nospac:141,fcb_err_novar:145,fcb_getnext:140,fcb_init:140,fcb_log:205,fcb_rotat:[140,141],fcb_walk:140,fcb_walk_cb:150,fda_id:179,fe80:287,fe_area:[140,145,150],fe_data_:140,fe_data_len:[140,145,150],fe_data_off:[140,145,150],fe_elem_:140,fe_elem_off:140,feat:274,feather:10,featur:[1,3,11,19,20,30,90,96,99,140,152,173,214,222,225,234,247,262,276,282],feedback:[235,240,255,274],feel:3,femal:286,fetch:[1,10,12,40,57,80,236,238,239,245,255,267,268,273,282,285],few:[1,6,10,14,25,31,55,61,90,93,94,223,244,249,252,262,265,274,290],ffconf:151,ffffffff:260,ffs2nativ:[7,61],fhss:21,ficr:23,fictiti:[267,268],fie_child_list:179,field:[10,20,27,84,85,89,93,128,130,175,187,200,202,206,207,208,214,219,222,223,225,247,249,251,252,253,267,268,276,278],fifo:140,figur:[89,128,129,140],file:[1,2,4,6,7,11,12,34,36,37,41,43,46,48,50,55,57,58,59,60,61,64,70,71,80,81,82,83,94,95,96,101,128,129,130,134,173,183,186,188,195,205,206,207,210,211,214,222,224,225,229,231,235,236,238,240,242,244,245,251,254,256,257,258,260,261,262,263,265,266,267,269,273,274,276,284,288],file_nam:61,filenam:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,70,71,93,151,156,160,162,166,169,173,179,222,245,273],filesystem:[55,129,151,195],fill:[10,48,95,99,140,141,143,145,146,182,198,199,244,249,252,253,265,273,274],filter:[2,10,22,27,30,72,254],filter_dupl:10,filter_polici:10,find:[1,2,3,10,20,28,34,55,61,88,89,94,96,129,146,181,211,223,224,228,234,235,244,245,254,257,258,261,266,280,283,286,287,288,290],find_info_req_rx:[76,236],find_info_req_tx:[76,236],find_info_rsp_rx:[76,236],find_info_rsp_tx:[76,236],find_type_value_req_rx:[76,236],find_type_value_req_tx:76,find_type_value_rsp_rx:76,find_type_value_rsp_tx:76,fine:[9,10,252,253],finish:[4,98,99,141,179,193,262,273],fip:21,fire:[84,192,194,241,248,280],firmwar:[10,128,152,236,257,259,262,266,273,274,287,288],first:[2,3,6,8,10,12,21,22,29,33,57,58,59,60,63,82,83,84,87,89,90,91,93,99,100,101,128,129,140,168,173,174,179,180,183,190,197,199,211,214,222,225,235,236,241,243,246,247,248,249,251,252,253,255,256,262,266,272,273,274,276,280,282,285,290],fit:[4,89,100,171,179,247,248,263],five:[20,21,22,157,170,236],fix:[6,10,11,90,100,128,269],fl_area:141,fl_data_off:141,flag:[1,6,10,12,27,29,55,57,58,59,61,62,64,80,81,82,89,94,99,128,160,222,239,245,249,251,272,273,276,283,286],flash0:152,flash:[1,9,10,39,43,48,55,57,58,59,61,95,96,129,134,141,142,146,152,174,176,177,180,181,185,186,188,195,205,222,225,236,254,258,259,260,262,263,274],flash_area:[140,150],flash_area_bootload:[93,128,176,177,224,225],flash_area_image_0:[93,128,176,177],flash_area_image_1:[93,128,176,177,225],flash_area_image_scratch:[93,128,176,177,224],flash_area_nff:[176,177,224,225],flash_area_noexist:224,flash_area_read:[140,145,150],flash_area_reboot_log:[224,225],flash_area_to_nffs_desc:[176,177],flash_area_writ:[140,141],flash_area_x:140,flash_id:[135,182,184],flash_map:[7,129,176,177,182,224,225],flash_map_init:225,flash_own:[224,225],flash_spi_chip_select:186,flash_test:[7,130],flat:[89,199,205],flavor:254,flexibl:[89,96,234,247,267,268],flg:273,flicker:10,flight:89,float_us:275,flood:31,flow:[21,130,193,245,252,253],flow_ctl:193,fly:190,fmt:130,focu:241,folder:[4,10,12,33,55,59,63,240,257],follow:[1,2,3,4,6,7,8,10,11,12,19,20,21,23,24,26,27,29,30,31,32,37,38,43,50,51,55,57,58,59,60,61,64,66,67,71,72,73,77,78,80,81,82,83,89,91,93,94,96,98,99,100,101,128,130,131,133,134,135,136,140,152,160,167,168,169,173,174,175,179,180,181,187,189,190,200,202,205,206,207,208,209,211,212,222,223,224,225,226,227,228,229,230,231,235,236,238,239,240,241,244,245,246,247,249,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,269,272,273,274,275,276,277,278,279,280,282,283,285,286],foo:129,foo_callout:129,foo_conf_export:129,foo_conf_set:129,foo_val:129,footer:[128,256],footprint:[9,132,134],fop:165,fopen:160,forc:[41,49,52,89,222],forev:[87,91,98,99,160,161,233],forgeri:22,forget:[80,160,161,235,272,273,274],forgot:273,fork:10,form:[1,19,22,23,26,66,89,99,179,225,249,250,252,262,265,267],formal:[7,20],format:[8,29,50,66,68,71,72,89,130,132,151,152,173,176,177,197,198,199,206,223,225,226,229,245,252,256,266,267,268,276,283,286],former:179,formula:[3,60,83],forth:[129,199],fortun:55,forver:27,forward:[10,100,247],found:[1,10,20,33,55,63,90,93,148,173,179,199,245,250,251,252,254,258,260,286],foundat:[4,21,31,132,254,260,267,273,274,280,287,288],four:[19,22,47,128,168,172],fraction:[100,265],frame:[214,217,218,241,262],framerwork:131,framework:[21,28,97,132,206,212,213,231,232,245,275,276,277,280,281,282],frdm:53,free:[2,4,73,88,89,90,140,179,215,219,222,248,250,254,260,280,284,287,288],freebsd:101,freed:[89,90,179],freedom:[250,252,253],freq_hz:192,frequenc:[10,21,24,86,93,97,100,134,181,189,192,194,223,241,262],frequent:[10,19,21,22,97,252,253,280],freshli:89,friend:31,friendli:[10,134],from:[1,4,6,7,8,9,10,11,12,19,20,22,23,26,27,30,31,32,35,36,38,39,41,43,44,45,46,47,49,50,51,55,56,60,61,62,64,65,66,68,69,70,71,72,73,76,77,79,83,84,85,86,87,88,89,90,92,93,94,95,96,99,100,101,128,129,131,132,133,135,136,137,139,140,146,152,153,154,155,156,160,161,162,163,164,166,168,169,171,176,177,179,180,182,186,187,190,192,193,195,198,199,205,206,207,208,209,210,211,212,213,214,216,217,222,223,224,225,226,227,228,230,231,233,235,236,238,239,241,243,244,245,246,249,250,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,273,274,276,280,282,283,284,286,287,288],front:[89,179],fs_access_append:160,fs_access_read:[153,160,163,168],fs_access_trunc:[157,160,166,169,170],fs_access_writ:[157,160,166,169,170],fs_cli:7,fs_cli_init:215,fs_close:[157,160,163,166,168,169,170,171,172],fs_closedir:[136,161],fs_dir:[152,154,155,156,161,162,164],fs_dirent:[7,152,154,155,156,161,162,164],fs_dirent_is_dir:[154,156,161,164],fs_dirent_nam:[136,154,155,161,164],fs_eaccess:167,fs_ealreadi:172,fs_ecorrupt:[167,176,177],fs_eempti:167,fs_eexist:[165,167],fs_eful:167,fs_ehw:167,fs_einval:167,fs_enoent:[136,154,155,156,161,164,166,167],fs_enomem:167,fs_eo:167,fs_eoffset:167,fs_eok:167,fs_eunexp:167,fs_euninit:167,fs_fcb:222,fs_file:[7,152,153,157,158,160,162,163,166,168,169,170],fs_filelen:170,fs_if:[162,180],fs_ls_cmd:215,fs_ls_struct:215,fs_mkdir:[7,172],fs_mount:7,fs_name:152,fs_nmgr:7,fs_op:[165,180],fs_open:[153,157,163,166,168,169,170,171,172],fs_opendir:[136,154,155,156,164],fs_read:[153,160,168,171],fs_readdir:[136,154,155,156,161],fs_regist:180,fs_unlink:159,fs_write:[157,166,172],fssl:[11,58],fsutil:[7,152],fsutil_r:152,fsutil_w:152,ftdichip:245,fulfil:249,full:[1,7,8,10,20,21,28,30,48,55,93,128,129,135,141,156,160,166,167,179,182,195,205,214,222,224,225,236,240,244,247,250,251,256,273,274,276,280,290],fuller:179,fulli:[9,21,128,173,174,179,222,244,253,267,268,274],fun:[235,273],func:[89,97,99,129,187,192,194],fundament:[1,290],funtion:199,further:[6,93,97,187],furthermor:[92,128,173,174,179,222,241,252,253],fuse:55,futur:[84,89,179,187,206,214,225,262,267,268,269],g_bno055_sensor_driv:208,g_bno055stat:208,g_led_pin:[240,241,256],g_mbuf_buff:89,g_mbuf_mempool:89,g_mbuf_pool:89,g_mystat:223,g_nmgr_shell_transport:217,g_os_run_list:85,g_os_sleep_list:85,g_stats_map_my_stat_sect:223,g_task1_loop:256,gain:[91,98,180,244,274],gap:[18,19,20,21,30,179,246,249,251,273,274,275],garbag:140,gatewai:262,gatt:[10,14,18,21,27,30,31,32,246,249,251,273,274,275],gatt_acc:249,gatt_adc_v:274,gatt_co2_v:272,gatt_co2_val_len:272,gatt_srv:274,gatt_srv_sns_access:274,gatt_svr:[251,272,274,276],gatt_svr_chr_access_gap:[249,251],gatt_svr_chr_access_sec_test:[251,272],gatt_svr_chr_sec_test_rand_uuid:[251,272],gatt_svr_chr_sec_test_static_uuid:[251,272],gatt_svr_chr_writ:[272,274],gatt_svr_register_cb:251,gatt_svr_sns_access:[272,274],gatt_svr_svc:[249,251,272],gatt_svr_svc_adc_uuid:274,gatt_svr_svc_co2_uuid:272,gatt_svr_svc_sec_test_uuid:[251,272],gaussian:21,gavin:58,gc_on_oom_test:265,gc_test:265,gcc:[4,7,57,101],gcc_startup_:93,gcc_startup_myboard:93,gcc_startup_myboard_split:93,gcc_startup_nrf52:[93,257,259,280],gcc_startup_nrf52_split:[257,259,261,262,280],gdb:[4,7,12,38,47,61,62,93,241,244,254,256,257,258,260,261,274,280,287,288],gdb_arduino_blinki:12,gdbmacro:7,gdbpath:12,gdbserver:6,gear:101,gen:[27,30],gen_task:238,gen_task_ev:238,gen_task_prio:238,gen_task_stack:238,gen_task_stack_sz:238,gen_task_str:238,gener:[1,10,11,15,16,17,18,19,20,21,23,27,28,29,31,34,35,43,55,61,62,87,89,90,91,93,99,128,136,173,174,186,199,222,224,227,228,230,235,236,239,240,241,242,244,245,247,248,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,272,273,276,280,283,286,287,288],get:[2,4,6,7,8,9,10,11,23,55,56,58,59,60,61,64,76,79,81,82,83,85,87,89,90,91,92,93,95,96,97,98,99,100,128,129,133,134,140,150,157,160,163,166,171,179,182,186,190,192,199,206,210,212,222,225,226,235,238,240,241,243,245,247,249,251,252,253,254,255,257,258,260,261,262,265,266,272,273,274,279,280,286,290],gettng:263,gfsk:21,ggdb:6,ghz:[21,266],gist:[134,186],gister_li:210,git:[11,55,58,80,81,82,101,254,266,267,268,269],github:[1,7,10,11,33,55,57,58,59,63,80,81,82,101,183,235,254,266,267,268,269,273,274,282],githublogin:269,githubpassword:269,githubusercont:[11,57,58,59,80,81,82],give:[10,55,186,222,235,241,244,252,253,262,267,268,274],given:[10,12,20,42,84,86,87,89,90,96,99,100,128,136,139,145,146,152,182,186,190,192,193,199,206,210,211,241,268],glanc:247,glibc:57,global:[1,29,62,89,90,91,175,205,206,208,223,231,249,273],gmt:100,gnd:[8,262,274,276,286],gnu:[3,4,10,12,38,47,254,258,260,261,280,287,288],goal:[55,101,285],gobjcopi:6,gobjdump:6,gobl:81,goe:[10,61,231,265,273],going:[10,96,222,252,256,273,274],golang:[11,59,82],gone:248,good:[7,9,10,22,55,91,93,97,128,151,222,244,247,253,262,273],googl:[252,282],gopath:[11,57,58,59,60,80,81,82,83],got:[10,272,273,274],govern:[273,274],gpg:[57,80],gpio:[8,10,96,134,188,190,193,238],gpio_ev:238,gpio_l:238,gpl:[4,254,258,260,261,280,287,288],gplv3:[254,260,280,287,288],gpo:181,gpregret:10,grab:88,gracefulli:233,graduat:274,grain:9,grant:91,granular:100,graph:[1,50,62,274],graviti:276,great:[8,21,128,224,240,273,274],greater:[21,29,89,179,224],greatest:[128,179],green:[2,10,12,254,258,259,266,276,283],grid:55,ground:[274,276],group:[2,20,76,131,134,214,223,225,236,262],grow:[53,241],guarante:[10,89,90],guard:92,guid:[7,11,12,18,59,62,64,82,208,209,225,236,238,241,246,251,253,263,265,267,283,286],guinea:242,gyro:276,gyro_rev:276,gyroscop:[206,276],h_mynewt_syscfg_:225,hack:[7,9,10,12,235,240,274],had:[89,92,128,222],hal:[1,7,9,10,48,55,61,86,95,134,135,176,177,180,181,187,190,192,193,208,238,244,254,258,260,274,276,280,290],hal_bsp:[7,10,93,134,185,207,254,257,258,260,273,278],hal_bsp_core_dump:182,hal_bsp_flash_dev:[93,135,182,185],hal_bsp_get_nvic_prior:182,hal_bsp_hw_id:182,hal_bsp_init:[182,207],hal_bsp_max_id_len:182,hal_bsp_mem_dump:182,hal_bsp_power_deep_sleep:182,hal_bsp_power_off:182,hal_bsp_power_on:182,hal_bsp_power_perus:182,hal_bsp_power_sleep:182,hal_bsp_power_st:182,hal_bsp_power_wfi:182,hal_common:[7,244,258,260],hal_debugger_connect:191,hal_flash:[7,93,135,152,182,185,254,258,260],hal_flash_align:184,hal_flash_eras:184,hal_flash_erase_sector:184,hal_flash_init:184,hal_flash_ioctl:184,hal_flash_read:184,hal_flash_writ:184,hal_gpio:[7,136,183,186,238],hal_gpio_init_in:186,hal_gpio_init_out:[99,186,238,240,241,256],hal_gpio_irq_dis:186,hal_gpio_irq_en:[186,238],hal_gpio_irq_handler_t:186,hal_gpio_irq_init:[186,238],hal_gpio_irq_releas:186,hal_gpio_irq_trig_t:186,hal_gpio_irq_trigg:186,hal_gpio_mode_:186,hal_gpio_mode_in:186,hal_gpio_mode_nc:186,hal_gpio_mode_out:186,hal_gpio_mode_t:186,hal_gpio_pul:186,hal_gpio_pull_down:186,hal_gpio_pull_non:186,hal_gpio_pull_t:186,hal_gpio_pull_up:[186,238],hal_gpio_read:186,hal_gpio_toggl:[99,186,238,240,256],hal_gpio_trig_both:186,hal_gpio_trig_fal:186,hal_gpio_trig_high:186,hal_gpio_trig_low:186,hal_gpio_trig_non:186,hal_gpio_trig_ris:[186,238],hal_gpio_writ:[10,183,186,241],hal_i2c_begin:187,hal_i2c_end:187,hal_i2c_init:187,hal_i2c_master_data:187,hal_i2c_master_prob:187,hal_i2c_master_read:187,hal_i2c_master_writ:187,hal_i2c_prob:187,hal_i2c_read:187,hal_i2c_writ:187,hal_os_tick:[189,257,280],hal_reset_brownout:191,hal_reset_caus:[191,278],hal_reset_pin:191,hal_reset_por:191,hal_reset_reason:191,hal_reset_request:191,hal_reset_soft:191,hal_reset_watchdog:191,hal_rtc:151,hal_spi:[136,190],hal_spi_abort:190,hal_spi_config:190,hal_spi_data_mode_breakout:190,hal_spi_dis:190,hal_spi_en:190,hal_spi_init:[136,190],hal_spi_lsb_first:190,hal_spi_mod:190,hal_spi_mode0:190,hal_spi_mode1:190,hal_spi_mode2:190,hal_spi_mode3:190,hal_spi_moden:190,hal_spi_msb_first:190,hal_spi_set:[135,190],hal_spi_set_txrx_cb:190,hal_spi_slave_set_def_tx_v:190,hal_spi_tx_v:190,hal_spi_txrx:190,hal_spi_txrx_cb:190,hal_spi_txrx_noblock:190,hal_spi_type_mast:190,hal_spi_type_slav:190,hal_spi_word_size_8bit:190,hal_spi_word_size_9bit:190,hal_system:191,hal_system_clock_start:191,hal_system_reset:191,hal_system_restart:191,hal_system_start:191,hal_tim:[86,192],hal_timer_cb:[86,192],hal_timer_config:192,hal_timer_deinit:192,hal_timer_delai:192,hal_timer_get_resolut:192,hal_timer_init:[10,192],hal_timer_read:192,hal_timer_set_cb:192,hal_timer_start:192,hal_timer_start_at:192,hal_timer_stop:192,hal_uart:273,hal_uart_blocking_tx:193,hal_uart_clos:193,hal_uart_config:[193,273],hal_uart_flow_ctl:193,hal_uart_flow_ctl_non:[193,273],hal_uart_flow_ctl_rts_ct:193,hal_uart_init:193,hal_uart_init_cb:[193,273],hal_uart_par:193,hal_uart_parity_even:193,hal_uart_parity_non:[193,273],hal_uart_parity_odd:193,hal_uart_rx_char:193,hal_uart_start_rx:193,hal_uart_start_tx:[193,273],hal_uart_tx_char:193,hal_uart_tx_don:193,hal_watchdog_en:194,hal_watchdog_init:194,hal_watchdog_tickl:194,hal_xxxx:181,half:[16,17,93,100],halfwai:128,halgpio:186,halsystem:191,halt:[92,189,190,254,258,260],haluart:193,hand:[222,235,241,265],handbook:[257,261],handi:[10,93,274],handl:[10,17,20,27,28,30,61,89,101,134,135,136,152,153,154,155,156,160,161,164,169,170,171,172,179,205,209,210,214,236,238,248,249,250,272,273,274,280],handler:[10,87,92,93,131,186,210,212,215,217,219,220,238,241,272,273,274,275],happen:[9,10,20,26,129,140,179,248,251,252,253,254,266,268],happi:[7,9],har:286,hard:[97,130],hardcod:[25,27],hardwar:[2,3,5,6,7,9,10,20,21,24,25,31,34,86,93,95,96,128,134,173,174,179,182,183,184,185,186,187,189,191,192,193,194,208,222,225,238,241,244,245,252,253,254,256,257,258,259,263,266,267,273,280,290],harm:128,has:[2,3,4,7,10,11,12,20,22,24,26,30,34,36,43,50,55,57,58,59,61,62,77,80,81,82,84,85,86,87,88,89,90,92,93,96,97,98,99,128,129,130,132,134,138,140,152,153,165,169,173,179,186,187,190,192,193,195,208,210,222,223,225,231,233,236,239,241,242,249,250,251,254,256,257,258,262,265,266,267,268,272,273,279,280,287,288,290],hash:[34,37,43,46,71,128,179,222,239,283,286],have:[1,2,3,6,7,8,9,10,11,12,19,20,22,24,30,32,43,50,52,54,55,57,58,59,60,61,62,64,80,81,82,83,84,87,89,90,92,93,95,96,97,98,99,101,128,130,132,134,135,137,140,143,173,174,179,181,185,186,192,193,214,220,222,223,224,225,234,235,236,238,239,240,242,243,244,245,248,249,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,270,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],haven:[3,10,136,234,268,273,274,290],hci1:245,hci:[10,21,243],hci_adv_param:247,hci_common:236,hdr:[128,226],hdr_ver:197,head:[11,58,80,81,82,87,89,210,242],header:[1,10,37,39,46,55,57,58,59,61,93,128,132,140,141,179,183,186,205,207,225,231,236,256,273,274],heading1:242,heading2:242,heading5:242,headless:2,health:252,heap:[90,92,93],heart:241,held:267,hello:[10,12,69,157,170,193,236,255,266,283,284,286,290],help:[1,8,10,12,31,34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,67,68,69,70,71,72,73,74,75,76,77,80,81,82,92,94,95,100,134,199,219,222,224,241,242,243,244,247,254,256,257,259,262,263,265,266,269,273,274,276,280,287,288],helper:[1,61,89,94,135,252,253],henc:[128,234],her:92,here:[1,3,8,10,11,29,32,55,73,76,77,84,87,89,90,93,94,97,99,129,130,140,156,157,160,163,171,173,186,190,199,205,206,208,214,222,223,224,225,232,234,235,238,242,245,249,251,252,253,254,256,257,258,261,262,265,266,267,268,273,274,284,290],hertz:86,hex:[7,37,43,48,71,187,222,260,262,272,280],hexidecim:66,hfxo:24,hidapi:4,hidraw:4,hierarchi:[152,225,231],high:[9,10,18,21,64,86,98,134,186,238,241,287],high_duti:27,higher:[10,11,14,20,21,55,58,59,72,80,81,82,91,92,98,99,181,205,211,224,225,234,241,245,265,268],highest:[85,91,92,99,224,225,241],highli:234,highlight:[2,6,30,101,235,254,257,259,261,266,274,275,280],hint:55,his:92,histori:224,hit:[36,256],hl_line:[207,208],hmac:10,hog:241,hold:[33,43,63,89,90,156,187,198,208,214,235,241,262,267,274],hole:[179,274],home:[7,11,59,93,222,244,256,265,269,273],homebrew:[4,6,7,11,36,56,60,79,83],homepag:[1,43,61,130,265,273,274],honor:10,hook:[97,260,273,286],hop:[21,134],hope:10,host:[7,9,10,21,22,23,26,29,30,66,70,71,84,87,89,128,212,242,244,245,249,250,251,254,265,266,273,274,275,279,280,287,288],hotkei:287,hour:100,how:[2,3,4,5,6,7,8,11,12,20,21,23,30,55,57,58,59,60,66,80,81,82,83,89,91,93,96,100,128,129,130,140,146,148,166,173,187,190,200,205,207,208,219,222,223,226,229,231,234,235,236,239,240,241,242,243,244,245,248,249,250,252,253,254,255,256,257,258,259,260,261,262,264,265,266,272,273,274,276,277,279,280,282,283,284,285,286,290],how_to_edit_doc:242,howev:[3,10,57,80,89,96,99,101,128,130,173,179,186,223,239,257,267],htm:245,html:[4,33,63,152,254,258,260,280,287,288],http:[1,4,10,11,12,33,39,55,57,58,59,61,63,80,81,82,101,130,137,183,235,245,252,254,257,258,260,261,265,267,269,273,274,280,286,287,288],httperror404:[57,80],hub:266,human:[245,267],hw_bsp_nativ:61,hw_drivers_nimble_nrf51:222,hw_hal:55,hw_mcu_nordic_nrf51xxx:222,hypothet:20,i2c:[8,134,135,181,276,277,280],i2c_0:[275,276,277,280],i2c_0_itf_bno:207,i2c_0_itf_li:207,i2c_num:187,i2s:254,i2s_callback:254,i386:[4,6],iOS:[248,272,274,275,277,279,282],ibeacon:[23,244,255,290],icloud:10,icon:[10,12],id16:251,id3:[33,63],id_init:225,idcod:254,idea:[10,61,89,91,97,247],ideal:21,ident:[10,18,20,22,23,27,30,66,89,101,133,222,223,231],identifi:[1,8,10,19,20,27,29,34,71,93,99,128,129,179,182,187,252,253,257,259,262,266,274,283,286],idl:[27,77,97,241,244,273,283,286],idx:[27,135,179],ietf:199,if_rw:133,ifdef:[222,225,232,256,280],ifndef:[225,273,274],ignor:[6,10,27,82,90,152,166,173,225,287],ih_flag:128,ih_hdr_siz:128,ih_img_s:128,ih_key_id:128,ih_mag:128,ih_tlv_siz:128,ih_ver:128,iii:128,illustr:[12,89,91,92,128,241,274,280],imag:[2,6,7,12,31,34,38,39,42,43,47,55,57,58,59,61,64,78,80,81,82,93,94,96,101,130,131,196,197,198,200,201,203,223,224,234,244,248,254,255,256,263,272,273,284,285,287,288,290],image_ec256:[254,257,258,259,260,261,262,266,276,283,284,286],image_ec:[7,254,257,258,259,260,261,262,266,276,283,284,286],image_f_ecdsa224_sha256:128,image_f_non_boot:128,image_f_p:128,image_f_pkcs15_rsa2048_sha256:128,image_f_sha256:128,image_head:128,image_header_s:128,image_mag:128,image_magic_non:128,image_ok:128,image_rsa:[7,254,257,258,259,260,261,262,266,276,283,284,286],image_tlv:128,image_tlv_:128,image_tlv_ecdsa224:128,image_tlv_rsa2048:128,image_tlv_sha256:128,image_valid:[7,254,258,259,261,266,276,283,284,286],image_vers:[128,197,198],img:[10,37,46,71,235,236,239,240,244,245,248,254,257,258,259,260,261,262,266,273,276,280,283,286,287,288],img_data:204,img_start:191,imgmgr:[7,130,131,152,195,225,236,274],imgmgr_max_ver_str:198,imgmgr_module_init:225,imgr_list:[200,201,203],imgr_upload:204,imgr_ver_jsonstr:198,immedi:[26,87,93,128,169,179,190,192,242,247,252,253],impact:[24,179],impl:61,implemen:66,implement:[9,10,21,32,61,66,87,89,90,93,95,96,128,129,130,131,151,152,173,179,181,183,185,186,187,188,189,190,191,195,199,206,207,209,211,213,214,220,225,231,238,246,249,251,252,262,265,274,275,276,280],impli:[10,252,253,265,268,273,274],implicit:265,impos:[128,173,174,179],imposs:[19,175],impract:251,impress:274,improv:256,imuplu:276,inc:[4,254,260,280,287,288],includ:[1,4,7,9,10,14,15,16,17,19,20,21,22,26,27,28,31,43,50,59,61,84,87,89,90,91,93,95,96,97,98,99,100,128,130,133,134,135,136,138,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,187,190,192,193,195,205,206,207,210,211,212,214,222,224,225,231,235,236,238,239,241,245,246,247,249,252,253,257,265,267,268,273,274,275,276,278,279,280,285,287],include_tx_pow:27,incom:[20,87,193,195,214,215,217,238],incompat:[57,80,267],incomplet:[29,93,159],incomplete_block_test:265,incorrect:[42,100],incr:182,increas:[21,22,89,179,214,215,219,225,241,287],increasin:140,increment:[89,100,129,179,223],incub:[7,55,183,225,235,274],inde:[92,260],indefini:[252,253],indent:6,independ:[22,96,128,134,181,182,184,186,187,189,191,192,193,194,225,273],indetermin:265,index:[31,72,128,245],indian:100,indic:[7,10,19,20,26,28,29,30,87,90,93,97,128,130,132,152,158,160,167,179,186,187,192,204,211,214,219,222,224,225,239,249,251,254,257,258,261,265,266,280,282],indirect:274,individu:[11,99,128,129,134,186,225,230,236,267],industri:[21,151],ineffici:179,infinit:[87,90,92,225,241,256],info:[10,39,57,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,90,99,140,141,145,219,239,250,254,258,260,261,266,272,274],inform:[1,6,7,10,12,20,22,23,27,29,34,37,39,40,57,58,59,61,62,64,66,71,80,81,82,87,89,90,93,95,96,99,100,128,132,133,145,179,205,206,208,209,219,222,223,225,234,235,238,239,241,244,247,250,251,252,253,254,256,262,267,268,269,273,274,276,280,283,286,288],infrastructur:244,ing:[134,252,253],inher:[1,23,249],inherit:[1,4,59,91,175,206],ininclud:223,init:[50,55,207,211,225,273,274],init_app_task:92,init_func_nam:225,init_funct:225,init_stag:225,init_task:[238,241],init_tim:[256,280],initi:[10,16,19,21,23,25,26,27,28,61,84,86,87,89,90,91,92,93,97,98,99,129,130,134,138,146,152,167,176,177,178,179,181,182,184,186,187,190,192,193,196,199,203,205,207,210,211,212,214,215,219,231,232,236,238,240,245,246,250,252,253,256,265,272,273,274,275,276,280],initialis:[208,254],inod:[173,175],inoper:[26,252,253],input:[20,22,27,100,134,181,186,190,238,260,265,287],inquiri:[20,29],insert:[99,179],insid:[10,24,89,92,161,182,256,260,265],insight:[134,241],inspect:[10,48,128,129,250],instal:[3,7,9,33,39,54,55,63,78,92,93,94,136,210,236,238,239,240,241,243,244,245,254,255,257,258,259,260,261,265,266,268,270,273,275,276,277,279,280,282,283,284,285,286,287,290],instanc:[2,3,9,10,27,62,89,175,176,177,179,205,223,247,252,253,254],instant:20,instantan:241,instanti:[92,134],instantli:98,instead:[7,10,11,12,24,87,90,98,128,130,222,225,236,238,248,254,256,257,258,259,260,261,265,269,272,273,274,275,278],instruct:[3,4,7,11,55,57,62,80,85,96,236,238,254,257,261,275,276,277,278,280,284,287,288],insuffici:[20,89,167],insur:[90,99],int16_t:100,int32_max:27,int32_t:[84,100,193,252,253],int64_t:100,int8:129,int_max:89,integ:[10,199,206,223,225],integr:[10,12,22,90,179,187,223],intellig:181,intend:[10,24,29,36,176,177,187,234],inter:[179,187,238],interact:[2,8,130,132,195,248,256,263,287],interchang:199,interconnect:[9,132],interdepend:[129,225],interest:[7,14,18,89,93,181,222,240,244,247,252,290],interfac:[4,18,21,30,31,89,99,128,133,134,135,136,151,152,181,182,184,186,187,189,190,191,193,194,205,208,209,235,243,245,246,254,258,260,273,276,277,280,286],interleav:10,intermedi:[159,160,166],intern:[7,10,20,89,92,93,97,134,135,140,167,176,177,178,185,192,194,195,199,215,219,254,274],internet:[7,12,21,236,238,239,245,255,266,282,285],interoper:[132,133],interpret:[137,139,206,210],interrog:274,interrupt:[10,86,87,93,128,182,186,189,190,192,193,274],interrupt_prior:274,interv:[10,20,27,29,97,99,206,210,211,238,276,280],interval_max:27,interval_min:27,intervent:96,intial:219,intiat:93,introduc:[1,30,179,224,225],introduct:[241,290],introductori:282,intuit:128,invalid:[20,86,128,136,142,152,153,167,171,172,179,190,192,249,265],invers:[91,98],invert:98,invoc:[6,251],invok:[2,265,269,280],involv:[16,17,19,22,93,96,181,187,265],io_cap:27,ioctl:152,iot:21,iotiv:275,ipsp:21,ipv6:21,irk:[19,27],irq:[10,186],irq_num:182,irq_prio:[135,136],isbuildcommand:12,ism:21,ismylaptop:[273,274],isn:[10,93,179,244],isol:[93,222],isr:10,isshellcommand:12,issu:[1,6,30,55,66,92,98,128,132,152,173,179,187,236,257,258,259,261,262,270,273,274],ist:100,it_len:128,it_typ:128,ital:242,ite_chr:249,item:[1,87,93,129,180,210,253],iter:[90,99,128,154,155,156,161,164,179,211],itf:208,its:[7,10,11,18,19,20,55,61,85,87,89,90,91,92,93,96,97,99,128,130,135,140,158,168,171,173,174,179,186,187,190,205,222,223,224,225,226,231,235,239,240,241,242,243,244,247,249,250,251,252,253,262,267,273,278,284,290],itself:[10,26,61,89,90,99,128,134,138,140,180,195,200,211,225,235,257,265,273,274],itvl:10,iv_build_num:128,iv_major:128,iv_minor:128,iv_revis:128,jan:100,javascript:55,jb_read_next:199,jb_read_prev:199,jb_readn:199,je_arg:199,je_encode_buf:199,je_wr_comma:199,je_writ:199,jira:10,jlink:[61,93,239,257,259,266,276,280,283],jlink_debug:61,jlink_dev:61,jlinkex:[257,259,262,274],jlinkgdbserv:[280,287],job:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,85,92,93,214,249],join:[3,134,234,266,290],json:[7,12,34,37,51,55,61,201,202,203,204,235,236,240,265,273],json_array_t:199,json_attr_t:[199,204],json_buff:[199,204],json_buffer_read_next_byte_t:199,json_buffer_read_prev_byte_t:199,json_buffer_readn_t:199,json_decod:[204,265],json_encod:[198,199,200,201,202,203,265],json_encode_object_entri:[201,202,203],json_encode_object_finish:[200,203],json_encode_object_start:[200,201,202],json_enum_t:199,json_read:199,json_read_object:199,json_simple_decod:265,json_simple_encod:265,json_typ:199,json_valu:[199,200,201,202,203],json_value_int:[199,202],json_value_str:199,json_value_stringn:199,json_write_func_t:199,jtag:[4,38,42,47,254,257,258,260,266,280,286],jul:80,jump0:67,jump:[128,222],jumper:[8,235,260,273,274,286],just:[1,7,8,10,20,22,23,62,84,87,93,94,99,100,128,135,136,151,166,171,222,235,248,249,252,253,254,256,262,269,270,273,274],jv_len:199,jv_pad1:199,jv_type:199,jv_val:199,k30:[272,273],k64f:53,keep:[9,22,24,92,128,130,134,140,179,190,207,214,215,219,222,235,240,241,265,274],keg:[60,83],kei:[8,19,20,21,31,37,46,57,80,93,128,129,179,198,199,200,202,225,249,262,266,273,276],kept:[85,128,140],kernel:[1,7,9,10,51,55,61,93,130,134,181,211,222,225,238,244,245,273,274,275,276,278,280],kernel_o:222,keyboard:[12,22,130],keyboarddisplai:27,keyboardonli:27,keychain:[57,80],keystor:27,keyword:[1,61,94,130,265,267,273,274],khz:[190,254,258],kick:[97,252,253],kilobyt:96,kind:[31,134,273,274,287],kit:[8,47,61,235,239,240,255,257,274,287,288,290],klibc:101,know:[1,8,12,30,61,130,206,210,223,224,241,249,250,252,253,255,256,266,273,274,285,290],known:[21,55,100,160,161,179,241,247],kw41z:10,l13:257,l2cap:21,lab:32,label:[8,93,260,274],lack:[140,151,222],lag:251,languag:[11,12,55,96,137,273,274],laptop:[3,8,235,236,238,240,245,262,273,274],larg:[20,24,31,89,99,100,222,223,241],large_system_test:265,large_unlink_test:265,large_write_test:265,larger:[10,31,89,226],largest:[89,242],las_app_port:262,las_app_tx:262,las_join:262,las_link_chk:262,las_rd_app_eui:262,las_rd_app_kei:262,las_rd_dev_eui:262,las_rd_mib:262,las_wr_app_eui:262,las_wr_app_kei:262,las_wr_dev_eui:262,las_wr_mib:262,last:[10,20,26,72,77,89,90,97,99,128,148,179,193,201,206,214,219,225,247,251,252,253,254,262,266,274,276,278,280],last_checkin:[77,283,286],last_n_off:148,last_op:187,last_read_tim:208,latenc:27,later:[7,8,10,72,84,89,128,231,240,244,250,254,262,265,274,280,287,288],latest:[1,2,4,7,10,11,49,52,55,56,60,79,83,129,235,254,266,267,268,273,274],latex:[173,179],latter:[20,89,132,173],launch:12,launchpad:4,law:[254,273,274,280,287,288],layer:[9,20,21,89,90,95,96,134,152,162,165,173,180,193,208,209,225,238,246,274,290],layout:[96,128,174,286],lc_f:207,lc_pull_up_disc:207,lc_rate:207,lc_s_mask:207,lcheck:273,ld4:258,ldebug:[10,224],ldflag:50,ldr:260,le_elem_off:145,le_scan_interv:10,le_scan_window:10,lead:[89,92,250,274],leadingspac:89,leak:[160,161],learn:[7,26,61,235,240,255,282],least:[22,89,97,128,179,190,192,236,256,262,274,290],leav:[89,135,148,222],led1:[238,259],led2:238,led3:238,led:[1,7,10,61,93,96,99,134,181,186,236,238,241,245,254,255,256,257,258,259,260,261,266,273,274,276,283,286,290],led_blink_pin:[93,99,240,241,256],led_blink_pin_1:240,led_blink_pin_2:240,led_blink_pin_3:240,led_blink_pin_4:240,led_blink_pin_5:240,led_blink_pin_6:240,led_blink_pin_7:240,led_blink_pin_8:240,led_pin:240,left:[86,90,99,145,198,222,260,272,280,290],legaci:[30,151,225,241],len:[89,135,140,141,162,163,170,171,172,187,190,199,204,249,262,273],length:[20,21,27,89,93,128,130,140,156,157,176,179,182,198,249,262],less:[10,92,101,128,179,251,252,253],lesser:179,lesson:[241,290],let:[4,8,55,89,93,205,222,223,235,241,244,246,247,248,249,250,251,252,253,256,260,265,267,268,272,273,274,280],level:[1,2,9,10,14,18,20,23,27,29,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,91,93,131,134,135,152,173,174,181,208,224,225,234,248,249,252,253,254,258,262,265,266,268,272,273,274],level_list:72,leverag:[132,134,243,274],lflag:[1,50,61],lib:[1,4,45,53,55,82,101,130,152,180,224,225,273,274],libc6:6,libc:[7,93,101],libc_baselibc:[222,260],libftdi1:4,libftdi:4,libg:48,libgcc:[48,222],libhidapi:4,librari:[1,4,10,48,50,55,58,81,87,89,93,94,96,101,128,130,134,152,160,180,181,195,222,223,231,244,265,267,268,273,274,275],libusb:4,libusb_error_access:258,libusb_open:258,licens:[4,7,11,55,61,101,134,244,254,258,260,261,266,267,273,274,280,287,288],lieu:66,life:[24,252],light:[9,31,181,206,235,238,240,255,258,259,260,261,275,276,283,286],lightblu:[248,272,274],lightweight:151,like:[2,3,5,8,12,31,55,58,59,62,81,82,89,92,93,96,97,98,101,128,130,134,140,181,187,223,235,240,244,254,258,260,265,267,273,274,275,277,278,280,282,286,287,288],likewis:[62,179],limit:[3,10,20,27,29,99,101,135,151,215,219,222,236,247,252,273,274,287],limt:223,line:[2,6,7,10,12,36,38,39,47,62,93,101,130,186,223,229,235,240,245,251,256,258,259,267,269,273,274,275,276,280,287],linear:179,linearacc:276,lines_queu:130,link:[2,3,7,10,20,21,22,27,34,38,42,60,61,81,83,85,89,179,192,214,222,225,231,234,235,244,245,248,253,254,256,257,258,259,260,261,262,266,273,274,276,280,283,284,286,287,288,290],linker:[1,61,94,101,222,244,260],linkerscript:[61,93],linux:[5,7,9,12,56,66,78,79,135,239,245,254,256,257,258,260,261,266,276,283,284,285,286],liquid:274,lis2dh12:[207,280],lis2dh12_0:[207,280],lis2dh12_cfg:207,lis2dh12_config:207,lis2dh12_data_rate_hn_1344hz_l_5376hz:207,lis2dh12_fs_2g:207,lis2dh12_init:207,lis2dh12_onb:280,list:[3,6,7,8,12,22,27,29,34,35,48,50,51,53,57,59,61,66,71,72,73,75,76,77,78,80,85,87,89,90,93,94,95,99,128,130,131,134,136,179,180,192,205,214,223,225,226,229,234,235,239,240,244,247,250,251,254,255,256,257,258,259,260,261,262,267,268,273,274,278,283,284,286,290],listen:[2,10,14,30,31,66,89,206,211,222,247],listener_cb:280,lit:[236,240,241,245],littl:[6,20,23,89,128,235,240,244,251,262,268,273],live:[134,235,250,251,254,266,267,268],lma:260,lmp:20,load:[2,4,5,7,10,12,34,39,43,47,55,57,58,59,61,93,128,129,191,222,235,238,239,240,241,248,255,256,262,268,272,273,274,287,288],load_arduino_blinki:12,load_arduino_boot:12,loader:[10,43,50,93,128,130,191,254,257,258,259,261,266,276,283,284,286],loc:[141,145,150],local:[1,4,6,7,10,11,20,27,28,36,40,49,55,58,60,71,81,83,94,99,100,242,247,254,266,278],localhost:[66,280,287],locat:[1,8,11,19,31,61,89,93,128,140,145,179,187,231,241,251,256,260,266,267,273,276,283,284,286],lock:[9,88,92,98,140,206,211,238],log:[1,7,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,73,74,75,76,77,78,80,81,82,128,131,132,150,159,166,180,181,214,222,224,225,235,236,244,254,257,258,260,261,263,273,274,278,280,284,287],log_:10,log_cbm_handl:205,log_cbmem_handl:205,log_cli:[214,263],log_console_handl:[205,208],log_debug:205,log_error:208,log_fcb:225,log_fcb_handl:205,log_handl:205,log_info:208,log_init:225,log_level:[50,205,225,239,263],log_level_debug:205,log_level_error:205,log_module_bno055:208,log_module_default:205,log_nam:72,log_newmgr:224,log_newtmgr:[50,224,225,236],log_nmgr_register_group:225,log_regist:[205,208],log_shel:235,log_syslevel:[205,208],logic:[1,21,23,29,128,174,193,262,273],login:269,loglevel:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,273],logxi:81,long_filename_test:265,longer:[3,8,10,11,21,24,90,210,224,245,273,275],longjmp:233,longrange_interv:27,longrange_pass:27,longrange_window:27,look:[8,10,24,55,61,93,95,99,101,128,130,131,187,199,204,222,223,235,240,241,242,247,249,250,251,265,268,270,272,273,274,278,280,290],lookup:[211,220,249,280],loop:[10,84,87,92,99,154,155,156,161,164,225,236,241,244,256,272,273,274],lora:262,lora_app_shel:262,lora_app_shell_telee02:262,lora_app_shell_telee0:262,lora_mac_timer_num:262,lose:26,loss:[26,29,182],lost:[97,179],lost_found_test:265,lot:[7,10,222,224,247,265,274],low:[9,10,20,21,22,31,86,89,93,98,135,152,181,186,190,191,208,241,249,252,253,254,255,258,266,290],lower:[10,20,86,91,92,98,99,224,225,239,241,246,256,260],lowest:[73,85,90,99,179,225,241],lowpow:276,lru:179,lrwxr:[4,81],lsb:187,lst:[34,55,61],ltbase:225,ltd:27,ltk:27,ltk_sc:27,ltrequir:225,lua:[137,138,139],lua_cmd:139,luckili:273,m32:6,m4g:276,mac:[3,5,7,9,10,12,20,55,56,78,79,235,239,240,245,248,254,256,257,258,260,261,262,266,272,274,276,283,284,285,286],machin:[2,3,7,8,94,245,290],maco:[4,10,66],macro:[10,20,89,90,93,97,199,206,208,223,225,231,241,251,265,274],made:[2,10,11,20,55,71,99,128,187,241,242,262,274],mag:276,mag_rev:276,maggyro:276,magic:[61,128,140,179],magnet:[206,276],magnetomet:208,mai:[2,4,6,7,8,10,12,22,27,29,30,31,51,53,57,58,62,80,81,82,85,87,89,90,92,93,96,101,128,130,132,134,161,179,181,186,187,192,205,206,207,208,210,211,222,223,224,225,226,229,231,236,241,244,245,254,256,257,258,259,260,261,262,266,267,273,274,276,280,283,286,287],mail:[3,10,134,234,235,240,244,255,274,290],main:[7,12,26,31,57,61,77,80,87,89,92,95,99,128,130,138,176,177,197,206,211,214,216,221,225,230,232,236,238,240,244,247,252,253,254,257,258,259,260,261,265,272,273,274,276,283,284,286],mainli:222,maintain:[4,49,85,128,134,179,206,211,225,265,267,268],mainten:[132,223],major:[10,55,61,96,197,241,253,267,268],major_num:[267,268],make:[1,2,3,7,8,9,19,20,21,24,30,31,33,55,57,63,71,85,89,90,93,128,134,140,141,173,179,181,198,205,222,223,235,239,240,241,243,244,245,247,249,250,252,253,254,256,260,262,265,267,272,273,274,275,280,290],makerbeacon:236,malloc:[88,90,93,101,241,274],man:[6,27,101],manag:[6,8,10,16,17,21,27,31,39,45,57,58,59,61,64,66,68,71,72,73,76,77,80,81,82,87,90,92,93,94,96,99,128,130,134,181,196,199,206,208,209,210,222,225,239,256,257,263,266,268,276,280,283,285,286,290],mandatori:[20,93,226,251,252,253],mani:[10,20,31,55,61,89,95,128,140,148,160,161,181,192,249,254,267],manifest:[34,37,43,55,61,235,236,240,273],manipul:[1,39,45,89],manner:[27,29,89,92,128,181],manual:[21,25,60,83,90,92,99,101,173,222,229,235,254,260,280,286,287,288],manufactur:[19,27,29,39,43,57,58,59,66,222,247,254,266],many_children_test:265,map:[2,3,8,20,27,28,61,96,134,135,160,181,185,186,193,199,222,224,225,249,256,266,267,268,276,283,286,287],mar:[100,257,259,262,274,280],march:68,mark:[27,28,71,93,260],marker:93,market:[31,259],mask:[27,206,208,210,211,278,280],mass:[245,258],mass_eras:[257,258],master:[1,7,11,27,56,57,59,60,79,80,82,83,134,181,183,187,190,242,254,266,267,268],match:[2,7,10,20,93,94,96,128,210,211,222,254,258,266,267,268],materi:10,matter:10,max:[156,198,199],max_cbmem_buf:205,max_conn_event_len:27,max_ev:27,max_len:[156,162,182],max_protohdr:89,maxim:9,maximum:[10,21,27,29,89,128,130,173,175,179,182,198,214,215,219,265,287],mayb:[287,288],mb_crc:273,mb_crc_check:273,mb_crc_tbl:273,mbed:[257,261],mbedtl:[7,254,257,259,261,266,283,284,286],mblehciproj:245,mblen:89,mbuf:[92,199,277],mbuf_buf_s:89,mbuf_memblock_overhead:89,mbuf_memblock_s:89,mbuf_mempool_s:89,mbuf_num_mbuf:89,mbuf_payload_s:89,mbuf_pkthdr_overhead:89,mbuf_pool:89,mbuf_usage_example1:89,mbuf_usage_example2:89,mcu:[7,9,53,94,97,134,135,181,186,189,190,191,192,193,195,235,240,241,254,257,266,280],mcu_dcdc_en:10,mcu_gpio_porta:135,mcu_sim_parse_arg:[256,280],mdw:260,mean:[2,10,12,20,89,91,97,98,99,100,128,135,175,190,201,203,225,233,251,258,268,273,274],meaning:[138,193],meant:[1,97,129],measur:[9,241,262],mechan:[1,22,92,222,225,238,267,269,273,274],medic:[21,55],medium:[10,167],meet:[207,239,245,254,255,257,258,259,260,261,276,278,279,280,282,283,284,285,286],mem:[7,225],member:[84,87,89,90,91,97,98,99,100,130,187,190,192,247,249],membuf:90,memcmp:89,memcpi:249,memori:[9,20,48,73,87,88,89,92,93,96,97,101,128,132,134,135,151,167,173,174,178,179,181,182,184,187,215,219,224,236,238,241,249,260,262,263,284,287],mempool:[64,80,81,82,89,90,214,273],memset:[207,247,250,253,274],mention:[12,179,206,274],menu:[12,59,258,260,286],merchant:4,merci:90,merg:242,mesh:32,messag:[2,4,22,31,42,57,58,59,75,130,132,133,166,214,217,218,226,238,254,258,262,266,273],messi:274,messsag:62,met:[20,236,238,266],meta:[8,266,276],metadata:[10,43,128,167],meter:21,method:[25,89,99,133,173,183,186,190,205,214,223,249,267],mfg:[7,10,39,57,58,59,70,225],mfg_data:29,mfg_init:225,mgmt:[7,130,132,190,196,214,224,225,236,273,274],mgmt_evq_set:236,mgmt_group_id_config:131,mgmt_group_id_crash:131,mgmt_group_id_default:131,mgmt_group_id_imag:131,mgmt_group_id_log:131,mgmt_group_id_runtest:131,mgmt_group_id_stat:131,mgmt_imgmgr:222,mgmt_newtmgr_nmgr_o:222,mgutz:81,mhz:[21,24],mib:[55,81,262],mic:20,micro:[10,55,239,241,254,255,257,259,260,262,266,274,276,282,283,285,286,287,288],microcontrol:[9,101,128,260,286],microsecond:[24,86,100],microsoft:12,mid:[14,128,258],middl:[27,128,179,274],might:[1,2,10,18,20,61,93,96,130,134,179,181,187,208,222,224,244,246,247,252,253,254,258,267,268,270,280,287,288],migrat:[179,225],milisecond:27,millisecond:[27,100,262],millivolt:274,min:[72,73,128,266,284],min_conn_event_len:27,mind:[97,244],mingw32:59,mingw64:59,mingw:[4,7,8,12,56,82,256,266,276,283,286],mini:258,minicom:[8,256,266,273,276],minim:[93,134,151,152,173,179,208,244],minimum:[27,29,72,89,90,128,179,244],minor:[197,253,267,268],minor_num:[267,268],minu:89,minut:[81,100,252,265],mip:[7,61],mirror:[1,10,11,267,273,274],misc:276,mislead:6,mismatch:[20,89],miso:190,miso_pin:[135,136],miss:[20,57,93,224,235,240,244,255,274],misspel:224,mitm:27,mk64f12:[134,181],mkdir:[11,43,80,82,93,235,254,257,258,259,260,261,262,266,267,273,274],mkdir_test:265,mkdoc:242,mkr1000:264,mkr1000_boot:266,mkr1000_wifi:266,mlme:262,mman:57,mmc0:[136,152],mmc:151,mmc_addr_error:136,mmc_card_error:136,mmc_crc_error:136,mmc_device_error:136,mmc_erase_error:136,mmc_init:136,mmc_invalid_command:136,mmc_ok:136,mmc_op:[136,152],mmc_param_error:136,mmc_read_error:136,mmc_response_error:136,mmc_timeout:136,mmc_voltage_error:136,mmc_write_error:136,mn_socket:7,mobil:31,mod:[30,248],modbu:273,mode:[9,10,20,22,27,29,134,158,160,167,168,170,181,182,186,190,193,208,222,247,254,258,260,265,276],model:[10,21,22,32,87,195,257],modern:[8,151],modif:[11,235,265,275],modifi:[6,62,89,93,100,133,192,240,241,273,274,279,282],modul:[72,86,90,92,101,132,137,205,215,219,221,256,262,286],module_list:72,module_nam:[219,221],modulo:100,moment:[10,135,187,195,249,268],mon:[254,257,258],monitor:[89,130,132,140,212,223,260,275,282,290],monolith:251,month:265,more:[1,4,7,9,10,12,20,21,22,29,30,34,35,39,43,51,53,57,58,59,61,62,64,80,81,82,85,87,89,92,93,98,99,100,101,128,129,134,141,145,152,163,164,179,190,193,199,205,206,207,208,209,214,222,225,226,239,240,241,244,247,251,252,253,254,256,257,262,265,266,268,272,273,274,276,280,283,286,287,290],mosi:190,mosi_pin:[135,136],most:[1,8,10,14,19,21,23,24,25,61,89,93,94,99,101,128,179,183,190,222,224,241,247,265,272,273,274,276,278,280],mostli:[6,9,222,252,253],motor:9,mou:242,mount:[165,274],mous:[134,181],move:[8,45,57,58,59,81,92,100,128,166,182,222,256,260,274,275,277,280],mp_block_siz:90,mp_flag:90,mp_membuf_addr:90,mp_min_fre:90,mp_num_block:90,mp_num_fre:90,mpe:90,mpool:[219,262],mpstat:[64,78,80,81,82,131,133,236,284],mq_ev:89,mqeueue:89,msb:187,msdo:93,msec:[10,27,194],msg:229,msg_data:27,msp:[254,260],msy:59,msys2:56,msys2_path_typ:59,msys64:59,msys_1:[73,284],msys_1_block_count:[275,277],msys_1_block_s:[275,277],mtd:135,mtu:[10,20,27,28,248],mu_level:91,mu_own:91,mu_prio:91,much:[10,89,93,98,101,146,179,273],multi:[1,9,50,62,96,99,187],multilib:[6,7,57],multipl:[4,10,23,27,29,34,35,50,51,55,84,91,92,97,101,129,132,134,181,190,211,225,247,251,252,267],multiplex:[10,21],multiplexor:96,multipli:[90,241],multitask:[92,241],must:[1,2,4,5,7,8,9,11,12,14,22,24,25,33,37,41,46,53,55,57,59,61,63,66,68,71,80,86,87,89,90,92,93,96,97,99,128,129,130,136,140,148,152,159,160,162,166,173,174,175,176,178,179,180,187,190,192,193,197,198,199,205,206,207,208,210,211,212,214,215,216,219,223,224,225,232,235,236,239,241,244,247,249,256,259,260,262,266,267,268,273,274,276,277,278,279,280,283,286,287],mutex:[88,92,98,99],mutual:91,my_at45db_dev:135,my_blinki:50,my_blinky_sim:[7,34,35,43,55,61,244,245,257,258,273],my_blocking_enc_proc:20,my_callout:238,my_conf:129,my_config_nam:225,my_driv:[273,274],my_ev_cb:238,my_eventq:236,my_gpio_irq:238,my_interrupt_ev_cb:238,my_memory_buff:90,my_new_target:50,my_newt_target:50,my_packag:205,my_package_log:205,my_pool:90,my_proj1:244,my_proj:244,my_project:[1,254,266,267,274],my_protocol_head:89,my_protocol_typ:89,my_result_mv:274,my_sensor:280,my_sensor_devic:280,my_sensor_poll_tim:280,my_stack_s:99,my_stat:223,my_stat_sect:223,my_target1:62,my_task:99,my_task_evq:89,my_task_func:99,my_task_handl:89,my_task_pri:99,my_task_prio:99,my_task_rx_data_func:89,my_task_stack:99,my_timer_ev_cb:238,my_timer_interrupt_eventq:238,my_timer_interrupt_task:238,my_timer_interrupt_task_prio:238,my_timer_interrupt_task_stack:238,my_timer_interrupt_task_stack_sz:238,my_timer_interrupt_task_str:238,my_uart:193,myadc:274,myapp1:287,myapp:223,myapp_cmd:220,myapp_cmd_handl:220,myapp_console_buf:130,myapp_console_ev:130,myapp_init:130,myapp_process_input:130,myapp_shell_init:220,mybl:[34,35,46,50,66,73,76,77,236],myble2:[37,38,245],myblehostd:66,mybleprph:[66,239],mybletyp:66,myboard:[45,93],myboard_debug:93,myboard_download:93,mycmd:221,myconn:236,mycor:71,mydata:89,mydata_length:89,mylora:262,mymcu:95,mymfg:70,mymodul:97,mymodule_has_buff:97,mymodule_perform_sanity_check:97,mymodule_register_sanity_check:97,mynewt:[1,3,4,5,6,11,13,20,21,25,30,32,37,38,39,43,44,50,51,53,55,56,57,59,60,61,62,71,78,79,80,82,83,84,86,87,88,97,98,99,100,101,128,129,132,133,134,151,152,173,180,181,182,183,186,187,190,193,205,208,214,216,222,223,224,225,231,234,235,236,238,239,241,243,245,246,248,252,253,254,255,256,257,258,259,260,261,262,263,265,266,268,272,273,274,276,279,280,283,284,285,286,287,288,290],mynewt_0_8_0_b2_tag:[267,268],mynewt_0_8_0_tag:267,mynewt_0_9_0_tag:267,mynewt_1_0_0_b1_tag:267,mynewt_1_0_0_b2_tag:267,mynewt_1_0_0_rc1_tag:267,mynewt_1_0_0_tag:267,mynewt_1_3_0_tag:[57,59,80,82],mynewt_arduino_zero:[254,266,267],mynewt_nord:274,mynewt_stm32f3:235,mynewt_v:[130,214,219,223,225,265,274],mynewt_val_:225,mynewt_val_log_level:225,mynewt_val_log_newtmgr:225,mynewt_val_msys_1_block_count:225,mynewt_val_msys_1_block_s:225,mynewt_val_my_config_nam:225,mynewtl:275,mynewtsan:75,myperiph:[239,248],mypool:90,myproj2:222,myproj:[2,7,12,93,235,239,240,254,256,257,258,259,260,261,267,273,275,276,280,288],myriad:9,myself:10,myseri:[73,76,77],myserial01:66,myserial02:66,myserial03:66,mytask:241,mytask_handl:241,mytask_prio:241,mytask_stack:241,mytask_stack_s:241,myudp5683:66,myvar:65,n_sampl:276,nad_flash_id:174,nad_length:174,nad_offset:174,nak:187,name1:50,name2:50,name:[1,2,4,7,8,10,11,12,20,21,27,29,34,35,37,38,42,43,44,45,47,48,50,51,53,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,90,93,94,95,97,99,100,101,129,130,134,152,154,155,156,159,160,161,164,180,181,186,198,199,200,202,204,205,206,207,208,209,211,215,219,220,221,222,224,227,228,230,235,236,238,241,244,247,249,251,252,253,254,256,257,258,259,260,261,265,266,267,268,269,273,274,275,276,277,280,283,284,286,287],name_is_complet:247,name_len:[154,155,156,161,164,247],namespac:[88,129,214,252],nano2:[43,53,93,261],nano2_debug:[93,261],nano:[255,290],nanosecond:[86,192],nativ:[2,3,7,12,43,50,53,55,59,61,66,190,224,225,235,238,245,257,258,266,273,274,284,290],natur:[93,179],navig:[10,290],nb_data_len:179,nb_hash_entri:179,nb_inode_entri:179,nb_prev:179,nb_seq:179,nbuf:89,nc_num_block:175,nc_num_cache_block:175,nc_num_cache_inod:175,nc_num_fil:175,nc_num_inod:175,ncb_block:179,ncb_file_offset:179,ncb_link:179,ncheck:273,nci_block_list:179,nci_file_s:179,nci_inod:179,nci_link:179,nda_gc_seq:179,nda_id:179,nda_length:179,nda_mag:179,nda_ver:179,ndb_crc16:179,ndb_data_len:179,ndb_id:179,ndb_inode_id:179,ndb_magic:179,ndb_prev_id:179,ndb_seq:179,ndi_crc16:179,ndi_filename_len:179,ndi_id:179,ndi_mag:179,ndi_parent_id:179,ndi_seq:179,nding:251,ndof:276,ndof_fmc_off:276,nearest:257,nearli:10,neatli:247,necessari:[6,24,39,47,57,58,59,89,128,152,179,233,235,244,249,254,262,265,274],need:[4,5,6,7,8,9,10,11,12,14,23,24,32,43,50,52,55,57,58,59,60,61,64,66,80,81,83,84,88,89,90,91,92,93,95,96,97,98,99,128,130,135,140,141,142,152,179,191,194,205,206,208,209,210,211,214,220,222,223,224,225,229,236,238,239,241,244,245,247,249,250,251,252,253,254,256,257,258,259,260,261,265,266,268,269,272,275,277,280,283,284,286],neg:[89,100,179,251],neither:89,ness:190,nest:[91,159],net:[4,7,10,24,51,212,225,244,245,249,251,266,273,274,275,277,279],net_nimble_control:222,net_nimble_host:222,network:[1,9,10,23,27,31,32,55,89,92,222,241,262,266],never:[19,92,97,99,166,179,225,241,244,249],nevq:87,new_bletini:45,new_pool:89,new_slinki:45,newer:6,newest:[140,224,241],newli:[1,10,19,43,128,160,245,252,253,267],newlib:101,newlin:130,newt:[1,3,5,6,7,13,32,56,61,62,73,76,77,80,81,82,83,92,93,94,96,134,222,223,224,225,231,235,237,238,239,240,241,243,244,245,248,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,270,273,274,275,276,277,278,280,282,283,284,285,286,287,288,290],newt_1:[57,60],newt_1_1_0_windows_amd64:60,newt_1_3_0_windows_amd64:59,newt_group:2,newt_host:2,newt_us:2,newtgmr:[81,82,83],newtmgr:[1,7,9,13,57,58,59,63,64,78,79,130,131,133,195,205,217,218,222,224,225,238,273,274,285,290],newtmgr_1:[80,83],newtmgr_1_1_0_windows_amd64:83,newtmgr_1_3_0_windows_amd64:82,newtmgr_shel:214,newtron:[152,180,224,225],newtvm:11,next:[7,8,24,30,71,77,82,85,89,90,99,128,130,132,140,145,154,155,156,161,164,179,195,199,206,210,211,222,225,233,239,240,241,242,244,247,251,252,253,254,257,260,268,272,273,274],next_checkin:[77,283,286],nff:[7,101,135,152,174,175,176,177,178,180,188,224,225,231,265],nffs_area_desc:[10,173,176,177,226],nffs_area_mag:179,nffs_area_max:[176,177],nffs_block:179,nffs_block_cache_entri:179,nffs_block_cache_list:179,nffs_block_mag:179,nffs_cache_block:179,nffs_cache_block_list:179,nffs_cache_inod:179,nffs_close:180,nffs_closedir:180,nffs_detect:[177,179],nffs_detect_fail:[152,173],nffs_dirent_is_dir:180,nffs_dirent_nam:180,nffs_disk_area:179,nffs_disk_block:179,nffs_disk_inod:179,nffs_file_len:180,nffs_flash:188,nffs_flash_area:[10,224,225],nffs_format:[176,179,226],nffs_getpo:180,nffs_hash_entri:179,nffs_id_non:179,nffs_init:[175,176,177,180],nffs_inod:179,nffs_inode_entri:179,nffs_inode_list:179,nffs_inode_mag:179,nffs_intern:173,nffs_mkdir:180,nffs_op:180,nffs_open:180,nffs_opendir:180,nffs_pkg_init:10,nffs_read:180,nffs_readdir:180,nffs_renam:180,nffs_seek:180,nffs_short_filename_len:179,nffs_test:265,nffs_test_debug:265,nffs_test_priv:265,nffs_test_system_01:265,nffs_test_unlink:226,nffs_test_util:265,nffs_unlink:180,nffs_write:180,nhe_flash_loc:179,nhe_id:179,nhe_next:179,ni_filenam:179,ni_filename_len:179,ni_inode_entri:179,ni_par:179,ni_seq:179,nice:[223,272],nie_child_list:179,nie_hash_entri:179,nie_last_block_entri:179,nie_refcnt:179,nie_sibling_next:179,nil:67,nim:251,nimbl:[7,23,24,26,29,66,225,236,239,243,246,247,248,249,250,251,273,274,275,277],nimble_max_connect:10,njb:[200,201,202,203,204],njb_buf:204,njb_enc:202,nlip:217,nmgr:133,nmgr_def_taskstat_read:202,nmgr_err_eok:202,nmgr_jbuf:[200,201,202,203,204],nmgr_o:131,nmgr_shell:[130,225,236],nmgr_shell_in:217,nmgr_shell_out:218,nmgr_shell_pkg_init:225,nmgr_task_init:217,nmgr_transport:218,nmgr_uart:236,nmgr_urart_spe:236,nmxact:11,no_of_sampl:276,no_rsp:28,no_wl:[27,30],no_wl_inita:27,node:[10,21,32,55,154,155,156,161,164,179],nodefault:[199,204],nodup:27,nogdb:[38,47],noinputnooutput:27,non:[7,10,18,19,21,24,27,31,32,84,89,90,99,100,144,148,150,179,182,186,187,190,191,192,193,215,217,218,219,222,225,252,253,262,267,280],none:[4,7,8,12,20,27,30,82,87,93,101,128,179,216,220,221,222,226,229,235,254,258,262,274,280,287,288],nonexist:[160,179],nonsens:265,nonzero:[89,141,142,143,145,146,149,150,190,227,228,230,232,233,250,265],nor:22,nordic:[10,23,93,134,181,185,189,191,238,239,257,259,273,274,276,280,285,290],nordicsemi:[257,259,262,274,280],normal:[2,98,179,229,231,272,276],notat:[55,260],note:[1,2,4,6,7,10,11,12,21,22,23,24,29,32,43,47,50,57,58,59,60,61,66,68,71,80,81,82,83,85,86,87,89,90,91,92,93,94,99,128,130,136,173,187,190,192,195,206,207,208,209,211,214,215,219,222,224,225,235,236,239,241,242,244,245,247,249,251,252,253,254,256,257,258,259,260,261,262,263,266,267,268,269,273,275,276,277,278,280,282,283,284,286,287,290],noth:[11,179,226,252,253,273,274],notic:[7,11,55,61,92,93,180,222,241,244,268,272,273,274],notif:[10,27,28,87,130,210,246,272],notifi:[10,28,210,250,251],notnul:225,nov:8,novelbit:10,now:[2,8,9,10,59,86,89,90,91,93,98,99,128,151,153,157,160,163,166,168,170,179,186,193,222,235,236,239,240,241,244,246,247,248,250,251,252,253,254,257,262,265,267,272,273,274,276,280,284,287,288],nreset:254,nrf51:[24,53,93,134,181,263],nrf51dk:[53,222],nrf51xxx:189,nrf52840pdk:32,nrf52:[4,24,61,93,134,181,185,191,207,238,239,245,255,256,257,262,273,275,277,280,285,287,288,290],nrf52_adc_dev_init:274,nrf52_bleprph_oic_bno055:275,nrf52_blinki:[256,259,261,287],nrf52_bno055_oic_test:[275,277],nrf52_bno055_test:[276,278],nrf52_boot:[236,245,259,274,275,276,277,283],nrf52_hal:93,nrf52_slinki:283,nrf52_thingi:207,nrf52dk:[37,38,53,61,62,93,225,238,244,245,248,256,259,274,275,276,277,283],nrf52dk_debug:[61,93,256],nrf52dk_download:93,nrf52k_flash_dev:[93,185],nrf52pdk:245,nrf52serial:283,nrf52xxx:[48,93,191,257,280],nrf5x:24,nrf:[25,274],nrf_drv_saadc:274,nrf_drv_saadc_config_t:274,nrf_drv_saadc_default_channel_config_s:274,nrf_drv_saadc_default_config:274,nrf_saadc_channel_config_t:274,nrf_saadc_gain1_6:274,nrf_saadc_input_ain1:274,nrf_saadc_reference_intern:274,nrf_saadc_typ:274,nrpa:[19,252,253],nsampl:276,nsec:86,nth:179,ntoh:89,ntohl:89,ntrst:254,nucleo:53,nul:179,num_block:90,num_byt:184,number:[1,8,9,10,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,84,86,87,89,90,91,92,93,98,99,100,101,128,129,139,140,141,151,157,163,168,170,171,172,173,174,175,179,182,186,187,189,190,192,193,195,197,198,199,206,214,215,219,223,224,225,229,236,238,239,241,245,251,252,253,254,256,260,262,266,267,268,272,273,274,276,277,283,286,287],numer:[10,20,22,85,93,128],nvm:254,nxp:[10,134,181],objcopi:[6,10],objdump:6,object:[4,11,48,55,61,81,86,92,93,96,99,132,166,199,201,202,203,208,210,211,250,265,276,279],objsiz:[6,48,222],observ:[14,27,212,245,279],obtain:[10,27,89,91,98,99,179,192,267,273,274],obvious:53,oc_add_devic:275,oc_add_resourc:275,oc_app_resourc:[275,277],oc_get:275,oc_if_rw:275,oc_init_platform:275,oc_main_init:[212,275],oc_new_resourc:275,oc_put:275,oc_resource_bind_resource_interfac:275,oc_resource_bind_resource_typ:275,oc_resource_set_default_interfac:275,oc_resource_set_discover:275,oc_resource_set_periodic_observ:275,oc_resource_set_request_handl:275,oc_serv:[212,236,275,277,279],oc_transport_gatt:236,oc_transport_ip:236,oc_transport_seri:236,occasion:89,occur:[26,27,89,91,100,186,187,190,224,249,250,252,253],occurr:225,ocf:132,ocf_sampl:[7,61],ocimgr:131,ock:211,oct:273,octet:[27,29,31,128],od_init:134,od_nam:208,odd:193,odditi:10,off:[2,10,20,21,31,32,84,87,89,96,97,99,130,134,140,181,182,187,204,206,208,209,213,236,238,239,240,244,245,252,253,256,260,275,277,278,279,280,282,290],off_attr:204,offer:[1,21,132,134,151,184,274],offset1:89,offset2:89,offset:[20,28,71,89,93,100,128,140,148,152,158,162,167,168,170,171,172,174,179,199,222,224,225,276],often:[9,55,93,179,187,190],ohm:274,oic:[7,51,66,132,209,210,280,290],oic_bhd:66,oic_bl:66,oic_seri:66,oic_udp:66,oic_udpconnstr:66,oicmgr:[7,66,131,132,133],okai:10,old:[45,140],older:[10,59,82,258],oldest:[140,145,149,224],olimex:[255,273,285,290],olimex_blinki:260,olimex_stm32:[53,260,286],om1:89,om2:89,om_data:89,om_databuf:89,om_flag:89,om_len:89,om_omp:89,om_pkthdr_len:89,ome:90,omgr:133,omi_block_s:90,omi_min_fre:90,omi_nam:90,omi_num_block:90,omi_num_fre:90,omit:[10,47,224],omp:89,omp_databuf_len:89,omp_flag:89,omp_len:89,omp_next:89,omp_pool:89,on_reset:26,on_sync:26,onboard:[208,209,278,282,287,288,290],onc:[19,29,55,57,61,80,84,86,89,90,91,92,99,128,143,181,190,192,233,235,236,239,240,247,252,255,256,262,267,273,274],one:[1,4,7,8,10,11,12,19,20,21,22,23,27,29,30,31,34,35,39,43,45,50,51,53,57,58,59,61,67,85,87,89,91,92,93,96,98,99,128,129,130,136,137,140,152,165,166,173,174,176,177,179,182,187,190,195,205,206,210,211,220,222,223,224,225,240,241,242,244,245,251,252,253,254,255,256,257,258,259,260,261,262,265,266,267,268,269,272,273,274,276,282,283,286,290],ones:[14,89,98,134,181,205,245,290],ongo:27,onli:[1,2,7,8,10,11,12,14,19,20,24,27,29,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,66,72,80,83,86,87,89,90,92,93,96,97,98,128,129,130,131,134,135,136,138,150,152,154,155,156,158,161,164,165,167,168,173,174,179,187,190,195,205,206,208,209,211,214,219,222,223,224,225,228,229,231,232,234,236,239,240,241,242,247,249,252,254,256,262,263,265,266,267,268,269,273,274,275,276,279,280,284],onlin:[254,280,287,288],onto:[1,20,42,43,47,84,87,89,93,255,257,258,259,260,261,272,273,276,283,286],oob:[10,20,27,29],opaqu:[152,192,205,206,208,210,280],open:[4,8,9,10,12,20,21,38,39,47,55,57,58,59,61,96,132,134,152,153,157,158,160,161,163,164,167,168,169,170,171,172,175,179,207,252,254,257,258,260,261,265,273,278,284],open_test:265,openocd:[12,93,254,257,258,260,261,286],openocd_debug:[257,273],oper:[1,9,12,15,18,20,21,26,31,39,57,58,59,84,89,96,97,98,99,100,130,132,134,152,160,161,162,167,169,173,174,178,179,180,181,182,184,186,193,206,211,223,225,234,244,245,249,250,251,252,253,254,262,265,266,268,269,272,273,276,280],oppos:[31,89,269],opt:4,optim:[1,24,32,37,38,43,50,61,89,93,94,101,134,222,235,241,244,245,248,254,257,258,259,260,261,262,266,273,274,276,280,283,286],optimis:31,option:[2,3,4,6,7,8,10,12,22,23,27,36,37,46,51,55,62,66,72,84,87,90,93,128,132,134,150,151,197,206,208,209,214,222,224,225,226,231,242,244,245,251,254,258,260,262,266,267,268,273,274,276,286],orang:[257,261],order:[1,8,9,10,22,33,55,61,63,85,87,89,90,91,97,99,101,128,129,132,179,190,206,224,225,236,240,241,262,265,268,270,273,274,280,287,288],org:[1,4,10,11,39,57,58,59,61,80,82,101,130,137,252,254,257,258,260,261,265,273,274,280,287,288],organ:[11,134,223,265,267],origin:[11,46,93,128,260,273],os_align:[89,90],os_arch:[61,90,100],os_bad_mutex:91,os_bsp_adc0:274,os_bsp_adc0_config:274,os_callout:[61,84,97,129,238,256,280],os_callout_f_queu:84,os_callout_func:[84,89],os_callout_func_init:84,os_callout_init:[84,97,238,256,280],os_callout_queu:84,os_callout_remaining_tick:84,os_callout_reset:[84,97,238,256,280],os_callout_stop:84,os_cfg:61,os_cli:225,os_cputim:[10,61],os_cputime_delay_nsec:86,os_cputime_delay_tick:86,os_cputime_delay_usec:86,os_cputime_freq:24,os_cputime_freq_pwr2:86,os_cputime_get32:86,os_cputime_init:86,os_cputime_nsecs_to_tick:86,os_cputime_ticks_to_nsec:86,os_cputime_ticks_to_usec:86,os_cputime_timer_init:86,os_cputime_timer_num:[24,86],os_cputime_timer_rel:86,os_cputime_timer_start:86,os_cputime_timer_stop:86,os_cputime_usecs_to_tick:86,os_dev:[61,134,206,207,208,274,278],os_dev_clos:[207,278],os_dev_cr:[134,206,207,208,211,274],os_dev_init_func_t:[134,208],os_dev_init_kernel:274,os_dev_init_primari:207,os_dev_init_prio_default:274,os_dev_open:[207,274,278],os_einv:[89,100,204],os_eno:129,os_error_t:[90,91,98],os_ev:[84,87,89,97,129,130,238,256,280],os_event_fn:[84,87,89],os_event_queu:87,os_event_t_mqueue_data:89,os_event_t_tim:84,os_eventq:[61,84,87,89,97,130,216,238,272,273,274],os_eventq_dflt_get:[26,87,92,99,130,225,238,252,253,256,278,280],os_eventq_dflt_set:273,os_eventq_get:[87,97],os_eventq_get_no_wait:87,os_eventq_init:[87,89,97,130,238,272,273],os_eventq_pol:87,os_eventq_put:[87,130,238],os_eventq_remov:87,os_eventq_run:[26,87,89,92,99,225,238,252,253,256,273,278,280],os_fault:61,os_get_uptime_usec:100,os_gettimeofdai:100,os_heap:61,os_init:[86,99],os_invalid_parm:[91,98],os_main_task_prio:[225,241],os_main_task_stack_s:225,os_malloc:[61,88],os_mbuf:[61,89,217,218],os_mbuf_adj:89,os_mbuf_append:[89,272,274],os_mbuf_appendfrom:89,os_mbuf_cmpf:89,os_mbuf_cmpm:89,os_mbuf_concat:89,os_mbuf_copydata:89,os_mbuf_copyinto:89,os_mbuf_count:89,os_mbuf_data:89,os_mbuf_dup:89,os_mbuf_extend:89,os_mbuf_f_:89,os_mbuf_f_mask:89,os_mbuf_fre:89,os_mbuf_free_chain:89,os_mbuf_get:89,os_mbuf_get_pkthdr:89,os_mbuf_is_pkthdr:89,os_mbuf_leadingspac:89,os_mbuf_off:89,os_mbuf_pkthdr:89,os_mbuf_pkthdr_to_mbuf:89,os_mbuf_pktlen:89,os_mbuf_pool:89,os_mbuf_pool_init:89,os_mbuf_prepend:89,os_mbuf_prepend_pullup:89,os_mbuf_pullup:89,os_mbuf_trailingspac:89,os_mbuf_trim_front:89,os_mbuf_usrhdr:89,os_mbuf_usrhdr_len:89,os_memblock:90,os_memblock_from:90,os_memblock_get:90,os_memblock_put:90,os_memblock_put_from_cb:90,os_membuf_t:[89,90],os_mempool:[61,89,90],os_mempool_byt:90,os_mempool_ext:90,os_mempool_ext_init:90,os_mempool_f_:90,os_mempool_f_ext:90,os_mempool_info:90,os_mempool_info_get_next:90,os_mempool_info_name_len:90,os_mempool_init:[89,90],os_mempool_is_san:90,os_mempool_put_fn:90,os_mempool_s:[89,90],os_mqueu:89,os_mqueue_get:89,os_mqueue_init:89,os_mqueue_put:89,os_msys_count:89,os_msys_get:89,os_msys_get_pkthdr:89,os_msys_num_fre:89,os_msys_regist:89,os_msys_reset:89,os_mutex:[61,91,140,206],os_mutex_init:91,os_mutex_pend:91,os_mutex_releas:91,os_ok:[91,98],os_pkg_init:225,os_san:[61,97],os_sanity_check:[97,99],os_sanity_check_func_t:97,os_sanity_check_init:97,os_sanity_check_regist:97,os_sanity_check_reset:97,os_sanity_check_setfunc:97,os_sanity_task_checkin:97,os_sch:61,os_sched_get_current_t:241,os_sched_get_current_task:[85,97,241],os_sem:[61,92,98,273],os_sem_get_count:98,os_sem_init:[10,92,98,273],os_sem_pend:[10,92,98,273],os_sem_releas:[10,92,98,273],os_sem_test_bas:230,os_sem_test_case_1:230,os_sem_test_case_2:230,os_sem_test_case_3:230,os_sem_test_case_4:230,os_sem_test_suit:230,os_settimeofdai:100,os_stack_align:[241,272,273,274],os_stack_t:[97,99,217,238,241,272,273,274],os_start:99,os_stime_t:100,os_sysview:288,os_task:[61,85,87,91,92,97,99,238,241,272,273,274],os_task_count:99,os_task_flag_evq_wait:99,os_task_flag_mutex_wait:99,os_task_flag_no_timeout:99,os_task_flag_sem_wait:99,os_task_func_t:[97,99],os_task_info:99,os_task_info_get_next:99,os_task_init:[92,97,99,238,241,272,273],os_task_max_name_len:99,os_task_pri_highest:99,os_task_pri_lowest:99,os_task_readi:99,os_task_remov:99,os_task_sleep:99,os_task_st:99,os_task_stack_defin:99,os_task_state_t:99,os_test:61,os_test_restart:233,os_tick_idl:[189,254,257,280],os_tick_init:189,os_tick_per_sec:10,os_ticks_per_sec:[10,84,97,100,129,189,208,238,241,256,272,273,274,280],os_tim:[61,100,265],os_time_adv:100,os_time_delai:[10,99,100,208,238,240,241,272,274],os_time_get:100,os_time_max:100,os_time_ms_to_tick:100,os_time_t:[84,87,97,99,100,189,206,208],os_time_tick_geq:100,os_time_tick_gt:100,os_time_tick_lt:100,os_timeout:[91,98,273],os_timeout_nev:[92,100,207,278,280],os_timeradd:100,os_timersub:100,os_timev:[100,265],os_timezon:[100,265],os_wait_forev:[87,92,99,238,241,272,273],osmalloc:88,ostask:99,ostick:100,osx:[235,240],ota:236,otg1:260,otg2:[260,286],other:[1,6,10,11,20,22,24,29,31,50,55,61,86,87,89,90,92,93,94,97,98,99,100,128,129,130,134,152,153,161,164,169,173,174,176,179,184,187,205,208,210,214,222,223,225,235,238,241,244,245,246,247,249,250,254,255,256,257,263,265,267,272,274,275,276,277,280,282,287,288],otherwis:[10,89,90,92,99,142,144,147,186,190,267,268],oti:99,oti_cswcnt:99,oti_last_checkin:99,oti_nam:99,oti_next_checkin:99,oti_prio:99,oti_runtim:99,oti_st:99,oti_stks:99,oti_stkusag:99,oti_taskid:99,oui:[19,262],our:[10,20,55,89,93,222,223,235,236,240,241,244,247,252,253,255,256,265,268,272,273,274,283,286],our_id_addr:[30,248],our_id_addr_typ:248,our_key_dist:27,our_ota_addr:[30,248],our_ota_addr_typ:[30,248],out:[8,9,11,20,21,22,23,26,27,61,80,81,82,84,89,95,99,128,130,136,140,141,144,146,160,161,173,180,181,182,198,200,201,202,203,222,226,233,244,246,248,252,253,255,260,266,273,285],out_cpha:190,out_cpol:190,out_data:[162,163],out_dir:[161,162,164],out_fil:[160,162],out_id_addr_typ:30,out_len:[157,162,163,171],out_nam:[136,156,162],out_name_l:156,out_name_len:[156,162],out_off:89,out_tick:100,outdat:58,outfil:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],outgo:218,outlin:5,output:[1,7,10,12,21,22,27,30,34,35,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,54,57,58,59,62,69,73,75,76,77,81,88,93,99,100,128,129,181,186,193,205,222,224,226,235,238,254,256,257,258,260,261,262,265,266,273,276,280,284,287],outsid:[20,21,89],outweigh:89,over:[10,20,21,22,23,27,29,31,65,66,67,68,69,70,71,72,73,74,75,76,77,89,128,133,134,136,140,142,150,187,193,205,222,236,241,249,255,256,258,262,266,272,273,275,276,277,279,282,285,287,290],overal:[10,24,89,99,173],overhead:89,overlap:[20,179],overrid:[50,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,93,205,222,223,236,245],overridden:[23,225,245],oversampl:274,overview:[128,276,277,280],overwrit:[6,49,50,59,60,82,83,93,130,179,254,263,266],overwrite_many_test:265,overwrite_one_test:265,overwrite_three_test:265,overwrite_two_test:265,overwritten:[128,172,179],own:[2,11,19,20,39,57,58,59,61,87,91,92,96,98,99,135,179,190,205,222,223,242,243,244,273,274],own_addr_t:[252,253],own_addr_typ:[27,66,252,253],owner:[87,91,269],ownership:[91,179,273,274],pacakg:244,pacif:100,pack:[4,55,81,89,239,257,259,266,276,280,283],packag:[6,9,10,11,23,24,26,34,39,40,41,43,45,50,51,52,53,55,56,58,59,60,79,83,87,92,94,99,128,129,131,132,134,137,138,152,162,173,181,182,195,196,199,207,208,211,212,213,214,222,223,230,231,232,235,238,245,255,256,257,262,264,267,268,274,277,278,279,290],package1:205,package1_log:205,package2:205,package2_log:205,packet:[20,21,27,29,187,214,218,252,262],packet_data:89,pacman:[7,59],pad:[89,128],page:[1,4,5,6,7,8,10,20,22,57,58,60,80,81,83,93,101,135,180,187,188,206,207,208,209,235,240,242,244,246,250,252,253,255,274],page_s:135,pair:[20,21,22,27,66,128,129,179,199,204,225,248,250],pakcag:214,panel:12,paradigm:89,param:[27,214,219,250],param_nam:214,paramet:[1,10,20,26,27,28,30,61,66,72,84,86,87,89,90,91,97,98,99,100,136,140,150,182,186,187,189,190,192,193,194,205,207,208,214,225,236,247,249,250,251,252,253,265],parameter_nam:225,parameter_valu:225,parent:[90,154,155,156,161,164,166,172,179],parenthes:89,pariti:193,parlanc:11,parmaet:27,parmet:[27,28],pars:[55,197,214,226,229,252,265],part:[10,22,29,89,95,128,140,168,173,174,179,180,222,247,248,251,273,274,279],parti:[252,254,266],partial:[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,128,173,174],particular:[4,10,20,47,61,89,92,93,96,97,128,130,134,152,181,190,192,199,233,250,252,253],particularli:263,partit:[20,93,128,173,179,222],partner:10,pass:[1,7,10,12,20,27,61,84,86,87,89,90,91,97,98,99,130,134,135,139,140,150,160,163,171,179,186,187,190,192,193,199,206,207,208,210,214,217,227,228,229,230,247,251,252,253,265,274,280],passiv:[10,27],passkei:[10,20,22,27],password:[11,58,80,245,269],past:[20,89,274],patch:[257,258,261],path:[2,4,6,10,11,12,29,50,57,58,59,60,61,66,80,81,82,83,93,94,152,159,160,161,162,166,169,171,172,225,267,273,274],pathloss:29,pattern:[27,93,241],payload:[89,132,133,187],pc6:286,pc7:286,pca100040:245,pca:[239,259,274],pcb:273,pci:[134,181],pcmcia:[134,181],pdata:187,pdf:[235,286],pdt:[100,265],pdu:[20,27],peek:241,peer:[10,22,28,66,190,239,249,251,252,253],peer_addr:[27,30,66,247],peer_addr_typ:[27,30,66,247],peer_id:66,peer_id_addr:248,peer_id_addr_typ:248,peer_nam:[10,66,239],peer_ota_addr:248,peer_ota_addr_typ:248,pem:[37,46],pencil:10,pend:[20,84,87,91,98,128,187,239],per:[10,11,19,89,91,128,129,173,182,186,190,193,223,241,265,268,273],perfom:128,perform:[3,4,5,9,10,11,12,20,22,25,27,36,57,58,59,64,80,81,82,89,90,92,93,97,99,101,128,130,135,151,152,166,179,187,192,211,222,225,235,239,249,254,256,257,262,268,272,273,274,275,276,277,280],perhap:267,period:[9,10,19,22,27,84,97,189,194,238,241],peripher:[9,10,20,21,24,26,29,30,93,96,134,181,182,187,190,223,239,243,244,247,250,251,252,272,273,274],perman:[71,128,179,222,239,247,250],permiss:[273,274],permit:[20,251,254,280,287,288],persist:[10,128,151],perspect:222,pertain:250,petteriaimonen:101,phdr:89,phone:[10,22,31],php:55,phy:[21,27],phy_opt:27,physic:[21,27,29,66,130,183,186,193],pick:[85,92,205,252,253],pictur:[235,257],pid:258,piec:[21,93,273],pig:242,pin:[7,8,20,93,96,99,134,181,183,186,187,190,191,193,206,235,238,256,257,260,262,266,273,274,276,280,286],ping:92,pinout:95,pipe:10,piqu:290,pitfal:89,pkcs15:128,pkg1:224,pkg2:224,pkg:[1,7,11,39,43,50,53,55,57,58,59,61,94,95,101,130,134,135,136,151,152,180,181,205,207,214,223,224,225,236,238,244,256,265,273,274,275,280],pkg_init_func1_nam:225,pkg_init_func1_stag:225,pkg_init_func2_nam:225,pkg_init_func2_stag:225,pkg_init_func:225,pkg_init_funcn_nam:225,pkg_init_funcn_stag:225,pkg_test:232,pkga_syscfg_nam:225,pkga_syscfg_name1:225,pkga_syscfg_name2:225,pkgn_syscfg_name1:225,pkt:273,pkthdr_len:89,pkts_rxd:89,place:[3,55,61,87,100,101,128,140,168,187,190,222,225,231,236,240,241,244,245,251,252,253,260,268,273,282],plai:[10,12,21,282],plain:[222,258,268],plan:[2,10,134,214],platform:[2,7,9,11,12,23,24,57,58,59,66,80,81,82,84,92,93,94,96,134,182,187,190,192,231,239,241,244,254,256,257,258,260,261,266,273,274,276,283,284,285,286],pleas:[10,39,57,58,59,94,95,206,210,211,223,235,240,254,255,267,274,280,287,288],plenti:[241,273],plist:61,plu:[89,156,179,187],plug:[8,180,235,260,261,273,274],plumb:272,pmode:276,point:[2,4,6,10,31,85,89,91,93,95,99,101,128,130,134,141,142,143,144,145,147,148,149,150,161,162,164,179,190,206,244,249,250,252,253,273,274,275],pointer:[67,84,85,86,87,89,90,91,93,98,99,100,130,134,140,141,142,150,153,155,156,157,158,160,162,163,168,170,171,172,179,180,182,187,190,192,197,198,199,205,206,207,208,211,214,215,216,219,220,226,241,249,250],poke:274,polici:[27,267],poll:[10,87,92,210,276,280],poll_du:276,poll_dur:276,poll_interv:276,poll_itvl:276,poller:[206,210,211,280],pong:92,pool:[73,80,92,262,277,284],popul:[1,7,12,50,62,100,175,179,231,255,266,282,285,290],port:[2,12,66,92,130,134,186,193,205,223,236,245,254,256,257,258,259,260,261,266,273,276,280,283,284,285,286,290],portabl:[134,181],portingto:94,portion:[128,146,187,272,274],posit:[89,100,128,158,168,171,194,260],posix:59,possibilti:[287,288],possibl:[10,21,22,24,27,28,30,32,36,53,89,91,100,128,134,152,173,174,179,181,182,205,222,223,251,267,276,287],post:[49,84,89,134,238,244],potenti:[96,222,268],pour:[58,81],power:[2,9,10,20,21,22,27,29,31,55,93,96,130,134,181,182,190,191,208,236,239,245,254,259,260,262,266,275,276,277,278,280,283,286],ppa:4,pre:[4,9,205,223,267,268],precaut:249,prece:89,preced:23,precis:[6,20],predict:241,preempt:[91,92,98,99],preemptiv:[92,99,241],prefer:[3,27,29,138,239,249,273],preference0x01:27,prefix:[61,179,209,225,274],preload:190,prepar:[20,257,259,262,274],prepend:89,preprocessor:[214,223],prerequisit:12,presenc:[93,179,247,252,253,267],present:[1,10,89,93,128,130,179,195,207,222,245,260,265,274],preserv:89,press:[8,10,12,98,238,241,244,266,273,276,288],presum:[89,262],pretti:[10,274],prev:[99,179],prev_ind:250,prev_notifi:250,prevent:[91,92,128,169,249],previ:[248,250],preview:[242,245],previou:[21,56,57,58,59,78,79,80,81,82,99,128,179,199,224,225,244,245,256,267,272],previous:[6,12,57,58,59,60,80,81,82,83,190,236,248,270,274,276],prevn:[248,250],pri:[77,182,273,283,286],primari:[27,93,128,132,166,239,251,253,272],primarili:101,primary_phi:27,primo:[255,272,273],primo_boot:257,primo_debug:257,primoblinki:257,print:[48,57,58,59,62,129,130,136,154,155,156,161,164,171,193,214,224,226],print_statu:171,print_usag:197,printabl:198,printf:[101,136,226,229],prio:[97,99,189,217],prior:[22,24,49,89,92,128,166,175,179,190,192,262],prioriti:[10,77,85,87,91,92,98,99,134,173,182,189,225,238,245,274,290],priv:27,privaci:[19,21,27],privat:[19,22,32,37,46,57,66,80,128,252,253],privileg:2,prng:10,pro:[10,241,254,257],probabl:[7,10,93,246,269,273],probe:[187,257,266,280],problem:[7,98,128,161,222,224],proce:[3,6,11,128,233,254,257,258,259,260,261,265,266,273,283,286],procedur:[6,11,16,19,20,22,27,28,64,75,80,81,82,128,179,180,222,276,279],proceed:[7,246,252,253],process:[3,6,9,10,20,22,26,27,31,61,84,85,87,89,93,99,128,130,131,179,211,212,216,222,223,225,235,236,238,241,252,253,275,278,279,280,287,288],process_data:169,process_rx_data_queu:89,processor:[4,9,89,99,134,181,182,186,241,254,260,280,287,288],produc:[98,128,223,229,258],product:[10,55,96,174,186,209,245,273,286],profil:[14,15,16,17,21,27,28,31,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,244,254,283,285,286],profile01:[65,67,68,69,70,71,72,73,74,75,76,77],profile0:77,program:[4,6,8,12,23,85,128,130,188,191,235,241,254,256,257,259,262,266,274],programat:130,programm:[258,287,288],programmat:[137,280],progress:[7,10,20,128,134,135,179,190,243],prohibit:167,project:[3,6,8,11,33,34,39,40,41,44,49,50,52,55,57,58,59,61,63,88,99,101,128,129,130,135,136,138,151,176,177,181,195,205,223,230,231,238,240,241,242,248,265,269,270,275,276,280,281,282,287,290],prompt:[7,8,11,12,47,58,59,93,244,254,256,257,258,259,260,261,273,276,280],prone:251,proper:[134,274],properli:[24,61,92,97,241,245,249,272,273,274],properti:[12,19,31,59,93,128,133,173,174,179,205,235,246,257],proport:179,propos:10,propper:273,prot_length:89,prot_tif:89,prot_typ:89,protcol:89,protect:[22,88,128,140],protocol:[10,14,20,21,28,61,66,89,128,132,133,187,277,279,282,285],prototyp:[96,193,225,252,253],provid:[1,2,7,9,10,11,12,19,20,21,22,27,30,31,37,39,45,50,57,58,59,66,70,71,72,75,80,84,86,88,89,90,91,92,93,95,96,97,99,100,128,130,134,135,136,140,151,152,173,181,186,187,190,192,197,206,209,211,212,214,223,231,234,236,246,252,253,254,262,265,266,267,268,273,274,279],provis:[10,21,32],provision:[10,31],proxi:[21,31],pseln:274,pselp:274,pset:190,psm:[10,27],psp:[254,258],pst:[68,100,265],pth:260,ptr:193,public_id:27,public_id_addr:30,public_target_address:29,publish:[10,22],pull:[11,49,80,82,87,89,134,186,238,256,260],pulldown:186,pullup:[89,186],purpos:[4,22,50,55,93,97,128,181,186,205,208,210,222,223,241,249,262,274,280],push:[10,242],put:[1,2,7,43,61,80,82,87,89,90,91,93,98,99,100,133,182,241,247,252,253,265,274],putti:[8,256,266,276],pwd:[2,11],pwm:[9,10],pwr:[258,260],px4:4,python:[33,63],qualifi:249,qualiti:281,quat:276,queri:[9,19,50,55,57,58,59,61,62,89,133,155,156,157,158,171,179,206,208,223,247,276,284],question:244,queu:[20,84,87,193,238],queue:[26,61,84,86,89,92,97,98,99,130,179,192,211,214,216,218,225,236,252,253,272,278,280,282,290],quick:[2,3],quickli:[100,181,241,274,276,279,280,282],quickstart:[2,241],quiet:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],quit:[19,93,244,247,252,253,254,257,258,260,261,287],quot:66,r_find_n:211,r_lock:211,r_match_:211,r_regist:211,r_unlock:211,radio:[21,24,245],raff:81,rais:91,ram:[48,93,95,173,182,222,244,254,273,274,275],ram_siz:93,ran:97,rand:[10,27],random:[19,20,25,27,30,66,245,251,252,253,272],random_id:27,random_id_addr:30,randomli:19,rang:[9,20,21,29,89,101,179,197,262],rare:89,rate:[10,66,84,130,211,212,245,262,276,279,280],rather:[10,14,20,93,100,101,128,152,166,222,274],raw:[11,57,58,59,80,81,82,130,173,179,225,226,274],rb_bletini:50,rb_blinki:[43,50],rb_blinky_rsa:43,rb_boot:43,rbnano2_blinki:261,rbnano2_boot:261,reach:[97,192],read:[4,6,7,11,12,14,18,19,20,23,27,28,55,61,64,65,68,73,76,77,80,81,82,87,89,99,128,129,130,134,135,136,140,142,145,146,150,152,153,154,155,156,158,160,161,163,164,168,169,171,179,184,186,187,192,199,204,205,210,211,212,213,225,226,235,236,238,239,241,248,250,251,252,253,254,255,258,261,262,265,266,267,272,273,274,275,276,277,279,282,285,287,288],read_acceleromet:280,read_cb:280,read_chr:249,read_config:[153,160,163],read_part1_middl:168,read_rsp_rx:76,read_rsp_tx:76,read_sensor_interv:280,read_test:265,read_type_req_rx:76,read_type_req_tx:[76,236],read_type_rsp_rx:[76,236],read_type_rsp_tx:[76,236],readabl:[245,269],readdesc:7,readdir_test:265,reader:[265,272,274],readi:[10,85,87,99,130,193,199,241,254,273,287],readili:134,readm:[7,11,55,61,93,244,265],readnow:61,real:[1,7,9,10,87,92,100,130,179,199,234,238,244,251,280,287],realist:265,realli:[10,89,274],rearm:84,rearrang:89,reason:[10,20,26,27,89,90,128,191,241,248,250,262,265,267],reassembl:21,rebas:11,reboot:[7,10,71,128,191,222,224,239,275,277],reboot_log:72,reboot_log_flash_area:[224,225],reboot_start:278,rebuild:[10,32,61,82,278],rec0:128,rec1:128,rec2:128,recal:[249,267],receiv:[10,14,20,27,29,31,55,81,89,130,131,136,187,190,193,206,211,214,217,220,236,247,250,251,258,262,280,283,286],recent:[179,257],recip:6,recipi:29,reclaim:179,recogn:[55,179,274],recommend:[3,4,7,10,12,57,58,80,81,89,130,188,207,208,214,224,225,236,238,247,251,257,261,263,276,282,287],reconfigur:[190,193,278],reconnect:249,record:[128,179,208,223,231,288],recov:128,recover:128,recreat:268,recur:194,recurs:[55,61,90,169],red:[27,28,235,258,260,286],redbear:[255,290],redefin:224,redistribut:[55,254,267,280,287,288],redo:10,reduc:[9,22,24,31,87,101,132,205,236,238,264],redund:222,reenter:263,ref0:67,refer:[7,8,10,18,22,23,29,55,67,93,166,169,179,190,209,215,219,222,242,247,252,253,254,256,260,266,273,274,276,286],referenc:[1,179,186],reflect:248,reformat:179,refrain:26,refresh:[2,49,242,254],refus:[280,287],regard:[173,174,265,273,274],regardless:41,region:[10,89,93,128,167,173,174,179],regist:[10,23,75,85,89,94,129,131,134,138,152,162,165,181,182,187,196,205,206,210,212,215,217,219,220,221,225,241,249,251,273,274,280],register_:210,registr:[17,180,223,249,280],registri:[89,208],regress:[227,228,230,231,232],regular:[89,155,265],reject:[20,265],rel:[10,89,92,148],relai:[21,31],relat:[10,27,31,43,135,222,247,250,254,262,280,287,288],relationship:[27,98],releas:[3,4,7,31,49,56,78,79,89,90,91,92,98,134,186,187,214,225,254,266,267,268],release_not:[7,11],relev:[95,128,134,186],reli:[1,7,55,225],reliabl:[10,21,128,151,173,252,253,268],reload:10,remain:[93,163,169,179,222,226,229,241,249],remaind:[93,179,229,247,265,267],rememb:[2,41,80,82,91,254,272],remind:254,remot:[1,7,9,12,20,27,28,49,55,66,78,80,81,82,132,187,235,236,238,239,245,254,255,256,266,273,274,280,282,284,285,290],remov:[2,4,6,27,35,45,60,83,86,87,89,90,98,99,130,136,179,222,249,254,280],renam:[10,166],rename_test:265,repeat:[2,11,20,187,240,249],repeatedli:[29,128],replac:[4,6,93,95,101,195,222,225,226,229,240,254,256,272,283,286],repli:27,repo814721459:55,repo:[1,6,7,10,11,41,55,57,61,80,93,134,152,222,235,242,244,254,256,257,258,259,260,261,262,265,266,269,273,274,275,276,280,283,284,286,287,288],repop:7,report:[1,4,6,10,20,93,182,193,223,226,229,254,258,265,273,280,287,288],reposistori:7,reposit:168,repositori:[1,4,11,12,40,41,44,49,51,52,57,61,80,134,235,242,243,244,246,254,255,262,266,270,273,282,285,290],repres:[1,10,12,61,87,89,98,100,128,130,159,179,206,208,210,211,214,241,251],represent:[128,132],reproduc:[1,61,128,180,252,253],req_api:[61,130,205],req_len:89,request:[12,20,27,66,67,74,78,89,91,93,98,128,132,133,136,140,163,179,191,209,210,212,214,222,236,248,249,254,258,260,262,267,268,272,274,275,279,280,283,286],requir:[1,2,4,6,9,11,20,24,30,31,53,59,61,66,80,82,87,89,90,92,94,95,96,98,128,130,132,135,152,162,173,174,179,192,205,207,214,222,223,224,225,228,235,236,238,241,244,247,249,254,257,261,262,265,267,268,272,273,274,276,278,279,280,290],res:275,reserv:[20,89,93,96,141,143,179,206,241,262],reserved16:179,reserved8:179,reset:[25,64,78,80,81,82,84,97,131,132,191,222,233,236,244,245,248,257,258,259,261,274,276,280,287,288],reset_cb:26,reset_config:254,reset_handl:[93,260],resid:[96,128,174,179,240,251,273],resign:[57,58,59],resist:274,resistor:[238,274],resolut:[22,86,192,223,274],resolv:[1,19,20,22,27,32,55,66,81,224,235,252,253,267],resourc:[9,20,29,61,88,91,98,133,209,210,212,214,235,238,254,275,277,279,280,286,287,288],respect:100,respond:[17,25,222,247,249,251,272,273],respons:[10,15,20,28,29,69,85,90,92,130,132,136,212,222,241,247,249,266,273,279,283,284,286],rest:[1,10,46,61,89,179,197,199,226],restart:[2,128,129,140,179,191,254],restor:[10,129,173,176,177,179,257,259,262,274],restrict:[128,140,173,174,179,214,225,249,250],restructuredtext:10,result:[10,12,20,58,62,89,100,160,161,174,179,198,206,223,225,229,231,251,258,265,272,273,274],resum:[21,99,128,179,247,250],resynchron:49,retain:[128,179,225,250],retent:182,retransmit:31,retreiv:133,retri:[261,262],retriev:[57,80,87,89,100,132,152,154,155,156,157,158,161,163,164,171,174,206,208,244,282],reus:[55,81,128,225],reusabl:55,rev:276,revdep:[1,50,62],revers:[1,23,50,62,128,179,249,260],revert:[128,239],review:[10,222,247,265],revis:[4,197,276],revision_num:[267,268],revisit:[244,250],rewrit:179,rewritten:179,rfc:[68,199,265],ribbon:[260,286],rigado:[48,259,274],right:[2,3,10,55,61,129,242,247,260,274],rimari:251,ring:98,rise:186,ristic:251,rite_fil:152,robust:151,role:[10,20,21,30,31,98,249],room:[89,179,241],root:[2,4,8,31,80,136,165,179,235,267],rotat:166,rotate_log:166,routin:[101,129,140,141,143,162,180,199,230,273],rpa:[19,27],rpa_pub:[27,66],rpa_rnd:[27,66],rsa2048:128,rsa:128,rsp:27,rssi:[27,29,245],rtc:9,rto:[55,92,241],rtt:[10,130,289,290],rtt_buffer_size_down:287,rubi:[11,55,58],rule:[225,258,265],run:[2,3,4,5,6,8,9,11,23,24,30,34,39,41,43,50,52,55,57,58,59,60,61,64,66,67,77,78,80,81,82,83,84,85,86,87,89,91,92,93,96,97,98,99,128,129,131,132,135,136,152,160,161,179,192,212,214,220,222,224,232,233,234,235,236,239,240,241,244,245,252,253,255,257,258,259,260,261,262,265,266,273,274,275,276,277,278,280,283,285,286,290],runner:12,runtest:[7,131,236],runtest_newtmgr:236,runtim:[25,77,99,254,266,273,283,286],runtimeco:[57,58,59,80,81,82,235,254,266,267,274],rwx:93,rwxr:[80,82],rx_cb:130,rx_data:273,rx_func:193,rx_off:273,rx_phys_mask:27,rx_power:27,rxbuf:190,rxpkt:89,rxpkt_q:89,s_cnt:223,s_dev:206,s_func:206,s_hdr:223,s_itf:206,s_listener_list:206,s_lock:206,s_map:223,s_map_cnt:223,s_mask:206,s_name:223,s_next:[206,223],s_next_run:206,s_pad1:223,s_poll_rat:206,s_size:223,s_st:[206,280],s_type:206,saadc_config_irq_prior:274,saadc_config_oversampl:274,saadc_config_resolut:274,sad:280,sad_i:280,sad_x:280,sad_x_is_valid:280,sad_y_is_valid:280,sad_z:280,sad_z_is_valid:280,safe:[90,152],safeguard:92,safeti:249,sai:[10,61,89,99,254,266,267,268,273],said:[186,274],sam0:254,sam3u128:[257,259,262,274,280],samd21:[254,266],samd21g18a:254,samd21xx:254,samd:254,same:[6,10,12,22,29,34,37,47,51,59,61,78,89,91,93,94,98,128,130,151,173,179,187,211,222,223,224,225,226,235,238,240,241,247,249,250,255,257,259,262,267,268,269,274,275],sampl:[1,12,21,30,61,89,94,134,212,222,225,274,275,277,279,280,285],sample_buffer1:274,sample_buffer2:274,sample_cmd:221,sample_cmd_handl:221,sample_command:219,sample_modul:[219,221],sample_module_command:219,sample_module_init:219,sample_mpool:219,sample_mpool_help:219,sample_mpool_param:219,sample_target:53,sample_tasks_help:219,sample_tasks_param:219,sane:99,saniti:[77,92,99,244],sanity_interv:97,sanity_itvl:[97,99],sanity_task:97,sanity_task_interv:97,satisfactori:267,satisfi:[179,268],sattempt_stat:223,save:[12,31,49,50,71,100,129,130,187,208,241,249],saw:250,sbrk:[93,257,258,259,260,261],sc_arg:97,sc_checkin_itvl:97,sc_checkin_last:97,sc_cmd:[214,215,219,220,221,273],sc_cmd_f:214,sc_cmd_func:[214,215,219,220,221,273],sc_cmd_func_t:214,sc_func:97,sc_next:152,sc_valtyp:206,scalabl:[151,179],scale:31,scan:[10,15,21,24,26,27,29,179,245,247,275,277],scan_interv:27,scan_req:27,scan_req_notif:27,scan_result:266,scan_rsp:27,scan_window:27,scannabl:[27,30],scenario:[22,98,195],scene:31,schedul:[9,10,24,84,87,92,96,99,100,241],schemat:[93,286],scheme:[10,19,29,93],scientif:21,sck_pin:[135,136],scl:[187,276],sco:20,scope:[12,89,241],scratch:[93,128,140,141,143,222],screen:[8,262],script:[7,42,61,137,139,260],scroll:[12,236,248],sd_get_config:[206,208],sd_read:[206,208],sda:[187,276],sdcard:136,sdk:[45,53,225],search:[12,87,94,134,176,179,211,244,254,260,267,275,280,287,288],searchabl:134,sec000:128,sec125:128,sec126:128,sec127:128,sec:[276,280],second:[10,22,26,27,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,89,90,93,97,99,100,128,140,194,214,222,235,240,241,247,252,253,256,260,265,272,273,274,276,280],secondar:251,secondari:[27,71,93,128,239,251,273],secondary_phi:27,secret:[22,27],section:[1,5,6,7,10,11,12,14,24,25,29,30,61,89,92,93,99,128,179,208,222,224,225,236,239,241,243,247,250,251,254,255,266,267,268,274,282,284,285],sector:[128,140,141,146,148,149,150,179,184,260],sector_address:[135,184],secur:[10,21,128,222,251,269,272],see:[2,4,5,6,7,8,10,11,12,21,22,23,24,33,36,43,55,57,58,59,61,63,64,66,80,81,82,87,89,91,92,93,96,99,128,137,147,160,181,187,190,199,205,206,207,208,209,210,211,212,213,214,223,224,225,235,236,239,240,241,242,244,245,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,263,266,267,268,269,272,273,274,275,276,277,279,280,282,283,285,286,287,288],seek:[89,168,179],seem:[10,247,274],seen:[90,185,188,267,290],segger:[130,239,257,259,262,266,274,276,280,283,289,290],segger_rtt:10,segger_rtt_conf:287,segment:[21,89,275],sel:286,select:[4,10,12,19,21,55,59,179,186,190,206,214,254,256,257,258,260,275,277,286,288],selector:206,self:[3,30,94,252,253,265],selftest:265,sem:98,sem_token:98,sema:273,semant:250,semaphor:[10,92,99,273],semi:273,send:[3,10,14,20,27,28,31,38,42,47,64,66,67,69,74,78,80,81,82,89,130,132,133,187,190,193,212,234,235,240,247,255,272,274,279,284,290],send_pkt:89,sender:247,sens:[20,128,222,274],senseair:[272,273],senseair_cmd:273,senseair_co2:[272,273],senseair_init:273,senseair_read:[272,273],senseair_read_typ:[272,273],senseair_rx_char:273,senseair_shell_func:273,senseair_tx:273,senseair_tx_char:273,sensi:275,sensibl:225,sensor:[9,31,134,223,290],sensor_accel_data:280,sensor_callout:280,sensor_cfg:[206,208],sensor_cli:[213,276,277,280],sensor_cr:[207,276,278],sensor_data_func_t:[208,210],sensor_data_funct_t:208,sensor_dev_cr:207,sensor_devic:206,sensor_driv:[206,208],sensor_ftostr:280,sensor_g:206,sensor_get_config_func_t:[206,208],sensor_get_itf:208,sensor_in:206,sensor_init:[206,208],sensor_itf:[206,207,208],sensor_itf_i2c:[206,207],sensor_itf_spi:206,sensor_itf_uart:206,sensor_listen:[206,210,280],sensor_lo:206,sensor_mg:211,sensor_mgr_find_next_bydevnam:[211,280],sensor_mgr_find_next_bytyp:211,sensor_mgr_l:211,sensor_mgr_lock:211,sensor_mgr_match_bytyp:211,sensor_mgr_regist:[206,208,211],sensor_mgr_unlock:211,sensor_mgr_wakeup_r:[211,280],sensor_nam:276,sensor_o:[212,275,276,277,279,280],sensor_offset:276,sensor_oic_init:[212,275],sensor_oic_obs_r:[212,279],sensor_r:[206,210],sensor_read:[206,210],sensor_read_func_t:[206,208],sensor_register_listen:[210,280],sensor_s:206,sensor_set_driv:[206,208],sensor_set_interfac:[206,208],sensor_set_poll_rate_m:[206,211,280],sensor_set_type_mask:[206,208],sensor_shel:276,sensor_timestamp:206,sensor_type_acceleromet:[206,207,208,278,280],sensor_type_al:206,sensor_type_eul:[208,278],sensor_type_grav:[208,278],sensor_type_gyroscop:[206,208,278],sensor_type_light:206,sensor_type_linear_accel:[208,278],sensor_type_magnetic_field:[206,208,278],sensor_type_non:206,sensor_type_rotation_vector:[208,278],sensor_type_t:[206,208,210,211,280],sensor_type_temperatur:[206,208],sensor_type_user_defined_6:206,sensor_un:[206,210],sensor_unregister_listen:[210,280],sensor_value_type_float:[206,208],sensor_value_type_float_triplet:[206,208],sensor_value_type_int32:206,sensor_value_type_int32_triplet:206,sensor_value_type_opaqu:206,sensor_value_type_temperatur:208,sensornam:[206,207,208,209,276,278,280],sensorname_cli:208,sensorname_ofb:276,sensors_o:277,sensors_test:[275,276,278,279],sensors_test_config_bno055:278,sent:[20,29,130,179,187,190,193,214,249,251,262],sentenc:[62,242],sep:[4,81,82],separ:[20,26,34,35,50,51,66,128,134,176,179,197,205,222,223,249,252,253,254,257,258,260,261,262],seper:287,sequenc:[92,128,130,173,179,226,229],sequenti:[173,174,179],seri:[128,159,191,251,290],serial:[66,87,128,129,130,132,133,134,140,182,187,190,223,236,238,239,257,261,262,273,275,276,277,284,285],serror_stat:223,serv:[18,55,93,140,209,222,275],server:[10,12,14,18,20,21,27,31,133,209,210,212,222,242,251,262,272,275,277,279,280],servic:[10,16,17,21,27,28,29,31,92,96,134,181,234,247,248,249,250,266,268,273,275],service_data_uuid128:[27,29],service_data_uuid16:29,service_data_uuid32:[27,29],sesnor:280,session:[12,38,39,47,55,57,58,59,61,93,254,257,258,260,261,287],set:[1,2,7,8,9,12,19,20,23,24,27,28,29,31,32,34,36,37,39,50,53,55,56,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,89,96,97,98,99,100,128,129,130,134,135,145,152,153,157,160,162,163,167,170,173,175,176,177,179,181,186,187,189,190,192,193,194,199,207,209,211,212,213,214,215,219,220,221,222,223,231,235,238,239,241,245,248,249,252,253,254,255,257,258,259,260,261,262,263,265,266,267,268,269,272,274,276,277,279,280,282,283,285,286,287],setting1:224,setting2:224,settl:25,setup:[11,57,59,60,71,80,82,83,208,222,236,239,244,245,255,256,272,273,274,276,280,282,283,284,285,286],sever:[3,10,20,21,23,27,61,93,94,96,100,128,179,222,225,233,234,251,252,253,259,260,267],sha256:128,sha:128,shall:[10,24,27,29],share:[4,22,88,89,91,92,98,222,238,267],sheet:208,shell:[1,7,8,10,21,30,55,59,80,96,129,130,137,138,205,209,215,216,217,218,219,220,221,223,224,225,235,236,241,255,262,263,272,273,275,276,277,282,287],shell_cmd:[214,215,219,220,221,273],shell_cmd_argc_max:[214,262],shell_cmd_func_t:214,shell_cmd_h:214,shell_cmd_help:[214,219,263],shell_cmd_regist:[214,220,273],shell_compat:214,shell_complet:214,shell_evq:273,shell_init:225,shell_max_compat_command:[214,215],shell_max_input_len:138,shell_max_modul:[214,219],shell_modul:214,shell_newtmgr:[214,236],shell_nlip_input_func_t:217,shell_nlip_input_regist:214,shell_os_modul:[214,263],shell_param:[214,219],shell_prompt_modul:[214,256],shell_regist:[214,221],shell_sample_mpool_display_cmd:219,shell_sample_tasks_display_cmd:219,shell_stack:[138,273],shell_stack_s:273,shell_task:[214,224,225,236,256,263,273,276,280],shell_task_handl:273,shell_task_init:138,shell_task_prio:[138,273],shell_task_prior:224,shell_task_stack_s:138,shield:92,shift:[12,21],ship:[6,10],shortcut:[12,273],shorten:247,shorter:[179,240],shorthand:[89,267],shortli:274,shot:262,should:[4,8,10,12,19,26,30,32,55,57,59,61,81,84,85,86,87,89,90,93,96,97,98,99,128,130,134,137,138,140,146,150,152,156,157,160,170,173,179,181,182,187,190,192,193,194,197,199,208,211,214,223,225,229,231,235,240,241,245,247,248,249,250,252,253,254,256,257,258,259,260,261,262,265,266,267,270,273,274,275,276,278,280,283,286,287,288],show:[1,4,5,6,7,8,10,11,12,27,28,31,36,39,40,43,50,53,57,58,59,60,61,62,72,80,81,82,83,89,99,129,130,193,205,219,222,224,225,231,234,235,236,238,239,241,242,245,251,254,255,256,257,258,259,260,261,262,266,272,273,274,275,276,277,278,279,280,282,283,284,286,287,288,290],shown:[6,7,12,43,55,61,89,92,128,135,192,208,223,235,249,254,257,262,265,267,269,272,274,276,278,280,284],si_addr:[206,207],si_cs_pin:206,si_num:[206,207],si_typ:[206,207],sibl:[11,268],sid:27,side:[10,12,21,30,129,273],sierra:[58,81],sig:[20,29,31],sign:[6,10,37,46,47,57,58,59,80,206,240,245,255],signal:[20,21,26,29,99,190,250],signatuar:12,signatur:[27,46,128],signed_imag:128,signifi:187,signific:[19,89,190,222,262],significantli:[10,31],signigic:89,silent:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,225,273],silicon:32,sim1:[283,284,286],sim:[6,7,61,94,273,283,285,286],sim_slinki:[224,284],similar:[1,8,10,12,92,93,207,245,262,265,272],similarli:[89,205],simpl:[12,20,21,61,85,89,92,93,98,99,101,129,132,134,151,181,223,235,241,246,247,252,253,256,274,280,282],simplehttpserv:[33,63],simpler:[93,251],simplest:[89,283,286],simpli:[6,10,87,89,90,98,99,130,181,222,235,241,243,248,254,272],simplic:[128,252,253],simplifi:[10,20,87,90,187],simul:[2,3,5,6,50,233,241,280,284],simultaen:89,simultan:[10,27,29,30],simultaneosli:152,sinc:[3,10,20,24,32,61,89,92,93,98,100,128,190,214,223,239,240,241,244,245,252,253,254,256,266,267,272,273,274,275],singl:[2,3,7,10,22,39,47,55,57,58,59,87,89,98,99,128,134,152,171,173,174,179,208,223,225,246,247,251,252,265,267],singli:179,sissu:191,sit:[14,18,134,181,222],site:[246,257,261],situat:[92,222],six:[22,23],size:[9,20,27,29,39,55,57,58,59,61,73,77,87,89,90,93,99,100,101,128,130,132,135,156,173,174,175,179,190,204,205,222,223,224,225,226,234,236,241,254,258,260,262,264,277],size_t:[156,162,199],sizeof:[89,129,136,153,154,155,156,160,161,163,164,171,204,207,226,241,247,249,250,253,272,273,274],skelet:245,skeleton:[7,44,50,235,244,245,254,257,258,259,260,261,262,266,274,283,284,286],skip:[6,11,47,59,128,140,142,254,257,258,259,260,261,266,283,286],sl_arg:[210,280],sl_func:[210,280],sl_next:210,sl_sensor_typ:[210,280],slash:179,slave:[27,29,187,190],slave_interval_rang:29,sleep:[9,85,87,89,91,98,99,100,182,238,241,256],slightli:[96,222],slink:[283,284,286],slinki:[7,45,61,130,152,176,177,222,224,225],slinky_o:[7,61],slinky_sim:224,slinky_task_prior:224,slist_entri:[152,179,206,210],slist_head:[91,206],slot0:128,slot1:128,slot:[7,10,20,61,71,195,222,239,245,248,254,256,257,258,259,260,261,262,263,266,273,276,280,283,286,287,288],slower:[3,96,97],small:[20,24,89,130,134,171,222,223,251,258,265,273,274],smaller:[10,89,132,194,222,242,254],smallest:[89,179],smart:[21,31,55,61,273,279],smarter:268,smp:[20,21],snapshot:[43,257,261,268],snip:[1,36,43,55,61,236,244,245,274],snippet:249,soc:[10,96],socket:2,soft:[64,80,81,82,191],softwar:[1,3,4,6,21,38,42,47,50,96,97,128,181,234,239,254,257,259,260,266,267,273,274,276,280,283,287],solder:273,solut:[55,181,252,253],solv:[128,222],some:[1,8,12,30,64,76,89,90,92,93,96,98,99,101,128,130,136,140,151,152,153,160,163,173,174,182,190,193,205,219,224,231,235,236,241,246,247,248,249,250,252,253,256,257,258,261,262,263,265,266,267,273,274,280,283,286,287,288,290],somebodi:[129,273],somehow:61,someon:[10,85,274],someth:[10,20,235,244,245,266,269,287],sometim:[129,254,266,287],somewhat:[92,128,179],somewher:[10,128,179,222,274],soon:[21,268,274],sooner:194,sophist:241,sort:[179,248],sound:10,sourc:[1,4,9,21,24,50,56,58,60,61,79,81,83,89,96,128,129,134,166,179,208,209,225,231,238,246,254,257,258,260,266,267,268,274,280,282,286],space:[12,21,34,35,50,51,66,89,96,140,141,156,173,174,187,195,198,214,222,223,244,252,255,266,282,285,290],spare:10,spec:[10,20],specfi:276,special:[8,89,96,135,222,226,229,251,252,253,265,266,267,268,273,276],specif:[10,11,20,21,22,23,29,31,57,58,59,61,62,85,87,89,90,92,93,95,96,100,128,132,134,150,152,173,174,181,186,187,189,190,191,192,193,195,205,206,208,222,225,226,230,231,236,241,245,247,249,250,252,253,254,260,262,265,266,267,273,274,283,286],specifi:[1,4,6,7,10,11,12,20,27,30,34,35,37,39,41,43,45,46,50,51,53,55,57,58,59,61,65,66,67,68,69,70,71,72,73,74,75,76,77,84,86,87,89,90,93,96,97,99,100,101,130,132,133,150,152,153,154,155,156,157,158,159,160,161,163,164,166,167,168,169,170,171,172,174,176,177,179,182,186,187,205,206,207,208,209,210,211,212,213,214,215,216,219,224,226,229,231,236,239,244,247,249,250,251,252,253,254,259,260,263,266,267,268,269,274,276,279,280,283,286,287],spectrum:21,speed:[9,21,179,193,254,257,258,259,262,274,287],spew:266,sphinx:[33,63],spi:[8,10,21,96,134,135,136,186],spi_cfg:[135,136],spi_miso_pin:[135,136],spi_mosi_pin:[135,136],spi_num:[135,136,190],spi_sck_pin:[135,136],spi_ss_pin:[135,136],spi_typ:190,spilt:10,spitest:[7,61],split:[7,10,71,93,179,191,224,239,274,283,284,286],split_app:7,split_app_init:225,split_config:[283,284],split_elf_nam:61,split_file_test:265,split_load:225,splitti:[7,61,222,224],spot:93,spread:21,spuriou:265,squar:187,sram:260,src:[6,7,10,11,45,50,55,61,70,80,82,89,93,95,134,176,177,180,181,184,188,189,191,197,225,231,240,241,244,254,257,258,259,260,261,262,265,266,272,273,274,276,278,280,283,284,286],src_off:89,ss_op_wr:249,ss_pin:[135,136],ssec:27,sstatic:272,st_cputim:280,st_ostv:280,stabil:[267,268],stabl:[1,7,57,58,80,81,267,268],stack:[1,9,10,18,21,24,26,27,30,55,77,85,87,89,92,99,222,225,243,244,245,246,247,249,250,251,262,273],stack_bottom:99,stack_len:217,stack_ptr:217,stack_siz:[97,99],staff:[80,81],stage:[97,128,134,207,222,225],stai:[10,160,161],stailq_entri:223,stale:[2,254],stand:[10,89,232],standalon:[10,222],standard:[7,21,31,100,132,133,134,135,151,152,160,181,247,252,253,262,272,273],standbi:[21,195],start:[2,4,8,9,10,12,26,27,28,30,38,47,59,62,71,82,86,88,89,90,91,92,93,95,99,128,134,137,140,141,143,146,152,159,160,168,171,174,179,187,188,190,191,192,193,194,203,211,222,225,233,235,241,242,243,244,247,254,255,256,257,258,260,261,262,265,267,272,273,274,275,276,277,278,280,284,288,290],starter:240,startup:[19,21,26,30,128,222,225,241,252,253],startup_stm32f40x:[258,260],stash:49,stat:[1,7,64,78,80,81,82,131,132,225,236,244,262,263,273,274,280,287],state:[6,10,21,26,31,52,55,85,87,93,97,99,100,133,140,176,177,181,182,186,199,238,239,241,254,260,268,270],statement:[11,225,236],statist:[1,48,64,73,76,77,80,81,82,262,283,284,286,287],stats_cli:[1,263,273],stats_hdr:[208,223],stats_inc:223,stats_incn:223,stats_init:[208,223],stats_init_and_reg:223,stats_module_init:225,stats_my_stat_sect:223,stats_nam:[1,37,38,76,208,223],stats_name_end:[208,223],stats_name_init_parm:[208,223],stats_name_map:223,stats_name_start:[208,223],stats_newtmgr:[1,224,225,236],stats_regist:[208,223],stats_sect_decl:[208,223],stats_sect_end:[208,223],stats_sect_entri:[208,223],stats_sect_start:[208,223],stats_size_16:223,stats_size_32:[208,223],stats_size_64:223,stats_size_init_parm:[208,223],statu:[10,11,20,136,171,222,239,248,250,252,254,262,273,283,284,286],stdarg:[226,229],stderr:197,stdio:274,stener:210,step:[2,4,6,7,12,47,55,57,59,80,82,92,93,94,128,130,187,207,222,223,242,244,245,252,253,254,257,258,259,260,261,262,266,267,273,274,283,284,286],sterli:268,sterlinghugh:268,stic:[249,251],still:[5,59,66,86,96,97,248,282,287],stitch:1,stksz:[77,273,283,286],stkuse:[77,273,283,286],stlink:258,stm32:[258,260,286],stm32_boot:286,stm32_slinki:286,stm32f2x:258,stm32f303vc:[235,240],stm32f3discoveri:235,stm32f4:[134,135,136,255],stm32f4_adc_dev_init:134,stm32f4_hal_spi_cfg:[135,136],stm32f4disc_blinki:258,stm32f4disc_boot:258,stm32f4discoveri:[53,258],stm32f4discovery_debug:258,stm32f4x:258,stm32f4xx:186,stm32f4xxi:186,stm32l072czy6tr_boot:10,stm32serial:286,stm32x:258,stm34f4xx:186,stm:286,stmf303:235,stmf32f4xx:186,stmf3:235,stmf3_blinki:[235,240],stmf3_boot:[235,240],stop:[2,27,84,86,140,150,187,188,192,193,247,266,276],stopbit:193,storag:[10,20,129,140,167,245,267],store:[1,10,11,22,27,31,34,35,37,50,55,57,59,61,80,85,87,89,100,129,130,140,147,179,190,195,198,199,217,223,244,247,249,250,267,273,274,275,280,282],stori:89,str:[130,193,199],straight:[247,273],straightforward:[244,274],strategi:241,strcmp:[129,273],stream:[21,199,204,205,217],strength:29,strict:[249,254],strictli:[173,174,179,274],string:[1,10,27,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,101,129,130,133,139,160,171,197,198,199,204,214,215,219,223,225,226,229,252,253,265,267,268,272,273,274,284],strip:[46,89],strlen:[247,249],strongli:152,struct:[84,85,86,87,89,90,91,92,93,97,98,99,100,128,129,130,134,135,136,140,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,160,161,163,164,165,166,168,169,170,173,176,177,179,180,182,185,187,190,192,197,198,199,200,201,202,203,204,205,206,207,208,210,211,214,215,216,217,218,219,220,221,223,226,231,232,238,241,247,249,250,251,252,253,256,265,272,273,274,278,280],structur:[7,11,12,18,28,55,61,78,84,87,89,90,91,92,93,98,99,128,130,134,136,146,162,175,178,187,192,197,198,205,207,208,209,215,219,220,223,249,255,265,266,273,274,278,282,285,290],struggl:10,strutur:89,stub:[61,101,205,238,252,253,256,265,273,274],studio:[5,13],stuff:267,style:[130,242],sub:[28,43,45,50,70,71,72,75,76,134,155,253,270],subcmd1:220,subcmd2:220,subcommand:[45,50,62,64,66,70,71,72,75,76,220],subcompon:21,subdirectori:[2,231,265],subfold:257,subject:179,submit:11,subrang:20,subscrib:[10,28,248,250,274],subsequ:[10,21,22,128,160,161,222,247,250,265],subset:[22,176,206,208,211,276],substitut:[6,242,244,245],subsystem:[30,59,87,129,130,135,136,214],subtract:[98,100],subtre:129,succe:[176,265],succesfulli:[239,240,244,245,248,254,256,257,258,259,260,261,262,266,273,276,280,283,286,287,288],success:[3,20,55,84,86,89,92,97,99,100,136,141,142,143,144,145,146,148,149,150,152,153,154,156,157,159,160,161,163,164,165,166,167,168,169,170,171,172,176,177,178,179,182,186,187,190,192,193,194,197,200,201,202,203,204,215,217,218,219,229,232,233,235,240,249,251,260,262,265,274],successfuli:[93,265,280],successfulli:[7,10,20,55,90,93,97,222,235,236,239,240,244,245,248,250,252,253,254,257,258,259,260,261,262,266,273,274,275,276,277,280,283,284,286],sudo:[4,6,7,11,57,58,60,80,83,245],suffici:[10,89,90,179],suffix:265,suggest:[3,6,10,211,234,263,290],suit:[6,55,228,230,231,244,264],suitabl:[10,20,93,173],summar:[93,222],summari:[6,11,19,36,214,219,253],supersed:179,supervision_timeout:[30,248],supplement:[29,247],supplementari:93,suppli:[152,170,172,176,191,265],support:[1,3,4,6,7,12,14,19,20,21,22,29,30,32,53,58,66,81,86,92,93,95,101,128,130,132,133,134,135,136,151,179,182,186,190,199,205,206,207,208,211,214,215,219,220,222,223,225,238,239,244,245,246,247,251,252,254,255,257,266,267,268,273,277,282,284,285,290],suppos:[10,43,91,98,186,223],suppress:284,suppresstasknam:12,sure:[2,7,8,10,57,89,198,244,245,247,249,254,256,262,265,267,272,273,274],suspend:276,svc:251,sw_rev:276,swap:[2,85,93,173,180,222,254,287],swclk:254,swd:[254,257,258,259,260,261,262,266,274,280],swdio:254,sweep:179,swim:258,swo:[257,266,280],symbol:[4,7,12,61,222,254,258,280,287,288],symlink:[60,83],sync:[20,25,39,57,58,59],sync_cb:[26,252,253],synchron:[20,39,49,57,58,59,96,98,134,190],syntax:[225,242,262,263,276],synthes:24,sys:[1,7,10,55,57,61,129,130,131,180,205,214,223,224,225,232,236,238,244,256,265,266,273,274,276,280,288],sys_config:[129,222],sys_config_test:7,sys_console_ful:222,sys_einv:[208,280],sys_enodev:208,sys_flash_map:[258,260],sys_log:222,sys_mfg:[7,254,257,258,259,260,276,283,286],sys_shel:222,sys_stat:222,sys_sysinit:[7,254,257,258,259,260,261,276,283,286],syscfg:[10,23,24,32,37,38,50,61,93,97,129,130,152,173,207,208,209,211,212,213,214,215,219,223,224,236,239,245,254,256,257,262,263,265,266,273,274,276,277,279,280,287,288],sysclock:10,sysconfig:236,sysflash:[254,260],sysinit:[7,25,26,92,99,130,196,207,225,238,252,253,254,256,262,265,266,273,274,280],sysinit_assert_act:225,sysinit_panic_assert:[207,208,225],sysresetreq:254,system:[1,3,6,8,9,25,39,50,57,58,59,61,62,86,89,90,93,96,97,99,100,101,128,129,130,131,140,154,155,156,160,161,162,164,165,167,173,175,176,177,179,182,186,190,193,195,196,205,219,222,223,233,234,241,244,245,254,256,257,260,262,263,266,267,268,273,280,288],system_l:186,system_stm32f4xx:[258,260],systemview:290,sysview:[288,289],sysview_mynewt:288,sytem:188,syuu:59,t_arg:99,t_ctx_sw_cnt:99,t_dev:206,t_driver:206,t_flag:99,t_func:[99,241],t_interfa:206,t_itf:206,t_name:99,t_next_wakeup:99,t_obj:99,t_poll_r:206,t_prio:[85,99],t_run_tim:99,t_sanity_check:99,t_stackptr:99,t_stacksiz:99,t_stacktop:99,t_string:204,t_taskid:99,t_type_m:206,t_uinteg:204,tab:[30,36],tabl:[10,19,20,93,128,131,151,160,179,225,249,251,262,276],tag:268,tail:[89,179],tailq_entri:[179,192],tailq_head:179,take:[6,7,10,23,45,50,55,62,89,92,129,141,198,211,222,223,241,247,249,250,251,252,253,265,272,274],taken:[7,10,61,87,92,249,267,268,272],talk:[10,245,247,284],tap:[4,56,79],tar:[4,57,58,59,60,81,82,83],tarbal:4,target:[3,4,5,7,10,12,25,29,32,34,35,36,37,38,39,42,43,46,47,48,53,55,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,96,129,195,222,223,224,225,231,239,241,243,252,253,255,263,265,273,275,277,279,285],target_nam:34,targetin:[252,253],task1:[92,97,283,286],task1_evq:97,task1_handl:92,task1_init:92,task1_prio:92,task1_sanity_checkin_itvl:97,task1_sem:92,task1_stack:92,task1_stack_s:92,task2:[92,283,286],task2_handl:92,task2_init:92,task2_prio:92,task2_sem:92,task2_stack:92,task2_stack_s:92,task:[9,11,55,64,77,80,81,82,84,85,87,89,90,91,92,93,95,96,98,100,130,134,139,169,202,211,214,216,219,225,233,236,249,256,262,272,273,275,278,280,283,284,286,290],task_l:238,task_prior:[224,225],tasknam:12,taskstat:[64,78,80,81,82,131,133,236,283,286],tbd:[251,274],tc_case_fail_arg:231,tc_case_fail_cb:231,tc_case_init_arg:231,tc_case_init_cb:231,tc_case_pass_arg:231,tc_case_pass_cb:231,tc_print_result:[231,232],tc_restart_arg:231,tc_restart_cb:231,tc_suite_init_arg:231,tc_suite_init_cb:231,tc_system_assert:231,tck:254,tcp:[254,258],tdi:254,tdo:254,teach:241,team:[4,181,242],technic:[10,235],technolog:[21,135],tee:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,273],telee02:262,telee02_boot:262,telemetri:252,telenor:262,teli:[252,253],tell:[10,30,55,140,155,193,195,199,222,223,225,235,247,249,252,253,260,268,272,274],telnet:[266,280,287],tem:276,temperatur:[159,206,276],templat:[7,45,244,265,273,280],temporari:[20,97,128,179],temporarili:[91,97],ten:190,term:[3,128,134,152,186,189,267],termin:[2,4,7,8,10,12,20,21,27,59,82,130,154,155,156,160,161,164,171,173,174,176,179,245,247,250,251,254,256,257,258,259,260,261,262,266,278,280,287],terminato:156,termintor:156,terribl:[7,244],test:[4,6,10,12,39,50,57,58,59,61,64,67,71,75,80,81,82,128,130,131,181,208,209,222,225,226,227,228,229,230,231,232,233,236,239,245,251,252,253,254,256,257,259,264,267,272,274,284,287,290],test_assert:[227,228,230,265],test_assert_fat:[226,265],test_cas:[226,265],test_case_1:228,test_case_2:228,test_case_3:228,test_case_nam:[227,228],test_datetime_parse_simpl:265,test_datetime_suit:265,test_json:265,test_json_util:265,test_project:44,test_suit:[227,228,265],test_suite_nam:230,testbench:[7,61],testcas:[7,265],testnam:75,testutil:[7,180,265],text:[39,48,69,89,130,171,214,222,229,258,283,286],textual:1,tgt:129,tgz:4,than:[3,7,10,14,20,29,72,89,91,92,93,96,98,99,100,101,128,132,152,163,166,179,190,194,211,214,222,224,226,228,241,245,251,252,253,257,274,280,287],thank:30,thee:96,thei:[1,6,10,20,29,30,61,84,87,89,90,92,93,98,99,128,129,134,169,179,192,222,223,225,231,234,240,247,248,249,251,252,253,262,263,265,267,268,270,272,276],their_key_dist:27,them:[2,9,10,55,89,93,98,99,160,177,179,195,222,223,225,241,245,247,252,253,254,265,266,267,274,275,290],themselv:[89,92,251],theori:[10,55,225],therebi:[98,140],therefor:[20,90,128,148,152,160,241,269],thi:[1,2,3,4,5,6,7,8,9,10,11,12,14,18,20,21,22,23,24,25,26,27,29,30,31,32,33,34,41,43,52,53,55,57,58,59,60,61,63,64,66,71,72,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,128,129,130,132,134,135,136,137,138,140,141,142,143,146,152,154,155,156,158,159,160,161,162,164,166,168,169,171,172,173,174,175,176,178,179,180,181,182,183,185,186,187,188,190,192,193,194,195,196,199,200,201,202,203,204,205,206,207,208,209,210,211,212,214,215,216,217,219,221,222,223,224,225,227,228,229,230,231,232,233,234,235,236,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],thing:[1,10,21,24,26,55,61,90,93,96,97,134,187,206,222,252,253,265,268,272,273,274,278,280],thingi:[207,287,288],thingy_boot:280,thingy_debug:[280,287,288],thingy_my_sensor:280,think:[10,128,274],third:[6,19,100,245,247,254,266,274],thorough:268,those:[1,10,31,32,39,55,57,58,59,61,93,96,128,137,141,222,234,268,272,273,274],though:[10,89,128,179,187,211,222],thought:[10,274],thread:[9,244,254,258,260],three:[2,11,19,59,61,89,128,130,166,205,222,223,225,238,241,244,246,247,253,254,260,262],through:[10,21,23,61,62,89,99,128,133,140,146,151,154,155,156,161,164,173,174,181,190,199,211,236,246,248,250,253,254,256,260,265,266,272,273,274,277,279,282],throughout:[1,93,265],throughput:[10,21],thrown:6,thu:[89,93,98,128,134,173,174,186,187,190,241],tick:[10,84,86,91,96,97,98,100,130,187,192,214,241,256,257,273,280],ticker:84,ticket:10,tickl:[97,194],tid:[77,273,283,286],tie:222,tied:[10,152],ties:[89,244],time:[1,7,9,11,12,19,20,21,22,25,27,31,34,43,57,58,59,60,61,77,82,83,84,87,89,92,93,96,97,98,99,128,130,136,140,151,160,161,179,181,194,206,214,222,223,234,238,240,241,244,247,249,251,252,253,257,259,262,265,266,272,273,274,276,280,282,287],time_datetim:[222,280],time_datetime_test:265,time_in_flight:89,timelin:10,timeout:[20,27,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,91,98,187,239,273],timer:[10,24,84,86,87,93,97,181,189,194,211,280],timer_0:24,timer_4:262,timer_5:24,timer_ev_cb:[256,280],timer_interrupt_task:238,timer_num:192,timestamp:[72,206],timev:100,timezon:[100,265],timo:87,timo_func:84,timtest:[7,61],ting:[252,253],tini:[260,286],tinycbor:[7,275],tinycrypt:[7,10],tinyprintf:101,tip:97,titl:[8,285],tlm:252,tlv:[27,128],tmp:[57,59,80,82,169,222],tmpstr:280,tmr:192,todo:[61,179,252,253],togeth:[1,43,55,61,89,137,179,222,248,260,274],togetherth:10,toggl:[7,99,186,238,241,256],token:[75,92,98,214,269],told:195,too:[20,89,92,100,134,160,161,179,182,224,273],took:258,tool:[1,2,3,5,6,7,9,10,12,13,39,54,57,58,61,62,63,66,78,79,80,81,92,93,94,96,133,134,223,224,225,231,235,236,238,239,243,244,245,254,255,260,262,263,265,266,267,268,269,274,275,280,282,284,285,287,288,290],toolbox:2,toolchain:[2,3,5,7,10,12,33,59,63,236,239,245,255,266,282,285,290],toolkit:3,tools_1:[57,58,59,81,82],top:[1,10,12,35,61,89,99,134,173,187,224,245,252,253,265,274],topic:1,total:[9,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,89,99,101,128,179,257,259,262,274],tour:246,track:[19,21,22,100,128,179],tradeoff:222,trail:[89,128],trailer:128,transact:[20,187,190],transfer:[22,190,273],transform:179,transit:128,translat:[186,252],transmiss:[20,27,190,193,218,262],transmit:[10,29,31,130,187,190,262],transmitt:193,transport:[20,21,27,80,130,133,225,239,244,245,254,258,273,274,275,277,279,282],travers:[89,154,155,156,161,164],traverse_dir:[154,155,156,161,164],treat:[140,200],tree:[1,6,7,10,50,55,61,93,159,244],tri:[3,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,129,136,224,262],trial:93,tricki:99,trig:186,trigger:[6,87,186],trim:89,trip:97,triplet:206,troubleshoot:[223,224],truncat:[157,169,170,172],truncate_test:265,trust:[22,27,273],tt_chr_f:251,tt_svc_type_p:251,ttl:[245,286],tty:[8,256,266,273,276,283,286],ttys002:66,ttys003:66,ttys005:284,ttys012:[283,286],ttys10:8,ttys2:[8,256,266,276,283,286],ttys5:8,ttyusb0:[10,66,245],ttyusb2:[8,266,283,286],ttyusb:[8,256,266,276,283,286],tu_any_fail:[232,265],tu_case_init_fn_t:231,tu_case_report_fn_t:231,tu_config:[231,232],tu_init:231,tu_restart_fn_t:231,tu_suite_init_fn_t:231,tupl:100,turn:[10,24,134,181,182,186,222,236,244,245,255,256,259,267,268,276,283],tutiori:[73,76],tutori:[2,3,6,7,8,10,12,21,23,59,77,207,208,212,213,214,231,235,236,238,239,241,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,265,266,272,273,274,275,276,277,278,279,280,283,284,286],tv_sec:[100,265,280],tv_usec:[100,265,280],tvp:100,tweak:151,two:[2,3,10,12,18,19,21,22,23,27,31,43,45,50,55,61,66,89,90,91,92,93,95,99,100,128,130,132,173,179,187,205,206,214,220,222,223,224,225,235,236,238,241,244,245,247,249,252,253,254,256,257,258,259,260,261,262,265,266,267,268,269,270,273,274,275,276,279,280,283,286],tx_data:273,tx_done:193,tx_func:193,tx_len:273,tx_off:273,tx_phys_mask:27,tx_power_level:[27,29],tx_time_on_air:262,txbuf:190,txd:262,txpower:262,txrx:190,txrx_cb:190,txt:[10,70,153,157,160,163,170,171,172,288],type:[1,7,8,10,12,19,20,23,27,29,30,31,39,43,45,46,53,55,57,58,59,61,66,84,89,90,93,96,99,128,130,133,160,161,176,177,179,186,190,193,199,200,204,205,207,210,212,214,217,224,225,226,227,228,229,230,235,238,239,241,244,245,247,248,249,250,251,252,254,257,258,259,260,262,265,266,267,268,269,272,273,274,278,279,280,283,284,286,287,288],typedef:[26,87,90,97,99,100,130,150,186,190,192,193,199,206,214],typic:[3,9,21,26,31,55,61,89,92,93,94,97,128,130,134,173,174,181,183,186,187,190,205,206,222,223,225,231,247,252,253,265],tz_dsttime:[100,265],tz_minuteswest:[100,265],u8_len:136,uart0:[130,273,284],uart1:273,uart:[7,8,10,21,55,96,130,134,188,217,236,244,245,257,258,259,260,261,262,273,280,287],uart_0_pin_rx:273,uart_0_pin_tx:273,uart_bitbang:[188,257],uart_flow_control_non:130,uart_hal:[7,258,259,260],uart_rx_char:193,uartno:273,ubuntu:[4,6,7,57,80],uci:23,udev:258,udp:66,uext:286,uicr:23,uid:252,uint16:[27,28],uint16_max:27,uint16_t:[20,89,90,91,97,98,99,128,135,140,141,179,187,190,199,206,217,223,249,272,273,274],uint32:[27,71],uint32_max:27,uint32_t:[84,86,89,90,91,98,99,100,128,135,140,148,152,153,157,158,160,162,163,168,171,172,174,175,179,182,184,187,189,190,192,194,205,206,208,223],uint64:27,uint64_t:199,uint8:27,uint8_max:27,uint8_t:[23,32,87,89,90,91,93,97,99,128,130,134,135,140,148,152,153,154,155,156,160,161,162,163,164,168,171,174,179,182,184,185,187,190,193,199,205,206,208,217,223,247,249,252,253,273,274],uint_max:204,uinteg:[199,204],ultim:249,umbrella:222,unabl:[2,179,254,257,258,261],unaccept:20,unadorn:20,unam:2,unc_t:214,unchang:[93,179],unconfirm:262,und:[27,30],undefin:[82,182,225],under:[4,7,10,11,12,20,26,34,55,61,71,101,129,134,214,251,254,258,259,261,273,274],underli:[96,134,140,152,160,161,180,181,190,206],underlin:242,understand:[7,10,100,206,222,234,235,239,262,267,274],understood:[160,226],underwai:128,undesir:92,undirect:[27,247],unexpect:[20,154,155,156,161,164,167],unexpectedli:[20,265],unfortun:10,unicast:31,unicod:151,unidirect:27,unifi:134,uniform:[29,59],uniformli:62,uninstal:7,unint32:71,uninterpret:225,union:[179,199,249],uniqu:[9,19,32,93,179,182,205,223,224,225,252,262],unit:[1,7,10,20,27,39,51,57,58,59,84,99,128,225,265,290],unittest:[7,45,55,61,225,244,265,273],univers:[10,193],unix:[2,59,152,235],unknown:[20,224],unlabel:273,unless:[27,99,128,173,187,195,225,273,274],unlicens:21,unlik:[20,90,265],unlink:[58,60,81,83,153,161,166,169],unlink_test:265,unlock:[206,211],unmet:93,unpack:[57,59],unplug:261,unpredict:161,unprovis:31,unrecogn:10,unregist:210,unresolv:[181,265],unrespons:20,unset:[50,128],unsign:[99,199,223,261,280],unspecifi:[20,42],unstabl:[57,58,80,81],unsuccess:187,unsupport:[20,251],unsur:179,unsync:26,untar:4,until:[10,20,26,61,86,87,89,92,98,130,140,179,187,190,193,247,252,253,262,267],unuesd:250,unus:[71,272,273,274],unwritten:128,updat:[2,4,10,15,20,27,30,36,37,49,52,57,58,59,60,80,81,83,89,128,142,179,225,248,250,256,257,263,265,272,274,275,280],upgrad:[2,39,56,59,79,93,128,130,235,236,245,254,266,287,290],uplink:262,uplink_cntr:262,uplink_freq:262,upload:[10,43,70,71,152,195,222,239,257],upon:[1,3,10,26,55,89,128,179,223,250],upper:[23,179,193,225],uppercas:209,upstream:132,uri:[27,29,133],url:[27,252,265,267],url_bodi:252,url_body_len:252,url_schem:252,url_suffix:252,usabl:[1,90,93,244,252],usag:[1,9,57,58,59,62,80,81,82,89,99,134,135,152,173,179,187,206,214,219,223,225,241,262,273,284],usart6_rx:286,usart6_tx:286,usb:[2,3,8,10,21,42,66,236,238,239,241,245,254,255,257,258,259,260,261,262,266,274,276,282,283,285,286],usbmodem14211:66,usbmodem14221:66,usbmodem401322:8,usbseri:[8,256,266,273,276,283,286],usbttlseri:245,use:[1,4,5,6,7,8,11,12,14,19,20,21,22,24,27,30,32,41,45,50,51,55,56,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,87,93,94,96,98,99,128,129,130,131,134,136,140,141,151,152,165,166,169,173,176,177,179,180,187,190,192,199,200,201,202,203,204,205,206,207,208,209,210,211,214,215,216,219,220,222,223,224,225,231,235,236,237,238,239,240,241,243,244,245,247,248,249,250,252,253,254,255,256,257,260,262,263,265,266,268,269,272,273,274,275,276,279,280,282,283,284,285,286,287,288],use_wl:27,use_wl_inita:27,usec:[86,276,280],used:[6,7,10,11,12,19,20,22,23,24,27,29,30,31,34,46,49,61,66,72,84,86,89,90,91,93,98,99,100,101,128,129,130,135,136,140,143,151,152,156,179,184,187,188,190,192,194,199,206,207,208,214,222,223,224,225,226,227,228,229,230,233,234,235,240,241,245,247,249,250,251,252,253,254,262,265,266,267,268,274,275,276],useful:[3,10,20,92,171,208,244,267],user:[1,2,4,6,7,8,9,18,20,22,24,48,55,58,59,61,78,80,81,82,84,87,89,90,93,94,97,128,130,131,134,135,140,146,152,173,182,190,191,192,193,213,222,223,224,225,232,235,238,251,254,260,262,266,267,268,269,273,274,280,286],user_defined_head:89,user_hdr:89,user_hdr_len:89,user_id:[224,225],user_manu:235,user_pkthdr_len:89,usernam:[10,48,59,267],uses:[2,4,6,7,8,12,14,20,21,22,23,24,30,32,55,65,66,67,68,69,70,71,72,73,74,75,76,77,78,86,87,93,97,100,101,128,130,131,132,133,134,136,140,151,152,179,181,186,187,205,206,207,208,210,211,214,216,220,224,225,231,233,236,238,239,249,250,251,254,256,259,266,267,269,273,275,276,277,280,283,286],using:[1,2,4,6,7,8,11,12,19,20,21,24,26,27,28,29,31,33,36,37,43,44,57,58,59,60,61,63,66,76,80,81,82,83,84,86,87,89,91,92,94,95,96,97,98,99,100,101,128,129,134,140,143,145,150,151,152,160,179,181,186,187,189,190,192,194,199,208,209,211,214,222,223,225,227,228,230,231,235,236,238,239,241,242,244,245,251,253,254,255,256,257,258,259,260,261,262,265,266,272,273,274,275,277,280,284,285,287,288],usr:[4,6,11,36,57,58,59,60,80,81,82,83],usu:95,usual:[10,24,89,90,101,134,203,205],utc:[68,100,265],utctim:100,utf:29,util:[7,11,20,21,31,92,101,130,151,152,188,190,205,225,236,265],util_cbmem:280,util_cbmem_test:7,util_crc:[280,284,286],util_mem:[7,254,256,257,258,259,260,261,262,266,276,280,283,284,286],util_pars:[262,276,280],uuid128:[27,29,249,251,253],uuid128_is_complet:[27,29],uuid16:[27,28,29,249,272,274],uuid16_is_complet:[27,29],uuid32:[27,29],uuid32_is_complet:[27,29],uuid:[27,28,29,30,32,66,249,251,253,272,274,275],uvp:100,v10:280,v14:258,v25:258,va_arg:208,va_list:[226,229],val:[23,24,39,50,57,58,59,61,93,129,183,186,190,200,205,223,224,225,236,252,253,256,262,273,275],valid:[20,39,50,53,57,58,59,61,66,72,89,128,135,140,150,152,169,176,177,179,187,190,206,249,265,273,274],valu:[1,4,7,12,20,23,24,27,28,29,30,37,39,42,46,50,53,57,58,59,61,62,64,65,66,68,71,72,75,80,81,82,85,89,90,93,98,99,100,128,129,134,174,175,179,182,186,187,190,191,192,193,194,199,205,207,209,211,214,222,223,236,238,239,245,248,249,250,251,252,253,263,267,268,272,273,274,276,277,279,280,282,287],valuabl:267,value1:[50,225],value2:[50,225],valuen:225,vanilla:151,vari:[9,89,96,128],variabl:[1,4,10,11,24,34,37,50,59,61,62,65,89,90,99,129,130,173,199,205,206,207,208,211,219,222,226,229,235,241,247,249,262,267,268,275,276,277,280],variant:[22,95,186],variat:12,varieti:[4,250],variou:[23,24,61,89,128,132,134,181,250,255,262],vdd:[10,274],vector:276,vendor:267,ver:[1,7,55,197,198,235,245,254,266,267,268,269,273,274],ver_len:198,ver_str:198,verb:62,verbos:[1,7,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,254,266,273],veri:[1,9,31,55,89,99,101,128,179,207,242,243,251,256,257,267,274,275,287],verif:22,verifi:[22,57,59,80,82,128,179,181,208,222,239,241,257,258,259,261,262,265,274,275],versa:[8,222],version:[1,2,4,6,7,10,11,12,21,22,34,37,39,41,43,47,55,56,60,79,83,84,130,140,179,195,197,198,205,222,225,235,236,239,245,253,254,256,257,258,259,260,261,262,266,270,273,274,276,280,283,286,287,288],via:[8,10,20,26,42,55,89,90,128,130,134,152,154,155,156,161,164,173,174,176,179,180,181,187,211,214,222,223,225,239,245,246,247,249,257,259,262,267,273,274,276,277,279,282],vice:[8,222],vid:258,view:[1,7,10,12,30,50,62,66,209,213,214,222,223,225,267,274,279,288],vim:59,vin:276,violat:20,viper:11,virtual:[10,66,183,186],virtualbox:254,visibl:[2,28],visit:[10,39,57,58,59],visual:[5,13,288],visualstudio:12,vol:22,volatil:258,voltag:[134,136,181,191,258,274],volum:[29,151],vscode:12,vtref:[257,259,262,274],vvp:100,wai:[2,3,9,10,21,30,31,59,61,84,87,92,99,100,130,152,186,187,188,205,222,224,242,267,268,269,273,274],wait:[10,84,85,86,87,89,91,92,98,99,136,182,187,190,225,238,241,260,262,272,273,274,282],waitin:91,wake:[10,85,89,92,98,99,182,211,241],wakeup:[99,211],walk:[89,99,146,150,179,205,274],wall:6,wallclock:[84,100],wanda:81,want:[1,3,11,18,50,57,58,59,60,61,80,83,84,85,89,90,91,92,97,98,99,128,129,130,150,152,169,186,205,206,207,210,223,234,236,240,244,246,247,249,251,252,253,254,255,257,258,259,260,262,263,265,267,273,274,277,287,290],warn:[1,6,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,224,249,257,273],warranti:[4,254,273,274,280,287,288],wasn:10,watch:244,watchdog:[92,97,191],watchpoint:[254,258],wdog:67,wear:244,wear_level_test:265,wearabl:9,web:[235,242],webfreak:12,websit:242,weird:10,welcom:[8,134,243,266,273,276],well:[8,10,22,40,55,89,90,96,98,128,129,134,195,226,234,248,262,273,274],were:[29,73,89,128,181,222,268,272,273],werror:[6,50],wes:262,west:100,wfi:258,wget:[57,59,80,82],what:[7,8,20,41,55,96,98,135,140,173,174,179,207,208,222,225,237,241,247,250,251,252,253,265,268,272,273,274],whatev:[23,98,266],wheel:[8,235],when:[1,2,6,7,8,10,12,14,20,22,23,24,26,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,66,72,81,84,85,86,87,88,89,90,91,92,93,94,96,97,98,99,100,128,129,130,131,134,140,141,142,145,151,152,154,155,156,160,161,162,164,169,171,173,174,179,186,187,190,192,193,195,199,202,206,207,208,210,211,212,214,217,220,222,223,224,225,229,231,233,236,238,239,241,242,244,245,246,247,250,251,252,253,254,257,258,260,261,265,267,268,269,273,274,275,276,277,278,279,280,284,287],whenev:[21,26,90,134,179,199,210,249,251,280],where:[8,9,10,11,22,29,31,35,37,50,55,59,60,61,83,89,90,93,95,96,99,128,129,130,140,141,142,145,148,150,179,186,189,190,193,198,199,205,222,224,225,236,241,251,252,253,256,257,262,266,273,274,276,283,286],wherea:[89,268],whether:[10,12,22,84,87,90,100,128,140,155,187,190,191,207,208,209,211,212,213,214,223,225,233,247,249,251,265,276,278,279,280],which:[1,2,4,8,10,11,14,19,20,21,30,32,34,39,55,57,58,59,61,62,66,80,81,82,84,85,86,89,90,92,93,96,97,98,99,100,101,128,129,134,135,137,140,150,151,152,179,182,183,186,187,190,192,195,199,206,208,222,223,224,226,229,232,233,235,239,241,247,248,249,250,251,252,253,254,262,265,266,267,268,273,274,284,287],white:[22,27],whitelist:27,who:10,whole:[10,135],whose:[61,62,179,211],why:[10,241],wide:[21,222],wifi:[7,266],wifi_connect:266,wifi_init:266,wifi_request_scan:266,wikipedia:[187,190],winc1500_wifi:266,window:[5,6,7,9,10,12,27,56,66,78,79,93,130,239,245,254,256,257,258,259,260,261,262,266,276,283,286,287],winusb:[258,260,286],wipe:144,wire:[8,187,190,262,273,274,286],wireless:21,wish:[6,10,173,174,187,241,267,285],withdraw:10,within:[1,12,20,31,41,55,89,93,94,96,128,134,140,145,148,150,173,174,179,181,186,197,199,205,208,209,210,214,223,231,241,250,260,265,267,273],without:[6,10,22,24,28,30,90,128,152,161,173,174,179,180,205,214,221,222,223,225,239,254,265,273,274,278],wno:6,won:[8,222,274],wonder:274,word:[6,55,89,92,98,128,179,190,249,254,267,280,287,288],word_siz:190,work:[2,4,8,10,11,22,24,55,61,62,85,89,91,92,93,95,96,98,99,128,130,134,135,160,181,223,235,236,240,241,244,245,248,254,256,262,265,270,272,273,274,277,279,282],work_stack:241,work_stack_s:241,work_task:241,work_task_handl:241,work_task_prio:241,workaround:10,workspac:[1,2,11,39,57,58,59,60,80,82,83],workspaceroot:12,world:[12,21,193,247,252,253,255,269,290],worri:92,worth:[1,94,273],would:[5,12,58,59,81,82,84,89,92,98,128,130,137,140,181,186,187,190,202,220,222,223,231,241,244,260,262,265,267,268,273,274,282,286],wrap:[100,223,256],wrapper:87,write:[1,9,10,14,20,28,61,64,65,80,81,82,94,128,129,130,134,135,136,140,141,142,146,151,152,157,158,168,170,172,173,174,181,184,186,187,193,195,197,200,201,202,203,205,218,223,229,238,241,243,248,250,251,262,264,273,274,275,282],write_cmd_rx:[76,236],write_cmd_tx:[76,236],write_config:[157,170],write_id:172,write_req_rx:[76,236],write_req_tx:[76,236],write_rsp_rx:[76,236],write_rsp_tx:[76,236],written:[10,11,20,23,59,82,92,128,140,141,142,145,150,156,157,160,163,169,170,171,173,174,179,187,190,249,251,256,268],wrong:[10,42,274],wsl:[12,59],www:[10,101,235,245,254,273,274,280,286,287,288],x86:[4,12],x86_64:[254,280,287,288],xml:[7,88,129],xpf:4,xpsr:[254,258,260],xtal_32768:93,xtal_32768_synth:24,xxx:[6,93,99,135],xxx_branch_0_8_0:[267,268],xxx_branch_1_0_0:[267,268],xxx_branch_1_0_2:[267,268],xxx_branch_1_1_0:[267,268],xxx_branch_1_1_2:[267,268],xxx_branch_1_2_0:[267,268],xxx_branch_1_2_1:[267,268],xxxx:181,xzf:[57,59,60,82,83],yai:273,yaml:11,year:31,yes:[22,262],yesno:27,yet:[7,10,92,96,239,244,267,268,274],yield:92,yml:[1,6,7,41,43,50,52,53,55,61,94,95,101,129,130,135,136,152,173,180,205,207,214,222,223,224,225,235,236,238,244,245,254,256,262,263,265,266,267,269,270,273,274,275,276,280],you:[1,3,4,5,6,7,8,9,10,11,12,18,19,30,33,34,35,39,41,43,45,46,47,50,51,52,53,54,55,57,58,59,60,61,63,64,66,68,76,80,81,82,83,84,92,93,94,95,96,101,128,129,130,131,132,134,137,138,140,141,142,146,155,160,161,163,169,171,173,174,180,181,183,186,187,189,199,202,205,206,207,209,210,211,214,215,216,219,220,221,222,223,224,225,231,234,236,238,239,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,272,274,275,276,277,278,279,280,282,283,284,285,286,287,288,290],your:[1,3,4,6,8,10,19,30,39,50,52,55,56,58,59,60,61,70,71,79,81,82,83,84,92,93,94,95,96,97,99,131,132,133,134,135,136,138,140,151,173,181,205,207,214,220,222,224,225,231,238,239,240,242,243,244,245,246,247,248,250,251,252,253,255,256,262,263,268,272,273,274,275,277,278,282,283,285,286,287,288,290],yourself:[2,10,30,92,93,246,273,290],ype:[252,253],yym:6,zadig:[258,260,286],zero:[12,24,84,89,90,93,99,100,144,148,150,157,169,170,175,182,186,187,190,191,192,193,199,215,217,218,219,225,241,251,252,253,255,262,265,266,267,280,290],zillion:10,zip:[4,257,274],zone:100},titles:["&lt;no title&gt;","Concepts","Everything You Need in a Docker Container","Setup &amp; Get Started","Installing the Cross Tools for ARM","Native Installation","Installing Native Toolchain","Creating Your First Mynewt Project","Using the Serial Port with Mynewt OS","Mynewt Documentation","FAQ","Contributing to Newt or Newtmgr Tools","Developing Mynewt Applications with Visual Studio Code","Appendix","NimBLE Host ATT Client Reference","NimBLE Host GAP Reference","NimBLE Host GATT Client Reference","NimBLE Host GATT Server Reference","NimBLE Host","NimBLE Host Identity Reference","NimBLE Host Return Codes","BLE User Guide","NimBLE Security","Configure device ddress","Configure clock for controller","NimBLE Setup","Respond to <em>sync</em> and <em>reset</em> events","GAP API for btshell","GATT feature API for btshell","Advertisement Data Fields","API for btshell app","Bluetooth Mesh","Sample application","Mynewt Newt Tool Documentation","newt build","newt clean","newt complete","newt create-image","newt debug","newt help","newt info","newt install","newt load","newt mfg","newt new","newt pkg","newt resign-image","newt run","newt size","newt sync","newt target","newt test","newt upgrade","newt vals","newt version","Newt Tool Guide","Install","Installing Newt on Linux","Installing Newt on Mac OS","Installing Newt on Windows","Installing Previous Releases of Newt","Theory of Operations","Command Structure","Mynewt Newt Manager Documentation","Command List","newtmgr config","newtmgr conn","newtmgr crash","newtmgr datetime","newtmgr echo","newtmgr fs","newtmgr image","newtmgr log","newtmgr mpstat","newtmgr reset","newtmgr run","newtmgr stat","newtmgr taskstat","Newt Manager Guide","Install","Installing Newtmgr on Linux","Installing Newtmgr on Mac OS","Installing Newtmgr on Windows","Installing Previous Releases of Newtmgr","Callout","Scheduler","CPU Time","Event Queues","Heap","Mbufs","Memory Pools","Mutex","Apache Mynewt Operating System Kernel","BSP Porting","Porting Mynewt to a new CPU Architecture","Porting Mynewt to a new MCU","Porting Mynewt OS","Sanity","Semaphore","Task","OS Time","Baselibc","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","&lt;no title&gt;","Bootloader","Config","Console","Customizing Newt Manager Usage with mgmt","Newt Manager","Using the OIC Framework","Drivers","flash","mmc","elua","lua_init","lua_main","Flash Circular Buffer (FCB)","fcb_append","fcb_append_finish","fcb_append_to_scratch","fcb_clear","fcb_getnext","fcb_init","fcb_is_empty","fcb_offset_last_n","fcb_rotate","fcb_walk","The FAT File System","File System Abstraction","fs_close","fs_closedir","fs_dirent_is_dir","fs_dirent_name","fs_filelen","fs_getpos","fs_mkdir","fs_open","fs_opendir","struct fs_ops","fs_read","fs_readdir","fs_register","fs_rename","fs/fs Return Codes","fs_seek","fs_unlink","fs_write","fsutil_read_file","fsutil_write_file","Newtron Flash Filesystem (nffs)","struct nffs_area_desc","struct nffs_config","nffs_detect","nffs_format","nffs_init","Internals of nffs","Other File Systems","Hardware Abstraction Layer","BSP","Creating New HAL Interfaces","Flash","hal_flash_int","GPIO","I2C","Using HAL in Your Libraries","OS Tick","SPI","System","Timer","UART","Watchdog","Image Manager","imgmgr_module_init","imgr_ver_parse","imgr_ver_str","JSON","json_encode_object_entry","json_encode_object_finish","json_encode_object_key","json_encode_object_start","json_read_object","Logging","Sensor API","Creating and Configuring a Sensor Device","Sensor Device Driver","Mynewt Sensor Framework Overview","Sensor Listener API","Sensor Manager API","OIC Sensor Support","Sensor Shell Command","Shell","shell_cmd_register","shell_evq_set","shell_nlip_input_register","shell_nlip_output","shell_register","shell_register_app_cmd_handler","shell_register_default_module","Split Images","Statistics Module","Validation and Error Messages","System Configuration and Initialization","TEST_ASSERT","TEST_CASE","TEST_CASE_DECL","TEST_PASS","TEST_SUITE","testutil","tu_init","tu_restart","OS User Guide","Blinky, your \u201cHello World!\u201d, on STM32F303 Discovery","Enabling Newt Manager in Your Application","How to Define a Target","How to Use Event Queues to Manage Multiple Events","Over-the-Air Image Upgrade","Pin Wheel Modifications to \u201cBlinky\u201d on STM32F3 Discovery","Tasks and Priority Management","Try Markdown","Bluetooth Low Energy","Set up a bare bones NimBLE application","Use HCI access to NimBLE controller","BLE Peripheral Project","Advertising","BLE Peripheral App","Characteristic Access","GAP Event callbacks","Service Registration","BLE Eddystone","BLE iBeacon","Blinky, your \u201cHello World!\u201d, on Arduino Zero","Project Blinky","Enabling The Console and Shell for Blinky","Blinky, your \u201cHello World!\u201d, on Arduino Primo","Blinky, your \u201cHello World!\u201d, on STM32F4-Discovery","Blinky, your \u201cHello World!\u201d, on a nRF52 Development Kit","Blinky, your \u201cHello World!\u201d, on Olimex","Blinky, your \u201cHello World!\u201d, on RedBear Nano 2","LoRaWAN App","How to Reduce Application Code Size","Other","Write a Test Suite for a Package","Enable Wi-Fi on Arduino MKR1000","Adding Repositories to your Project","Create a Repo out of a Project","Accessing a private repository","Upgrade a repo","Air Quality Sensor Project","Air quality sensor project via Bluetooth","Air quality sensor project","Adding an Analog Sensor on nRF52","Adding OIC Sensor Support to the bleprph_oic Application","Enabling an Off-Board Sensor in an Existing Application","Enabling OIC Sensor Data Monitoring in the sensors_test Application","Changing the Default Configuration for a Sensor","Enabling OIC Sensor Data Monitoring","Developing an Application for an Onboard Sensor","Sensors","Sensor Tutorials Overview","Project Slinky using the Nordic nRF52 Board","Project Sim Slinky","Project Slinky","Project Slinky Using Olimex Board","SEGGER RTT Console","SEGGER SystemView","Tooling","Tutorials"],titleterms:{"abstract":[152,181],"default":[241,256,278],"function":[10,93,100,101,137,140,195,199,206,208,210,211,225,231,241,249,251,275,278],"import":235,"new":[7,44,94,95,179,183,248,278,280,283,284,286],"public":23,"return":[20,136,138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,172,176,177,178,196,197,198,200,201,202,203,204,215,216,217,218,219,220,221,226,227,228,229,230,232,233],"switch":[101,241],"try":[242,265],Adding:[58,81,223,267,274,275,278,280],For:4,One:10,The:[151,256],Use:[2,236,238,245,256,273,280,283,286],Used:206,Uses:205,Using:[8,57,80,89,130,133,188,276,280,286],acceleromet:278,access:[245,249,269],adafruit:10,adc:274,add:[66,93,252,253,272,273,274,275,280],addit:[267,274],address:[19,23,30,252,253],administr:10,advertis:[10,27,29,30,247,252,253],air:[239,271,272,273],all:[10,238],altern:10,ambigu:224,analog:274,apach:[9,31,92],api:[27,28,30,84,85,86,87,88,89,90,91,97,98,99,100,129,130,151,152,173,180,182,183,184,186,187,189,190,191,192,193,194,205,206,210,211,280],app:[9,30,61,222,245,248,262,280,282,288],app_get_light:275,app_set_light:275,appendix:[13,93],applic:[7,12,32,92,205,206,207,222,235,236,238,241,244,245,252,253,254,256,257,258,259,260,261,262,263,266,274,275,276,277,278,280,283,286],apt:[57,80],architectur:94,arduino:[8,254,257,266],area:[173,179,224],argument:[10,138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,168,169,170,171,172,176,177,196,197,198,200,201,202,203,204,215,216,217,218,219,221,226,227,228,229,230,232,233],arm:[4,10],artifact:61,assert:265,assign:224,associ:12,att:[14,20],attach:245,attribut:[30,251],autocomplet:36,avail:[27,28,39,43,50,255,267,282,285],bare:244,baselibc:101,bash:36,basic:92,beacon:[252,253],bearer:31,begin:[30,247],being:249,belong:30,between:[10,266],binari:[57,59,80,82],bit:6,bitbang:10,ble:[10,21,244,246,248,252,253,274,275],ble_gap_disc_param:10,blehci:245,blemesh:10,bleprph_gap_ev:250,bleprph_oic:275,blink:235,blink_rigado:48,blinki:[7,235,240,254,255,256,257,258,259,260,261],block:[10,179],bluetooth:[10,21,31,243,245,272],bluez:245,bno055:276,bno055_log:208,bno055_stat:208,board:[96,207,254,257,258,259,260,261,262,266,274,275,276,277,283,286],bone:244,boot:[10,128,222],bootload:[10,128,245,254,257,258,259,260,261,262,266,276,280,283,286],branch:[58,81],brew:6,bsp:[53,93,96,182,224],btmgmt:245,btmon:245,btshell:[27,28,30],buffer:140,bug:10,build:[7,9,10,12,34,55,61,235,236,240,241,244,245,254,256,257,258,259,260,261,262,266,274,275,276,277,278,280,283,284,286],cach:179,call:[10,278],callback:250,callout:[84,238],can:10,cannot:278,categori:290,chang:[33,63,278],channel:27,characterist:[30,246,249],check:[57,58,59,80,81,82,93,97,128,211],choos:265,circular:140,clean:35,clear:261,cli:[129,273],client:[14,16],clock:24,close:262,cmsis_nvic:10,code:[10,12,20,93,94,167,223,263,265],collect:179,command:[10,12,27,28,39,43,50,62,64,66,132,208,213,214,236,245,273,284],committ:10,commun:[8,236,256],compil:[10,94],complet:[36,214],compon:[21,267],comput:[57,80,266,276,280],concept:[1,222],conclus:[244,252,253,274],condit:225,config:[65,129],configur:[1,12,23,24,27,28,30,129,151,205,206,207,208,211,224,225,235,236,252,253,256,278],conflict:225,congratul:265,conn:66,connect:[10,27,30,236,239,245,254,256,257,258,259,260,261,262,266,274,275,276,277,280,283,284,286,287],consider:241,consol:[130,214,223,256,266,276,280,287],contain:2,content:[33,63],context:241,contribut:11,control:[24,245,252,253,275,276,277,282],copi:[93,275],core:[10,20,92,96],correct:10,cpu:[86,94,96],crash:67,creat:[7,37,89,93,94,183,207,235,236,239,244,245,248,252,253,254,257,258,259,260,261,262,265,266,268,273,274,275,276,277,280,283,284,286],creation:92,cross:4,crystal:24,current:222,custom:[97,131,236],data:[29,100,137,140,152,173,179,187,195,199,206,208,210,211,214,231,247,262,275,276,277,278,279,280],datetim:68,ddress:23,debian:[57,80],debug:[12,38,61,93],debugg:[4,12],declar:223,decod:199,defin:[12,93,208,223,237],definit:[185,224,225],delai:10,delet:[66,275],depend:[7,61,93,96,135,136,180,181,235,236,256,268,275,280],descript:[34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,65,66,67,68,69,70,71,72,73,74,75,76,77,84,85,86,87,88,90,91,96,97,98,99,100,101,130,134,137,140,151,152,173,181,182,184,185,186,187,189,190,191,192,193,194,195,199,214,222,231,276],descriptor:[30,246,251,267],design:[134,181],detail:223,detect:179,determin:249,develop:[12,259,280],devic:[2,10,23,27,30,129,206,207,208,239,245,275,276,277,278,282],differ:10,direct:30,directori:[61,179],disabl:27,discov:30,discoveri:[27,235,240,258],disk:179,disk_op:152,displai:30,docker:2,document:[10,33,63],doe:267,download:[11,57,61,80,93,235,240,262,274],driver:[10,134,206,208,273,274,278],duplic:224,eabi:10,earli:10,echo:69,eddyston:252,edit:10,editor:10,elf:10,elua:137,empti:[252,253],emul:276,enabl:[2,27,36,214,222,223,236,256,266,275,276,277,279,280],encod:199,end:10,endif:[207,208],energi:243,enhanc:173,enter:244,environ:11,equip:241,eras:257,error:[10,224],establish:[30,245,266],etap:274,event:[26,87,238,250,256],everyth:[2,262,274],exactli:10,exampl:[8,20,21,26,34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,87,92,129,134,135,136,138,139,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,159,160,161,163,164,166,168,169,170,171,172,176,177,181,185,193,197,198,200,201,202,203,204,215,217,218,220,221,224,225,226,227,228,230,231,232,233,238],execut:[6,235,240,257,258,259,261,262,274,284,287,288],exist:[236,256,267,276],explor:7,express:224,extend:[27,280],extens:[2,12],extern:[235,254,266],faq:10,fat:151,fcb:140,fcb_append:141,fcb_append_finish:142,fcb_append_to_scratch:143,fcb_clear:144,fcb_getnext:145,fcb_init:146,fcb_is_empti:147,fcb_offset_last_n:148,fcb_rotat:149,fcb_walk:150,featur:[7,10,21,22,28,31,92],fetch:[7,254,266],field:29,file:[10,93,135,136,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,223,228,268,275,278,280],filesystem:[152,173],fill:93,find:267,first:[7,9],flag:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],flash:[93,128,135,140,173,179,184,224,257,261],forget:10,format:[10,128,179],framework:[133,208,209,236,279],from:[57,58,59,80,81,82,130,275,277,278],fs_close:153,fs_closedir:154,fs_dirent_is_dir:155,fs_dirent_nam:156,fs_filelen:157,fs_getpo:158,fs_mkdir:159,fs_op:162,fs_open:160,fs_opendir:161,fs_read:163,fs_readdir:164,fs_regist:165,fs_renam:166,fs_seek:168,fs_unlink:169,fs_write:170,fsutil_read_fil:171,fsutil_write_fil:172,ft232h:8,full:130,futur:173,gap:[15,27,250],garbag:179,gatt:[16,17,28,272],gcc:[6,10],gdb:6,gener:[22,30,134,181,225,238],get:[3,57,80,208],git:[10,59],global:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],gpio:186,grei:10,group:10,guarante:250,guid:[21,55,78,234],hal:[96,183,188,273],hal_flash_int:185,hal_i2c:187,handler:[129,205,214],hardcod:23,hardwar:[23,181,235,262,274,276,287,288],hci:[20,245],header:[14,15,16,17,19,20,89,135,136,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,180,223,275,278],heading3:242,heading4:242,heap:88,hello:[235,254,257,258,259,260,261],help:[39,214],high:128,hold:223,homebrew:[58,81],host:[14,15,16,17,18,19,20,252,253],how:[10,101,225,237,238,263,267,275,278],i2c:187,iOS:10,ibeacon:253,ident:19,identifi:267,ignor:224,imag:[10,37,46,71,128,195,222,235,236,239,240,245,257,258,259,260,261,262,266,274,275,276,277,278,280,283,286],imgmgr_module_init:196,imgr_ver_pars:197,imgr_ver_str:198,immedi:10,implement:[94,134,205,208,223],includ:[30,208,223,251],indefinit:[252,253],info:40,inform:214,initi:[30,135,136,173,206,208,223,225,241,278],inod:179,input:[130,214],instal:[2,4,5,6,10,11,12,36,41,56,57,58,59,60,79,80,81,82,83,235,262,274],instead:280,instruct:10,integr:128,interfac:[180,183,206],intern:[173,179],interrupt:238,introduct:[9,14,15,16,17,18,19,20,31,55,93,238,246,265],invalid:224,invert:10,invok:132,issu:10,join:262,json:199,json_encode_object_entri:200,json_encode_object_finish:201,json_encode_object_kei:202,json_encode_object_start:203,json_read_object:204,kei:[10,22,27],kernel:92,kit:259,l2cap:[10,20,27],laptop:10,latest:[57,58,59,80,81,82],launch:288,layer:181,lead:10,led:[235,240],legaci:27,level:[128,205,239],libc:6,librari:[188,235],like:10,limit:128,line:214,link:4,linker:93,linux:[2,4,6,8,11,57,60,80,83],lis2dh12_onb:207,list:[10,64,101,137,140,195,199,206,210,211,222,231,242,252,253,276,280],listen:[210,280],load:[42,236,245,254,257,258,259,260,261,266,275,276,277,278,280,283,286],loader:222,log:[72,205,208,239],look:211,lorawan:262,low:243,lua_init:138,lua_main:139,mac:[2,4,6,8,11,58,60,81,83],macro:100,main:[241,256,275,278,280],make:10,manag:[9,20,55,63,78,131,132,195,211,236,238,241],manual:[57,80],map:[93,128],markdown:242,master:[58,81],mbuf:89,mcu:[10,93,95,96],mcuboot:10,measur:173,memori:[90,261],merg:10,mesh:[10,21,31],messag:[10,224],method:[23,57,80],mfg:43,mfghash:10,mgmt:131,mingw:59,minim:130,miscellan:[10,173],mkr1000:266,mmc:136,model:31,modif:240,modifi:[236,256,275,280],modul:[10,214,223],monitor:[245,277,279],more:[55,235],move:179,mpstat:73,mqueue:89,msy:89,msys2:59,multicast:10,multipl:[12,152,223,224,238],mutex:91,my_sensor_app:280,mynewt:[2,7,8,9,10,12,23,31,33,58,63,81,92,93,94,95,96,130,209,244,267,275,277,282],mynewt_v:[207,208],name:[30,214,223,225],nano:261,nativ:[5,6],need:[2,235,240,262,267,273,274,276,287,288],newt:[2,9,10,11,12,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,63,78,131,132,236],newtmgr:[10,11,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,132,214,223,236,239,283,284,286],newtron:173,next:[6,276],nfc:10,nff:[10,173,179],nffs_area_desc:174,nffs_config:175,nffs_detect:176,nffs_format:177,nffs_init:178,nimbl:[10,14,15,16,17,18,19,20,21,22,25,244,245,252,253],nmp:10,node:31,none:10,nordic:[8,283],normal:89,note:[55,100,137,138,139,141,142,143,144,145,146,147,148,149,150,153,156,158,159,160,161,165,166,168,170,171,174,175,196,197,198,216,223,226,229,274],notnul:224,nrf52840:10,nrf52:[10,259,274,276,283],nrf52_adc:274,nrf52dk:[8,10],nrf:23,object:[179,206,235,240,255,262,274,287,288],off:[207,276],oic:[133,212,275,277,279,282],oicmgr:236,olimex:[260,286],omgr_app_init:275,onboard:[207,280],onto:[254,266],open:[245,262],openocd:4,oper:[55,61,92,128,187,190,222],option:[236,257],orient:27,ota:262,other:[7,12,180,236,264,268],out:[10,265,267,268],output:[48,53,130],over:[214,239],overrid:[224,225],overview:[64,209,246,247,248,250,255,275,278,279,282,285],own:10,pack:2,packag:[1,7,57,61,80,93,96,130,180,205,206,209,224,225,236,244,254,265,266,273,275,276,280],packet:89,passiv:30,patch:10,peer:[20,30],perform:30,peripher:[246,248],persist:129,pin:[10,240],pkg:[10,45,93],platform:[8,181],poll:[206,211],pool:[89,90],port:[8,10,93,94,95,96,262],precis:10,preempt:241,prerequisit:[7,236,238,239,241,245,248,254,255,256,257,258,259,260,261,266,275,276,277,278,279,280,282,283,284,285,286,290],preview:[33,63],previou:[60,83],primo:257,principl:[134,181],printf:10,prioriti:[224,241],privaci:22,privat:269,pro:8,process:[214,256],produc:[6,61],profil:[10,236,239,284],project:[1,7,10,12,21,235,236,244,245,246,254,255,256,257,258,259,260,261,262,266,267,268,271,272,273,274,283,284,285,286],prompt:214,protect:261,protocol:[214,236,252,253],provis:31,pull:[2,10],purpos:10,put:238,qualiti:[271,272,273],queri:[283,286],question:10,queue:[87,238,256],radio:10,ram:179,random:[10,23],rate:206,rational:55,read:[30,206,208,249,278,280],reboot:278,rebuild:[11,280],reconfigur:207,recoveri:128,redbear:261,reduc:[10,239,263],refer:[14,15,16,17,19,20,225],referenc:225,regist:[97,180,208,211,214,223,276],registr:251,releas:[57,58,59,60,80,81,82,83],renam:179,repo:[267,268,270],repositori:[7,10,55,267,268,269,274],represent:179,request:10,requir:93,reset:[26,74,128],resign:46,resolut:268,resolv:[61,225,268],respond:26,restart:10,restrict:224,retriev:[222,223],review:[241,249],round:240,rtt:[280,287],run:[7,10,12,47,75,254,256,284,287,288],runtim:[23,129],safeti:152,sampl:[32,276,278],saniti:97,satisfi:93,scale:265,scan:30,schedul:85,scratch:179,script:[2,93],section:223,secur:[20,22,27],segger:[4,287,288],select:2,semant:10,semaphor:98,semiconductor:8,send:[30,245,262],sensor:[206,207,208,209,210,211,212,213,271,272,273,274,275,276,277,278,279,280,281,282],sensor_read:280,sensors_test:277,sequenc:222,serial:[8,10,214,245,256,266,283,286],server:17,servic:[30,246,251,272,274],set:[6,10,11,30,57,80,93,205,206,208,224,225,236,244,247,251,256,273,275,278,284],settl:24,setup:[3,8,10,25,266,287,288],shell:[208,213,214,256,280],shell_cmd_regist:215,shell_evq_set:216,shell_nlip_input_regist:217,shell_nlip_output:218,shell_regist:219,shell_register_app_cmd_handl:220,shell_register_default_modul:221,should:268,show:[30,66],sign:[128,235,257,258,259,260,261,262,266,274,283,286],signatur:249,sim:284,simul:7,singl:222,size:[10,48,263],skeleton:280,slinki:[283,284,285,286],slot:128,smart:[275,277,282],softwar:[10,288],some:10,sourc:[7,11,55,57,59,80,82,236,252,253,273,275],space:179,special:100,specif:[94,268],specifi:[180,225],spi:190,split:222,stack:[241,252,253],start:[3,245,266],startup:93,stat:[76,208,223],state:[128,129,222],statist:223,statu:128,step:[11,239,255,275,276,277,278,280,285],stm32f303:235,stm32f3:[235,240],stm32f4:258,storag:27,struct:[152,162,174,175],structur:[62,100,137,140,152,173,179,195,199,206,210,211,214,231],stub:130,studio:12,stuff:273,sub:66,submit:10,suit:265,summari:20,support:[2,10,31,61,96,152,181,209,212,235,236,275,276,279,280],swap:128,sync:[10,26,49,252,253],syntax:10,syscfg:[205,222,225,275],sysinit_app:225,system:[10,24,55,92,151,152,180,191,224,225],systemview:288,tabl:223,talk:266,tap:[58,81],target:[1,23,50,61,93,235,236,237,240,244,245,248,254,256,257,258,259,260,261,262,266,274,276,280,283,284,286,287,288],task:[10,12,97,99,224,238,241,274],taskstat:77,tcp:266,templat:93,termin:276,test:[7,51,93,265,273],test_assert:226,test_cas:[227,228],test_case_decl:228,test_pass:229,test_suit:230,testutil:231,theori:[61,187,190,222],thingi:280,thread:152,through:223,tick:189,time:[10,24,86,100],timer:[192,238,256],togeth:238,tool:[4,11,33,55,59,82,289],toolchain:[4,6],topolog:31,transceiv:10,transport:[214,236],tree:273,trigger:10,tu_init:232,tu_restart:233,tutori:[222,255,282,285,290],type:[206,208,211,276],uart:193,undefin:224,under:265,undirect:30,unifi:222,unlink:179,updat:11,upgrad:[10,52,57,58,80,81,222,239,270],upload:256,usag:[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,131,140],usb2:2,use:[10,57,80,89,92,267],user:[21,234],using:[10,55,283,286],val:53,valid:224,valu:[10,136,138,139,141,142,143,144,145,146,147,148,149,150,153,154,155,156,157,158,159,160,161,163,164,165,166,168,169,170,171,172,176,177,178,196,197,198,200,201,202,203,204,206,208,215,216,217,218,219,220,221,224,225,226,227,228,229,230,232,233,275,278],variabl:223,vector:128,verif:[128,278],verifi:278,version:[54,57,58,59,80,81,82,267,268],via:[266,272,280],view:[275,276,277,280],violat:224,virtualbox:2,visual:12,wait:[252,253],want:[10,235],watch:[235,240],watchdog:194,water:274,welcom:9,what:[10,235,240,267],wheel:240,where:268,why:[89,92,267],window:[2,4,8,11,59,60,82,83],work:12,workspac:12,world:[235,254,257,258,259,260,261],would:10,wrapper:2,write:[30,33,63,179,249,261,265],yml:[10,93,268],you:[2,235,240,273],your:[2,7,9,11,12,57,80,180,188,223,235,236,241,254,257,258,259,260,261,265,266,267,276,280,284],zero:[10,254]}})
\ No newline at end of file
diff --git a/develop/tutorials/blinky/nRF52.html b/develop/tutorials/blinky/nRF52.html
index df437f550c3..4d5b8477f1f 100644
--- a/develop/tutorials/blinky/nRF52.html
+++ b/develop/tutorials/blinky/nRF52.html
@@ -334,16 +334,12 @@ <h2><a class="toc-backref" href="#id3">Create the Targets</a><a class="headerlin
 <p>Note: This tutorial uses the Nordic nRF52-DK board. You must specify
 the correct bsp for the board you are using.</p>
 <ul class="simple">
-<li>For the Nordic Preview Dev Kit choose
-&#64;apache-mynewt-core/hw/bsp/nrf52pdk (as shown below)</li>
-<li>For the Nordic Dev Kit choose &#64;apache-mynewt-core/hw/bsp/nrf52dk
-instead (in the highlighted lines)</li>
 <li>For the Rigado Eval Kit choose &#64;apache-mynewt-core/hw/bsp/bmd300eval
 instead (in the highlighted lines)</li>
 </ul>
 <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create nrf52_boot
 <span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/boot
-<span class="hll"><span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/nrf52pdk
+<span class="hll"><span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/nrf52dk
 </span><span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">build_profile</span><span class="o">=</span>optimized
 </pre></div>
 </div>
@@ -360,11 +356,11 @@ <h2><a class="toc-backref" href="#id3">Create the Targets</a><a class="headerlin
 <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target show
 <span class="go">targets/nrf52_blinky</span>
 <span class="go">    app=apps/blinky</span>
-<span class="go">    bsp=@apache-mynewt-core/hw/bsp/nrf52pdk</span>
+<span class="go">    bsp=@apache-mynewt-core/hw/bsp/nrf52dk</span>
 <span class="go">    build_profile=debug</span>
 <span class="go">targets/nrf52_boot</span>
 <span class="go">    app=@apache-mynewt-core/apps/boot</span>
-<span class="go">    bsp=@apache-mynewt-core/hw/bsp/nrf52pdk</span>
+<span class="go">    bsp=@apache-mynewt-core/hw/bsp/nrf52dk</span>
 <span class="go">    build_profile=optimized</span>
 </pre></div>
 </div>
diff --git a/master/mkdocs/search_index.json b/master/mkdocs/search_index.json
index a5dccb7fd86..cbea9e9e060 100644
--- a/master/mkdocs/search_index.json
+++ b/master/mkdocs/search_index.json
@@ -2317,7 +2317,7 @@
         }, 
         {
             "location": "/os/tutorials/air_quality_sensor/", 
-            "text": "Air quality sensor project\n\n\nSetting up source tree for stuff you need\n\n\nTo start with, you need to create a new project under which you will do this development. So you type in:\n\n\n    $ mkdir $HOME/src\n    $ cd $HOME/src\n    $ newt new air_quality\n\n\n\n\n\nLet's say you are using Arduino Primo -- which is based on the Nordic Semi NRF52 chip -- as the platform. \nYou know you need the board support package for that hardware. You can look up its location, add it your \nproject, and fetch that along with the core OS components. Luckily, the Arduino Primo is supported in the \nMynewt Core, so there's nothing much to do here. \n\n\nYour project.yml file should look like this:\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ emacs project.yml \n\n    [user@IsMyLaptop:~/src/air_quality]$ cat project.yml\n    project.name: \nair_quality\n\n\n    project.repositories:\n        - apache-mynewt-core\n\n    # Use github\ns distribution mechanism for core ASF libraries.\n    # This provides mirroring automatically for us.\n    #\n    repository.apache-mynewt-core:\n        type: github\n        vers: 0-latest\n        user: apache\n        repo: mynewt-core\n\n    [user@IsMyLaptop:~/src/air_quality]$ newt install\n    apache-mynewt-core\n    [user@IsMyLaptop:~/src/air_quality]$ ls repos/\n    apache-mynewt-core\n\n\n\n\n\nGood. You want to make sure you have all the needed bits for supporting your board; \nso you decide to build the blinky project for the platform first.\n\n\nNow create a target for it and build it. Easiest way to proceed is to copy the existing target for blinky, and modify it to build for Arduino Primo board.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target copy my_blinky_sim blink_primo\nTarget successfully copied; targets/my_blinky_sim --\n targets/blink_primo\n[user@IsMyLaptop:~/src/air_quality]$ newt target set blink_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt build blink_primo\nCompiling hal_bsp.c\n...\nLinking blinky.elf\nApp successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf\n\n\n\n\n\nGood.\n\n\nYou know that this platform uses bootloader, which means you have to create a target for that too.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create boot_primo\nTarget targets/boot_nrf successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target show\n@apache-mynewt-core/targets/unittest\n    bsp=hw/bsp/native\n    build_profile=debug\n    compiler=compiler/sim\ntargets/blink_primo\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n    build_profile=debug\ntargets/boot_primo\ntargets/my_blinky_sim\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/native\n    build_profile=debug\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo app=@apache-mynewt-core/apps/boot\nTarget targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo build_profile=optimized\nTarget targets/boot_nrf successfully set target.build_profile to optimized\n\n\n\n\n\nAnd then build it, and load it onto the board.\n\n\nnewt build boot_primo\n....\nLinking boot.elf\nApp successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf\n[user@IsMyLaptop:~/src/air_quality]\n$ newt load boot_primo\n\n\n\n\n\nAt this point, you may (or may not) see a bunch of error messages about not being able to connect to\nyour board, not being able to load the image, etc. If that's the case, and you haven't already, you\nshould most definitely go worth through the \nblinky_primo\n tutorial so that you\ncan properly communicate with your board.\n\n\nNext you must download the targets to board, and see that the LED actually blinks. You plug in the \nArduino Primo board to your laptop, and say:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\nLoading app image into slot 1\nError: couldn\nt open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\n\nError: exit status 1\n\nload - Load app image to target for \ntarget-name\n.\n\nUsage:\n  newt load [flags]\n\nExamples:\n  newt load \ntarget-name\n\n\n\nGlobal Flags:\n  -l, --loglevel string   Log level, defaults to WARN. (default \nWARN\n)\n  -o, --outfile string    Filename to tee log output to\n  -q, --quiet             Be quiet; only display error output.\n  -s, --silent            Be silent; don\nt output anything.\n  -v, --verbose           Enable verbose output when executing commands.\nexit status 1\n\n\n\n\n\nAh. Forgot to create an image out of the blinky binary. Note that every time you want to build and \nload a new firmware image to a target board, you need to run 'create-image' on it.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt create-image blink_primo 0.0.1\nApp image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\nBuild manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\n\n\n\n\n\nAnd it's blinking.\n\n\nShortcut for doing build/create-image/load/debug steps all in one is 'newt run' command. Check \nout the usage from command line help.\n\n\nCreate test project\n\n\nNow that you have your system setup, you can start creating your own stuff.\nFirst you want to create a project for yourself - you could start by using blinky as a project \ntemplate, but since we're going to want to be able to access the data via Bluetooth, let's \nuse the \nbleprph\n Bluetooth Peripheral project instead.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ mkdir apps/air_quality\n    [user@IsMyLaptop:~/src/air_quality]$ cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/\n    [user@IsMyLaptop:~/src/air_quality]$ cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/\n\n\n\n\n\nThen you modify the apps/air_quality/pkg.yml for air_quality in order to change the \npkg.name\n to be \napps/air_quality\n.\nYou'll need to add the \n@apache-mynewt-core/\n path to all the package dependencies, since the app no longer\nresides within the apache-mynewt-core repository.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat apps/air_quality/pkg.yml\npkg.name: apps/air_quality\npkg.type: app\npkg.description: BLE Air Quality application.\npkg.author: \nApache Mynewt \ndev@mynewt.apache.org\n\npkg.homepage: \nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps: \n    - \n@apache-mynewt-core/kernel/os\n\n    - \n@apache-mynewt-core/sys/shell\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/mgmt/newtmgr\n\n    - \n@apache-mynewt-core/mgmt/newtmgr/transport/ble\n\n    - \n@apache-mynewt-core/net/nimble/controller\n\n    - \n@apache-mynewt-core/net/nimble/host\n\n    - \n@apache-mynewt-core/net/nimble/host/services/ans\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gap\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gatt\n\n    - \n@apache-mynewt-core/net/nimble/host/store/ram\n\n    - \n@apache-mynewt-core/net/nimble/transport/ram\n\n    - \n@apache-mynewt-core/sys/console/full\n\n    - \n@apache-mynewt-core/sys/sysinit\n\n    - \n@apache-mynewt-core/sys/id\n\n\n\n\n\n\nAnd create a target for it:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create air_q\nTarget targets/air_q successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q app=apps/air_quality \nTarget targets/air_q successfully set target.app to apps/air_quality\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q build_profile=debug\nTarget targets/air_q successfully set target.build_profile to debug\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\n ....\nLinking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n\n\n\n\n\nCreate packages for drivers\n\n\nOne of the sensors you want to enable is SenseAir K30, which will connect to the board over a serial port.\nTo start development of the driver, you first need to create a package description for it, and add stubs for sources.\n\n\nThe first thing to do is to create the directory structure for your driver:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/include/senseair\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/src\n\n\n\n\n\nNow you can add the files you need. You'll need a pkg.yml to describe the driver, and then header stub followed by source stub.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/pkg.yml\n\n\n\n\n\n#\n\n\n# Licensed to the Apache Software Foundation (ASF) under one\n\n\n# or more contributor license agreements.  See the NOTICE file\n\n\n# distributed with this work for additional information\n\n\n# regarding copyright ownership.  The ASF licenses this file\n\n\n# to you under the Apache License, Version 2.0 (the\n\n\n# \nLicense\n); you may not use this file except in compliance\n\n\n# with the License.  You may obtain a copy of the License at\n\n\n# \n\n\n#  http:\n//www.apache.org/licenses/LICENSE-2.0\n\n\n#\n\n\n# Unless required by applicable law or agreed to in writing,\n\n\n# software distributed under the License is distributed on an\n\n\n# \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n# KIND, either express or implied.  See the License for the\n\n\n# specific language governing permissions and limitations\n\n\n# under the License.\n\n\n#\n\n\npkg\n.\nname\n: \nlibs/my_drivers/senseair\n\n\npkg\n.\ndescription\n: \nHost\n \nside\n \nof\n \nthe\n \nnimble\n \nBluetooth\n \nSmart\n \nstack\n.\n\npkg\n.\nauthor\n: \nApache Mynewt \ndev@mynewt.apache.org\n\n\npkg\n.\nhomepage\n: \nhttp://mynewt.apache.org/\n\n\npkg\n.\nkeywords\n:\n    \n-\n \nble\n\n    \n-\n \nbluetooth\n\n\n\npkg\n.\ndeps\n:\n    \n-\n \n@apache-mynewt-core/kernel/os\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/include/senseair/senseair.h\n\n\n\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nvoid\n \nsenseair_init\n(\nvoid\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/src/senseair.c\n\n\n\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n}\n\n\n\n\n\nAnd add dependency to this package in your project yml file.\n\n\nHere's the listing from apps/air_quality/pkg.yml\n\n\npkg.name: apps/air_quality\npkg.type: app\npkg.description: Air quality sensor test\npkg.keywords:\n\npkg.deps:\n    - \n@apache-mynewt-core/libs/console/full\n\n    - \n@apache-mynewt-core/libs/newtmgr\n\n    - \n@apache-mynewt-core/libs/os\n\n    - \n@apache-mynewt-core/libs/shell\n\n    - \n@apache-mynewt-core/sys/config\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - libs/my_drivers/senseair\n\n\n\n\n\nAnd add a call to your main() to initialize this driver.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ diff project/blinky/src/main.c project/air_quality/src/main.c\n    28a29\n    \n #include \nsenseair/senseair.h\n\n    190a192\n    \n senseair_init();\n    [user@IsMyLaptop:~/src/air_quality\n\n\n\n\n\nThe ble_prph app runs everything in one task handler. For this project, we're going to add a second\ntask handler to respond to the shell, and then handle communicating with the senseair sensor for us.\n\n\n/** shell task settings. */\n\n\n#define SHELL_TASK_PRIO           2\n\n\n#define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))\n\n\n\nstruct\n \nos_eventq\n \nshell_evq\n;\n\nstruct\n \nos_task\n \nshell_task\n;\n\nbssnz_t\n \nos_stack_t\n \nshell_stack\n[\nSHELL_STACK_SIZE\n];\n\n\n\n\n\nThat defines the task, now we need to initialize it, add a task handler, and we're going to \nuse this task as our default task handler.\n\n\n/**\n\n\n * Event loop for the main shell task.\n\n\n */\n\n\nstatic\n \nvoid\n\n\nshell_task_handler\n(\nvoid\n \n*unused\n)\n{\n    \nwhile\n (\n1\n) {\n        \nos_eventq_run\n(\nshell_evq\n);\n    }\n}\n\n\n\n\n\nAnd in your \nmain()\n add:\n\n\n    \n/* Initialize shell eventq */\n\n    \nos_eventq_init\n(\nshell_evq\n);\n\n    \n/* Create the shell task.  \n\n\n     * All shell operations are performed in this task.\n\n\n     */\n\n    \nos_task_init\n(\nshell_task\n, \nshell\n, \nshell_task_handler\n,\n                              \nNULL\n, \nSHELL_TASK_PRIO\n, \nOS_WAIT_FOREVER\n,\n                              \nshell_stack\n, \nSHELL_STACK_SIZE\n);\n\n\n\n\n\nDon't forget to change your default task handler!\n\n\n    \nos_eventq_dflt_set\n(\nshell_evq\n);\n\n\n\n\n\nAnd then build it to make sure all goes well.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\nCompiling senseair.c\nArchiving senseair.a\nLinking air_quality.elf\nApp successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf\n\n\n\n\n\nAll looks good.\n\n\nAdd CLI commands for testing drivers\n\n\nWhile developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to \nenable the CLI\n, so all we'll need to do is add the propper values to the project's \nsyscfg.yml\n file:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1\n\n\n\n\n\nThen register your senseair command with the shell by adding the following to \nlibs/my_drivers/senseair/src/senseair.c\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nassert.h\n\n\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n    \nint\n \nrc\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nassert\n(\nrc\n \n==\n \n0\n);\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nconsole_printf\n(\nYay! Somebody called!\\n\n);\n    \nreturn\n \n0\n;\n\n}\n\n\n\n\n\nNow you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board \nhere\n.\n\n\nYou'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.\n\n\n    [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419: \n ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644: \n senseair\n    Yay! Somebody called!\n    1125: \n\n    53611: \n tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101: \n\n\n\n\n\n\nThat's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.\n\n\nUse of HAL for drivers\n\n\nThe sensor has a serial port connection, and that's how you are going to connect to it. Your original BSP, hw/bsp/arduino_primo_nrf52, has two UARTs set up.\nWe're using one for our shell/console. It also has a second UART set up as a 'bit-bang' UART but since the SenseAir only needs to\ncommunicate at 9600 baud, this bit-banged uart is plenty fast enough.\n\n\nYou'll have to make a small change to the \nsyscfg.yml\n file in your project's target directory to change  the pin definitions \nfor this second UART. Those changes are as follows:\n\n\n    UART_0_PIN_TX: 23\n    UART_0_PIN_RX: 24\n\n\n\n\n\nWith this in place, you can refer to serial port where your SenseAir sensor by a logical number. This makes the code more platform independent - you could connect this sensor to another board, like Olimex. You will also use the HAL UART abstraction to do the UART port setup and data transfer. That way you don't need to have any platform dependent pieces within your little driver.\n\n\nYou will now see what the driver code ends up looking like. Here's the header file, filled in from the stub you created earlier.\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nenum\n \nsenseair_read_type\n {\n        \nSENSEAIR_CO2\n,\n};\n\n\nint\n \nsenseair_init\n(\nint\n \nuartno\n);\n\n\nint\n \nsenseair_read\n(\nenum\n \nsenseair_read_type\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\nAs you can see, logical UART number has been added to the init routine. A 'read' function has been added, \nwhich is a blocking read. If you were making a commercial product, you would probably have a callback for reporting the results.\n\n\nAnd here is the source for the driver.\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n *\n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n#include\n \nstring.h\n\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nos/os.h\n\n\n\n#include\n \nhal/hal_uart.h\n\n\n\n#include\n \nsenseair/senseair.h\n\n\n\nstatic\n \nconst\n \nuint8_t\n \ncmd_read_co2\n[] \n=\n {\n    \n0xFE\n, \n0\nX44\n, \n0\nX00\n, \n0\nX08\n, \n0\nX02\n, \n0\nX9F\n, \n0\nX25\n\n};\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nstruct\n \nsenseair\n { \n    \nint\n \nuart\n;\n    \nstruct\n \nos_sem\n \nsema\n;\n    \nconst\n \nuint8_t\n \n*tx_data\n;\n    \nint\n \ntx_off\n;\n    \nint\n \ntx_len\n;\n    \nuint8_t\n \nrx_data\n[\n32\n]; \n    \nint\n \nrx_off\n;\n    \nint\n \nvalue\n;\n} \nsenseair\n;\n\n\nstatic\n \nint\n\n\nsenseair_tx_char\n(\nvoid\n \n*arg\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_off\n \n=\n \ns-\ntx_len\n) {\n    \n/*\n\n\n         * Command tx finished.\n\n\n         */\n\n        \ns-\ntx_data\n \n=\n \nNULL\n;\n        \nreturn\n \n-\n1\n;\n    }\n\n    \nrc\n \n=\n \ns-\ntx_data\n[\ns-\ntx_off\n];\n    \ns-\ntx_off++\n;\n    \nreturn\n \nrc\n;\n}\n\n\n/*\n\n\n * CRC for modbus over serial port.\n\n\n */\n\n\nstatic\n \nconst\n \nuint16_t\n \nmb_crc_tbl\n[] \n=\n {\n    \n0x0000\n, \n0xcc01\n, \n0xd801\n, \n0x1400\n, \n0xf001\n, \n0x3c00\n, \n0x2800\n, \n0xe401\n,\n    \n0xa001\n, \n0x6c00\n, \n0x7800\n, \n0xb401\n, \n0x5000\n, \n0x9c01\n, \n0x8801\n, \n0x4400\n\n};\n\n\nstatic\n \nuint16_t\n\n\nmb_crc\n(\nconst\n \nuint8_t\n \n*data\n, \nint\n \nlen\n, \nuint16_t\n \ncrc\n)\n{\n    \nwhile\n (\nlen--\n \n \n0\n) {\n        \ncrc\n \n^=\n \n*data++\n;\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n    }\n    \nreturn\n \ncrc\n;\n}\n\n\nstatic\n \nint\n\n\nmb_crc_check\n(\nconst\n \nvoid\n \n*pkt\n, \nint\n \nlen\n)\n{\n    \nuint16_t\n \ncrc\n, \ncmp\n;\n    \nuint8_t\n \n*bp\n \n=\n (\nuint8_t\n \n*\n)\npkt\n;\n\n    \nif\n (\nlen\n \n \nsizeof\n(\ncrc\n) \n+\n \n1\n) {\n        \nreturn\n \n-\n1\n;\n    }\n    \ncrc\n \n=\n \nmb_crc\n(\npkt\n, \nlen\n \n-\n \n2\n, \n0xffff\n);\n    \ncmp\n \n=\n \nbp\n[\nlen\n \n-\n \n2\n] \n|\n (\nbp\n[\nlen\n \n-\n \n1\n] \n \n8\n);\n    \nif\n (\ncrc\n \n!=\n \ncmp\n) {\n        \nreturn\n \n-\n1\n;\n    } \nelse\n {\n        \nreturn\n \n0\n;\n    }\n}\n\n\nstatic\n \nint\n\n\nsenseair_rx_char\n(\nvoid\n \n*arg\n, \nuint8_t\n \ndata\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n (\nstruct\n \nsenseair\n \n*\n)\narg\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\nrx_off\n \n=\n \nsizeof\n(\ns-\nrx_data\n)) {\n        \ns-\nrx_off\n \n=\n \n0\n;\n    }\n    \ns-\nrx_data\n[\ns-\nrx_off\n] \n=\n \ndata\n;\n    \ns-\nrx_off++\n;\n\n    \nif\n (\ns-\nrx_off\n \n==\n \n7\n) {\n        \nrc\n \n=\n \nmb_crc_check\n(\ns-\nrx_data\n, \ns-\nrx_off\n);\n        \nif\n (\nrc\n \n==\n \n0\n) {\n            \ns-\nvalue\n \n=\n \ns-\nrx_data\n[\n3\n] \n*\n \n256\n \n+\n \ns-\nrx_data\n[\n4\n];\n            \nos_sem_release\n(\ns-\nsema\n);\n        }\n    }\n    \nreturn\n \n0\n;\n}\n\n\nvoid\n\n\nsenseair_tx\n(\nstruct\n \nsenseair\n \n*s\n, \nconst\n \nuint8_t\n \n*tx_data\n, \nint\n \ndata_len\n)\n{\n    \ns-\ntx_data\n \n=\n \ntx_data\n;\n    \ns-\ntx_len\n \n=\n \ndata_len\n;\n    \ns-\ntx_off\n \n=\n \n0\n;\n    \ns-\nrx_off\n \n=\n \n0\n;\n\n    \nhal_uart_start_tx\n(\ns-\nuart\n);\n}\n\n\nint\n\n\nsenseair_read\n(\nenum\n \nsenseair_read_type\n \ntype\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nconst\n \nuint8_t\n \n*cmd\n;\n    \nint\n \ncmd_len\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_data\n) {\n        \n/*\n\n\n         * busy\n\n\n         */\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nswitch\n (\ntype\n) {\n    \ncase\n \nSENSEAIR_CO2\n:\n        \ncmd\n \n=\n \ncmd_read_co2\n;\n        \ncmd_len\n \n=\n \nsizeof\n(\ncmd_read_co2\n);\n        \nbreak\n;\n    \ndefault\n:\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nsenseair_tx\n(\ns\n, \ncmd\n, \ncmd_len\n);\n    \nrc\n \n=\n \nos_sem_pend\n(\ns-\nsema\n, \nOS_TICKS_PER_SEC\n \n/\n \n2\n);\n    \nif\n (\nrc\n \n==\n \nOS_TIMEOUT\n) {\n        \n/*\n\n\n         * timeout\n\n\n         */\n\n        \nreturn\n \n-\n2\n;\n    }\n    \nreturn\n \ns-\nvalue\n;\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nint\n \nvalue\n;\n    \nenum\n \nsenseair_read_type\n \ntype\n;\n\n    \nif\n (\nargc\n \n \n2\n) {\n\nusage\n:\n        \nconsole_printf\n(\n%s co2\\n\n, \nargv\n[\n0\n]);\n        \nreturn\n \n0\n;\n    }\n    \nif\n (\n!strcmp\n(\nargv\n[\n1\n], \nco2\n)) {\n        \ntype\n \n=\n \nSENSEAIR_CO2\n;\n    } \nelse\n {\n        \ngoto\n \nusage\n;\n    }\n    \nvalue\n \n=\n \nsenseair_read\n(\ntype\n);\n    \nif\n (\nvalue\n \n=\n \n0\n) {\n        \nconsole_printf\n(\nGot %d\\n\n, \nvalue\n);\n    } \nelse\n {\n        \nconsole_printf\n(\nError while reading: %d\\n\n, \nvalue\n);\n    }\n    \nreturn\n \n0\n;\n}\n\n\nint\n\n\nsenseair_init\n(\nint\n \nuartno\n)\n{\n    \nint\n \nrc\n;\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n\n    \nrc\n \n=\n \nos_sem_init\n(\ns-\nsema\n, \n1\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_init_cbs\n(\nuartno\n, \nsenseair_tx_char\n, \nNULL\n,\n      \nsenseair_rx_char\n, \nsenseair\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_config\n(\nuartno\n, \n9600\n, \n8\n, \n1\n, \nHAL_UART_PARITY_NONE\n,\n      \nHAL_UART_FLOW_CTL_NONE\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \ns-\nuart\n \n=\n \nuartno\n;\n\n    \nreturn\n \n0\n;\n}\n\n\n\n\n\nAnd your modified main() for senseair driver init.\n\n\nint\n\n\nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    ....\n    \nsenseair_init\n(\n0\n);\n    ....\n    }\n\n\n\n\n\nYou can see from the code that you are using the HAL interface to open a UART port, and using OS \nsemaphore as a way of blocking the task when waiting for read response to come back from the sensor.\n\n\nNow comes the fun part: Hooking up the sensor! It's fun because a) hooking up a sensor is always \nfun and b) the SenseAir sensor's PCB is entirely unlabeled, so you'll have to trust us on how to hook it up. \n\n\nSo here we go. \n\n\nYou'll have to do a little soldering. I soldered some header pins to the SenseAir K30 board to\nmake connecting wires easier using standard jumper wires, but you can also just solder wires\nstraight to the board if you prefer.\n\n\nHere's what your SenseAir board should look like once it's wired up:\n\n\n\n\nNow that you have that wired up, let's get the Arduino Primo wired up. A couple of things to note:\n\n\n\n\nThe Arduino Primo's 'console' UART is actually UART1. \n\n\nThe secondary (bit-banged) UART is UART0, so that's where we'll have to hook up the SenseAir.\n\n\n\n\nHere's what your Arduino Primo should now look like with everything wired in:\n\n\n\n\nEverything is wired and you're ready to go! Build and load your new app:\n\n\n$ newt build air_q\nBuilding target targets/air_q\nCompiling apps/air_quality/src/main.c\nArchiving apps_air_quality.a\nLinking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n$ newt create-image air_q 1.0.0\nApp image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img\n$ newt load air_q\nLoading app image into slot 1\n\n\n\n\n\nNow, you should be able to connect to your serial port and read values:\n\n\nuser@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    1185: \n ?\n    Commands:\n    1382:     stat      echo         ?    prompt     ticks     tasks\n    1390: mempools      date  senseair\n    1395: \n senseair\n    senseair co2\n    2143: \n senseair co2\n    Got 973\n\n\n\n\n\nAnd you're getting valid readings! Congratulations!\n\n\nNext we'll hook this all up via Bluetooth so that you can read those values remotely.", 
+            "text": "Air quality sensor project\n\n\nSetting up source tree for stuff you need\n\n\nTo start with, you need to create a new project under which you will do this development. So you type in:\n\n\n    $ mkdir $HOME/src\n    $ cd $HOME/src\n    $ newt new air_quality\n\n\n\n\n\nLet's say you are using Arduino Primo -- which is based on the Nordic Semi NRF52 chip -- as the platform. \nYou know you need the board support package for that hardware. You can look up its location, add it your \nproject, and fetch that along with the core OS components. Luckily, the Arduino Primo is supported in the \nMynewt Core, so there's nothing much to do here. \n\n\nYour project.yml file should look like this:\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ emacs project.yml \n\n    [user@IsMyLaptop:~/src/air_quality]$ cat project.yml\n    project.name: \nair_quality\n\n\n    project.repositories:\n        - apache-mynewt-core\n\n    # Use github\ns distribution mechanism for core ASF libraries.\n    # This provides mirroring automatically for us.\n    #\n    repository.apache-mynewt-core:\n        type: github\n        vers: 0-latest\n        user: apache\n        repo: mynewt-core\n\n    [user@IsMyLaptop:~/src/air_quality]$ newt install\n    apache-mynewt-core\n    [user@IsMyLaptop:~/src/air_quality]$ ls repos/\n    apache-mynewt-core\n\n\n\n\n\nGood. You want to make sure you have all the needed bits for supporting your board; \nso you decide to build the blinky project for the platform first.\n\n\nNow create a target for it and build it. Easiest way to proceed is to copy the existing target for blinky, and modify it to build for Arduino Primo board.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target copy my_blinky_sim blink_primo\nTarget successfully copied; targets/my_blinky_sim --\n targets/blink_primo\n[user@IsMyLaptop:~/src/air_quality]$ newt target set blink_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt build blink_primo\nCompiling hal_bsp.c\n...\nLinking blinky.elf\nApp successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf\n\n\n\n\n\nGood.\n\n\nYou know that this platform uses bootloader, which means you have to create a target for that too.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create boot_primo\nTarget targets/boot_nrf successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target show\n@apache-mynewt-core/targets/unittest\n    bsp=hw/bsp/native\n    build_profile=debug\n    compiler=compiler/sim\ntargets/blink_primo\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n    build_profile=debug\ntargets/boot_primo\ntargets/my_blinky_sim\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/native\n    build_profile=debug\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo app=@apache-mynewt-core/apps/boot\nTarget targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo build_profile=optimized\nTarget targets/boot_nrf successfully set target.build_profile to optimized\n\n\n\n\n\nAnd then build it, and load it onto the board.\n\n\nnewt build boot_primo\n....\nLinking boot.elf\nApp successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf\n[user@IsMyLaptop:~/src/air_quality]\n$ newt load boot_primo\n\n\n\n\n\nAt this point, you may (or may not) see a bunch of error messages about not being able to connect to\nyour board, not being able to load the image, etc. If that's the case, and you haven't already, you\nshould most definitely go worth through the \nblinky_primo\n tutorial so that you\ncan properly communicate with your board.\n\n\nNext you must download the targets to board, and see that the LED actually blinks. You plug in the \nArduino Primo board to your laptop, and say:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\nLoading app image into slot 1\nError: couldn\nt open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\n\nError: exit status 1\n\nload - Load app image to target for \ntarget-name\n.\n\nUsage:\n  newt load [flags]\n\nExamples:\n  newt load \ntarget-name\n\n\n\nGlobal Flags:\n  -l, --loglevel string   Log level, defaults to WARN. (default \nWARN\n)\n  -o, --outfile string    Filename to tee log output to\n  -q, --quiet             Be quiet; only display error output.\n  -s, --silent            Be silent; don\nt output anything.\n  -v, --verbose           Enable verbose output when executing commands.\nexit status 1\n\n\n\n\n\nAh. Forgot to create an image out of the blinky binary. Note that every time you want to build and \nload a new firmware image to a target board, you need to run 'create-image' on it.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt create-image blink_primo 0.0.1\nApp image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\nBuild manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\n\n\n\n\n\nAnd it's blinking.\n\n\nShortcut for doing build/create-image/load/debug steps all in one is 'newt run' command. Check \nout the usage from command line help.\n\n\nCreate test project\n\n\nNow that you have your system setup, you can start creating your own stuff.\nFirst you want to create a project for yourself - you could start by using blinky as a project \ntemplate, but since we're going to want to be able to access the data via Bluetooth, let's \nuse the \nbleprph\n Bluetooth Peripheral project instead.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ mkdir apps/air_quality\n    [user@IsMyLaptop:~/src/air_quality]$ cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/\n    [user@IsMyLaptop:~/src/air_quality]$ cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/\n\n\n\n\n\nThen you modify the apps/air_quality/pkg.yml for air_quality in order to change the \npkg.name\n to be \napps/air_quality\n.\nYou'll need to add the \n@apache-mynewt-core/\n path to all the package dependencies, since the app no longer\nresides within the apache-mynewt-core repository.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat apps/air_quality/pkg.yml\npkg.name: apps/air_quality\npkg.type: app\npkg.description: BLE Air Quality application.\npkg.author: \nApache Mynewt \ndev@mynewt.apache.org\n\npkg.homepage: \nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps: \n    - \n@apache-mynewt-core/kernel/os\n\n    - \n@apache-mynewt-core/sys/shell\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/mgmt/newtmgr\n\n    - \n@apache-mynewt-core/mgmt/newtmgr/transport/ble\n\n    - \n@apache-mynewt-core/net/nimble/controller\n\n    - \n@apache-mynewt-core/net/nimble/host\n\n    - \n@apache-mynewt-core/net/nimble/host/services/ans\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gap\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gatt\n\n    - \n@apache-mynewt-core/net/nimble/host/store/ram\n\n    - \n@apache-mynewt-core/net/nimble/transport/ram\n\n    - \n@apache-mynewt-core/sys/console/full\n\n    - \n@apache-mynewt-core/sys/sysinit\n\n    - \n@apache-mynewt-core/sys/id\n\n\n\n\n\n\nAnd create a target for it:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create air_q\nTarget targets/air_q successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q app=apps/air_quality \nTarget targets/air_q successfully set target.app to apps/air_quality\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q build_profile=debug\nTarget targets/air_q successfully set target.build_profile to debug\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\n ....\nLinking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n\n\n\n\n\nCreate packages for drivers\n\n\nOne of the sensors you want to enable is SenseAir K30, which will connect to the board over a serial port.\nTo start development of the driver, you first need to create a package description for it, and add stubs for sources.\n\n\nThe first thing to do is to create the directory structure for your driver:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/include/senseair\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/src\n\n\n\n\n\nNow you can add the files you need. You'll need a pkg.yml to describe the driver, and then header stub followed by source stub.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/pkg.yml\n\n\n\n\n\n#\n\n\n# Licensed to the Apache Software Foundation (ASF) under one\n\n\n# or more contributor license agreements.  See the NOTICE file\n\n\n# distributed with this work for additional information\n\n\n# regarding copyright ownership.  The ASF licenses this file\n\n\n# to you under the Apache License, Version 2.0 (the\n\n\n# \nLicense\n); you may not use this file except in compliance\n\n\n# with the License.  You may obtain a copy of the License at\n\n\n# \n\n\n#  http:\n//www.apache.org/licenses/LICENSE-2.0\n\n\n#\n\n\n# Unless required by applicable law or agreed to in writing,\n\n\n# software distributed under the License is distributed on an\n\n\n# \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n# KIND, either express or implied.  See the License for the\n\n\n# specific language governing permissions and limitations\n\n\n# under the License.\n\n\n#\n\n\npkg\n.\nname\n: \nlibs/my_drivers/senseair\n\n\npkg\n.\ndescription\n: \nHost\n \nside\n \nof\n \nthe\n \nnimble\n \nBluetooth\n \nSmart\n \nstack\n.\n\npkg\n.\nauthor\n: \nApache Mynewt \ndev@mynewt.apache.org\n\n\npkg\n.\nhomepage\n: \nhttp://mynewt.apache.org/\n\n\npkg\n.\nkeywords\n:\n    \n-\n \nble\n\n    \n-\n \nbluetooth\n\n\n\npkg\n.\ndeps\n:\n    \n-\n \n@apache-mynewt-core/kernel/os\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/include/senseair/senseair.h\n\n\n\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nvoid\n \nsenseair_init\n(\nvoid\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/src/senseair.c\n\n\n\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n}\n\n\n\n\n\nAnd add dependency to this package in your project yml file.\n\n\nHere's the listing from apps/air_quality/pkg.yml\n\n\npkg.name: apps/air_quality\npkg.type: app\npkg.description: Air quality sensor test\npkg.keywords:\n\npkg.deps:\n    - \n@apache-mynewt-core/libs/console/full\n\n    - \n@apache-mynewt-core/libs/newtmgr\n\n    - \n@apache-mynewt-core/libs/os\n\n    - \n@apache-mynewt-core/libs/shell\n\n    - \n@apache-mynewt-core/sys/config\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - libs/my_drivers/senseair\n\n\n\n\n\nAnd add a call to your main() to initialize this driver.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ diff project/blinky/src/main.c project/air_quality/src/main.c\n    28a29\n    \n #include \nsenseair/senseair.h\n\n    190a192\n    \n senseair_init();\n    [user@IsMyLaptop:~/src/air_quality\n\n\n\n\n\nThe ble_prph app runs everything in one task handler. For this project, we're going to add a second\ntask handler to respond to the shell, and then handle communicating with the senseair sensor for us.\n\n\n/** shell task settings. */\n\n\n#define SHELL_TASK_PRIO           2\n\n\n#define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))\n\n\n\nstruct\n \nos_eventq\n \nshell_evq\n;\n\nstruct\n \nos_task\n \nshell_task\n;\n\nbssnz_t\n \nos_stack_t\n \nshell_stack\n[\nSHELL_STACK_SIZE\n];\n\n\n\n\n\nThat defines the task, now we need to initialize it, add a task handler, and we're going to \nuse this task as our default task handler.\n\n\n/**\n\n\n * Event loop for the main shell task.\n\n\n */\n\n\nstatic\n \nvoid\n\n\nshell_task_handler\n(\nvoid\n \n*unused\n)\n{\n    \nwhile\n (\n1\n) {\n        \nos_eventq_run\n(\nshell_evq\n);\n    }\n}\n\n\n\n\n\nAnd in your \nmain()\n add:\n\n\n    \n/* Initialize shell eventq */\n\n    \nos_eventq_init\n(\nshell_evq\n);\n\n    \n/* Create the shell task.  \n\n\n     * All shell operations are performed in this task.\n\n\n     */\n\n    \nos_task_init\n(\nshell_task\n, \nshell\n, \nshell_task_handler\n,\n                              \nNULL\n, \nSHELL_TASK_PRIO\n, \nOS_WAIT_FOREVER\n,\n                              \nshell_stack\n, \nSHELL_STACK_SIZE\n);\n\n\n\n\n\nDon't forget to change your default task handler!\n\n\n    \nos_eventq_dflt_set\n(\nshell_evq\n);\n\n\n\n\n\nAnd then build it to make sure all goes well.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\nCompiling senseair.c\nArchiving senseair.a\nLinking air_quality.elf\nApp successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf\n\n\n\n\n\nAll looks good.\n\n\nAdd CLI commands for testing drivers\n\n\nWhile developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to \nenable the CLI\n, so all we'll need to do is add the propper values to the project's \nsyscfg.yml\n file:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1\n\n\n\n\n\nThen register your senseair command with the shell by adding the following to \nlibs/my_drivers/senseair/src/senseair.c\n\n\n#include\n \nsyscfg/syscfg.h\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nassert.h\n\n\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n    \nint\n \nrc\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nassert\n(\nrc\n \n==\n \n0\n);\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nconsole_printf\n(\nYay! Somebody called!\\n\n);\n    \nreturn\n \n0\n;\n\n}\n\n\n\n\n\nNow you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board \nhere\n.\n\n\nYou'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.\n\n\n    [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419: \n ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644: \n senseair\n    Yay! Somebody called!\n    1125: \n\n    53611: \n tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101: \n\n\n\n\n\n\nThat's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.\n\n\nUse of HAL for drivers\n\n\nThe sensor has a serial port connection, and that's how you are going to connect to it. Your original BSP, hw/bsp/arduino_primo_nrf52, has two UARTs set up.\nWe're using one for our shell/console. It also has a second UART set up as a 'bit-bang' UART but since the SenseAir only needs to\ncommunicate at 9600 baud, this bit-banged uart is plenty fast enough.\n\n\nYou'll have to make a small change to the \nsyscfg.yml\n file in your project's target directory to change  the pin definitions \nfor this second UART. Those changes are as follows:\n\n\n    UART_0_PIN_TX: 23\n    UART_0_PIN_RX: 24\n\n\n\n\n\nWith this in place, you can refer to serial port where your SenseAir sensor by a logical number. This makes the code more platform independent - you could connect this sensor to another board, like Olimex. You will also use the HAL UART abstraction to do the UART port setup and data transfer. That way you don't need to have any platform dependent pieces within your little driver.\n\n\nYou will now see what the driver code ends up looking like. Here's the header file, filled in from the stub you created earlier.\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nenum\n \nsenseair_read_type\n {\n        \nSENSEAIR_CO2\n,\n};\n\n\nint\n \nsenseair_init\n(\nint\n \nuartno\n);\n\n\nint\n \nsenseair_read\n(\nenum\n \nsenseair_read_type\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\nAs you can see, logical UART number has been added to the init routine. A 'read' function has been added, \nwhich is a blocking read. If you were making a commercial product, you would probably have a callback for reporting the results.\n\n\nAnd here is the source for the driver.\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n *\n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n#include\n \nstring.h\n\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nos/os.h\n\n\n\n#include\n \nhal/hal_uart.h\n\n\n\n#include\n \nsenseair/senseair.h\n\n\n\nstatic\n \nconst\n \nuint8_t\n \ncmd_read_co2\n[] \n=\n {\n    \n0xFE\n, \n0\nX44\n, \n0\nX00\n, \n0\nX08\n, \n0\nX02\n, \n0\nX9F\n, \n0\nX25\n\n};\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nstruct\n \nsenseair\n { \n    \nint\n \nuart\n;\n    \nstruct\n \nos_sem\n \nsema\n;\n    \nconst\n \nuint8_t\n \n*tx_data\n;\n    \nint\n \ntx_off\n;\n    \nint\n \ntx_len\n;\n    \nuint8_t\n \nrx_data\n[\n32\n]; \n    \nint\n \nrx_off\n;\n    \nint\n \nvalue\n;\n} \nsenseair\n;\n\n\nstatic\n \nint\n\n\nsenseair_tx_char\n(\nvoid\n \n*arg\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_off\n \n=\n \ns-\ntx_len\n) {\n    \n/*\n\n\n         * Command tx finished.\n\n\n         */\n\n        \ns-\ntx_data\n \n=\n \nNULL\n;\n        \nreturn\n \n-\n1\n;\n    }\n\n    \nrc\n \n=\n \ns-\ntx_data\n[\ns-\ntx_off\n];\n    \ns-\ntx_off++\n;\n    \nreturn\n \nrc\n;\n}\n\n\n/*\n\n\n * CRC for modbus over serial port.\n\n\n */\n\n\nstatic\n \nconst\n \nuint16_t\n \nmb_crc_tbl\n[] \n=\n {\n    \n0x0000\n, \n0xcc01\n, \n0xd801\n, \n0x1400\n, \n0xf001\n, \n0x3c00\n, \n0x2800\n, \n0xe401\n,\n    \n0xa001\n, \n0x6c00\n, \n0x7800\n, \n0xb401\n, \n0x5000\n, \n0x9c01\n, \n0x8801\n, \n0x4400\n\n};\n\n\nstatic\n \nuint16_t\n\n\nmb_crc\n(\nconst\n \nuint8_t\n \n*data\n, \nint\n \nlen\n, \nuint16_t\n \ncrc\n)\n{\n    \nwhile\n (\nlen--\n \n \n0\n) {\n        \ncrc\n \n^=\n \n*data++\n;\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n    }\n    \nreturn\n \ncrc\n;\n}\n\n\nstatic\n \nint\n\n\nmb_crc_check\n(\nconst\n \nvoid\n \n*pkt\n, \nint\n \nlen\n)\n{\n    \nuint16_t\n \ncrc\n, \ncmp\n;\n    \nuint8_t\n \n*bp\n \n=\n (\nuint8_t\n \n*\n)\npkt\n;\n\n    \nif\n (\nlen\n \n \nsizeof\n(\ncrc\n) \n+\n \n1\n) {\n        \nreturn\n \n-\n1\n;\n    }\n    \ncrc\n \n=\n \nmb_crc\n(\npkt\n, \nlen\n \n-\n \n2\n, \n0xffff\n);\n    \ncmp\n \n=\n \nbp\n[\nlen\n \n-\n \n2\n] \n|\n (\nbp\n[\nlen\n \n-\n \n1\n] \n \n8\n);\n    \nif\n (\ncrc\n \n!=\n \ncmp\n) {\n        \nreturn\n \n-\n1\n;\n    } \nelse\n {\n        \nreturn\n \n0\n;\n    }\n}\n\n\nstatic\n \nint\n\n\nsenseair_rx_char\n(\nvoid\n \n*arg\n, \nuint8_t\n \ndata\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n (\nstruct\n \nsenseair\n \n*\n)\narg\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\nrx_off\n \n=\n \nsizeof\n(\ns-\nrx_data\n)) {\n        \ns-\nrx_off\n \n=\n \n0\n;\n    }\n    \ns-\nrx_data\n[\ns-\nrx_off\n] \n=\n \ndata\n;\n    \ns-\nrx_off++\n;\n\n    \nif\n (\ns-\nrx_off\n \n==\n \n7\n) {\n        \nrc\n \n=\n \nmb_crc_check\n(\ns-\nrx_data\n, \ns-\nrx_off\n);\n        \nif\n (\nrc\n \n==\n \n0\n) {\n            \ns-\nvalue\n \n=\n \ns-\nrx_data\n[\n3\n] \n*\n \n256\n \n+\n \ns-\nrx_data\n[\n4\n];\n            \nos_sem_release\n(\ns-\nsema\n);\n        }\n    }\n    \nreturn\n \n0\n;\n}\n\n\nvoid\n\n\nsenseair_tx\n(\nstruct\n \nsenseair\n \n*s\n, \nconst\n \nuint8_t\n \n*tx_data\n, \nint\n \ndata_len\n)\n{\n    \ns-\ntx_data\n \n=\n \ntx_data\n;\n    \ns-\ntx_len\n \n=\n \ndata_len\n;\n    \ns-\ntx_off\n \n=\n \n0\n;\n    \ns-\nrx_off\n \n=\n \n0\n;\n\n    \nhal_uart_start_tx\n(\ns-\nuart\n);\n}\n\n\nint\n\n\nsenseair_read\n(\nenum\n \nsenseair_read_type\n \ntype\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nconst\n \nuint8_t\n \n*cmd\n;\n    \nint\n \ncmd_len\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_data\n) {\n        \n/*\n\n\n         * busy\n\n\n         */\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nswitch\n (\ntype\n) {\n    \ncase\n \nSENSEAIR_CO2\n:\n        \ncmd\n \n=\n \ncmd_read_co2\n;\n        \ncmd_len\n \n=\n \nsizeof\n(\ncmd_read_co2\n);\n        \nbreak\n;\n    \ndefault\n:\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nsenseair_tx\n(\ns\n, \ncmd\n, \ncmd_len\n);\n    \nrc\n \n=\n \nos_sem_pend\n(\ns-\nsema\n, \nOS_TICKS_PER_SEC\n \n/\n \n2\n);\n    \nif\n (\nrc\n \n==\n \nOS_TIMEOUT\n) {\n        \n/*\n\n\n         * timeout\n\n\n         */\n\n        \nreturn\n \n-\n2\n;\n    }\n    \nreturn\n \ns-\nvalue\n;\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nint\n \nvalue\n;\n    \nenum\n \nsenseair_read_type\n \ntype\n;\n\n    \nif\n (\nargc\n \n \n2\n) {\n\nusage\n:\n        \nconsole_printf\n(\n%s co2\\n\n, \nargv\n[\n0\n]);\n        \nreturn\n \n0\n;\n    }\n    \nif\n (\n!strcmp\n(\nargv\n[\n1\n], \nco2\n)) {\n        \ntype\n \n=\n \nSENSEAIR_CO2\n;\n    } \nelse\n {\n        \ngoto\n \nusage\n;\n    }\n    \nvalue\n \n=\n \nsenseair_read\n(\ntype\n);\n    \nif\n (\nvalue\n \n=\n \n0\n) {\n        \nconsole_printf\n(\nGot %d\\n\n, \nvalue\n);\n    } \nelse\n {\n        \nconsole_printf\n(\nError while reading: %d\\n\n, \nvalue\n);\n    }\n    \nreturn\n \n0\n;\n}\n\n\nint\n\n\nsenseair_init\n(\nint\n \nuartno\n)\n{\n    \nint\n \nrc\n;\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n\n    \nrc\n \n=\n \nos_sem_init\n(\ns-\nsema\n, \n1\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_init_cbs\n(\nuartno\n, \nsenseair_tx_char\n, \nNULL\n,\n      \nsenseair_rx_char\n, \nsenseair\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_config\n(\nuartno\n, \n9600\n, \n8\n, \n1\n, \nHAL_UART_PARITY_NONE\n,\n      \nHAL_UART_FLOW_CTL_NONE\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \ns-\nuart\n \n=\n \nuartno\n;\n\n    \nreturn\n \n0\n;\n}\n\n\n\n\n\nAnd your modified main() for senseair driver init.\n\n\nint\n\n\nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    ....\n    \nsenseair_init\n(\n0\n);\n    ....\n    }\n\n\n\n\n\nYou can see from the code that you are using the HAL interface to open a UART port, and using OS \nsemaphore as a way of blocking the task when waiting for read response to come back from the sensor.\n\n\nNow comes the fun part: Hooking up the sensor! It's fun because a) hooking up a sensor is always \nfun and b) the SenseAir sensor's PCB is entirely unlabeled, so you'll have to trust us on how to hook it up. \n\n\nSo here we go. \n\n\nYou'll have to do a little soldering. I soldered some header pins to the SenseAir K30 board to\nmake connecting wires easier using standard jumper wires, but you can also just solder wires\nstraight to the board if you prefer.\n\n\nHere's what your SenseAir board should look like once it's wired up:\n\n\n\n\nNow that you have that wired up, let's get the Arduino Primo wired up. A couple of things to note:\n\n\n\n\nThe Arduino Primo's 'console' UART is actually UART1. \n\n\nThe secondary (bit-banged) UART is UART0, so that's where we'll have to hook up the SenseAir.\n\n\n\n\nHere's what your Arduino Primo should now look like with everything wired in:\n\n\n\n\nEverything is wired and you're ready to go! Build and load your new app:\n\n\n$ newt build air_q\nBuilding target targets/air_q\nCompiling apps/air_quality/src/main.c\nArchiving apps_air_quality.a\nLinking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n$ newt create-image air_q 1.0.0\nApp image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img\n$ newt load air_q\nLoading app image into slot 1\n\n\n\n\n\nNow, you should be able to connect to your serial port and read values:\n\n\nuser@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    1185: \n ?\n    Commands:\n    1382:     stat      echo         ?    prompt     ticks     tasks\n    1390: mempools      date  senseair\n    1395: \n senseair\n    senseair co2\n    2143: \n senseair co2\n    Got 973\n\n\n\n\n\nAnd you're getting valid readings! Congratulations!\n\n\nNext we'll hook this all up via Bluetooth so that you can read those values remotely.", 
             "title": "Basic Air Quality Sensor"
         }, 
         {
@@ -2342,7 +2342,7 @@
         }, 
         {
             "location": "/os/tutorials/air_quality_sensor/#add-cli-commands-for-testing-drivers", 
-            "text": "While developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to  enable the CLI , so all we'll need to do is add the propper values to the project's  syscfg.yml  file:  [user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1  Then register your senseair command with the shell by adding the following to  libs/my_drivers/senseair/src/senseair.c  #include   shell/shell.h  #include   console/console.h  #include   assert.h  static   int   senseair_shell_func ( int   argc ,  char   **argv ); static   struct   shell_cmd   senseair_cmd   =  {\n    . sc_cmd   =   senseair ,\n    . sc_cmd_func   =   senseair_shell_func ,\n}; void  senseair_init ( void )\n{\n     int   rc ;\n\n     rc   =   shell_cmd_register ( senseair_cmd );\n     assert ( rc   ==   0 );\n} static   int  senseair_shell_func ( int   argc ,  char   **argv )\n{\n     console_printf ( Yay! Somebody called!\\n );\n     return   0 ;\n\n}  Now you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board  here .  You'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.      [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419:   ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644:   senseair\n    Yay! Somebody called!\n    1125:  \n    53611:   tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101:    That's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.", 
+            "text": "While developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to  enable the CLI , so all we'll need to do is add the propper values to the project's  syscfg.yml  file:  [user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1  Then register your senseair command with the shell by adding the following to  libs/my_drivers/senseair/src/senseair.c  #include   syscfg/syscfg.h  #include   shell/shell.h  #include   console/console.h  #include   assert.h  static   int   senseair_shell_func ( int   argc ,  char   **argv ); static   struct   shell_cmd   senseair_cmd   =  {\n    . sc_cmd   =   senseair ,\n    . sc_cmd_func   =   senseair_shell_func ,\n}; void  senseair_init ( void )\n{\n     int   rc ;\n\n     rc   =   shell_cmd_register ( senseair_cmd );\n     assert ( rc   ==   0 );\n} static   int  senseair_shell_func ( int   argc ,  char   **argv )\n{\n     console_printf ( Yay! Somebody called!\\n );\n     return   0 ;\n\n}  Now you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board  here .  You'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.      [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419:   ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644:   senseair\n    Yay! Somebody called!\n    1125:  \n    53611:   tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101:    That's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.", 
             "title": "Add CLI commands for testing drivers"
         }, 
         {
@@ -3767,7 +3767,7 @@
         }, 
         {
             "location": "/os/core_os/task/task/", 
-            "text": "Task\n\n\nA task, along with the scheduler, forms the basis of the Mynewt OS. A task \nconsists of two basic elements: a task stack and a task function. The task \nfunction is basically a forever loop, waiting for some \"event\" to wake it up. \nThere are two methods used to signal a task that it has work to do: event queues \nand semaphores (see the appropriate manual sections for descriptions of these \nfeatures).\n\n\nThe Mynewt OS is a multi-tasking, preemptive OS. Every task is assigned a task \npriority (from 0 to 255), with 0 being the highest priority task. If a higher \npriority task than the current task wants to run, the scheduler preempts the \ncurrently running task and switches context to the higher priority task. This is \njust a fancy way of saying that the processor stack pointer now points to the \nstack of the higher priority task and the task resumes execution where it left \noff.\n\n\nTasks run to completion unless they are preempted by a higher priority task. The \ndeveloper must insure that tasks eventually \"sleep\"; otherwise lower priority \ntasks will never get a chance to run (actually, any task lower in priority than \nthe task that never sleeps). A task will be put to sleep in the following cases: \nit puts itself to sleep using \nos_time_delay()\n, it waits on an event queue \nwhich is empty or attempts to obtain a mutex or a semaphore that is currently \nowned by another task.\n\n\nNote that other sections of the manual describe these OS features in more \ndetail.\n\n\nDescription\n\n\nIn order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. NOTE: be careful when declaring your stack! The stack is in units \nof \nos_stack_t\n sized elements (generally 32-bits). Looking at the example given \nbelow and assuming \nos_stack_t\n is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes. \n\n\nA task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!\n\n\nIn order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the \nos_task_init()\n function is called. Once \nos_task_init()\n is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before \nos_start()\n is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.\n\n\nInformation about a task can be obtained using the \nos_task_info_get_next()\n \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type \nos_task_info\n and is described below.\n\n\nThe following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.\n\n\n/* Create a simple \nproject\n with a task that blinks a LED every second */\n\n\n\n/* Define task stack and task object */\n\n\n#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) \n\n\n#define MY_STACK_SIZE       (64) \n\n\nstruct\n \nos_task\n \nmy_task\n; \n\nos_stack_t\n \nmy_task_stack\n[\nMY_STACK_SIZE\n]; \n\n\n/* This is the task function */\n\n\nvoid\n \nmy_task_func\n(\nvoid\n \n*arg\n) {\n    \n/* Set the led pin as an output */\n\n    \nhal_gpio_init_out\n(\nLED_BLINK_PIN\n, \n1\n);\n\n    \n/* The task is a forever loop that does not return */\n\n    \nwhile\n (\n1\n) {\n        \n/* Wait one second */\n \n        \nos_time_delay\n(\n1000\n);\n\n        \n/* Toggle the LED */\n \n        \nhal_gpio_toggle\n(\nLED_BLINK_PIN\n);\n    }\n}\n\n\n/* This is the main function for the project */\n\n\nint\n \nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n) \n{\n\n    \n/* Perform system and package initialization */\n\n    \nsysinit\n();\n\n    \n/* Initialize the task */\n\n    \nos_task_init\n(\nmy_task\n, \nmy_task\n, \nmy_task_func\n, \nNULL\n, \nMY_TASK_PRIO\n, \n                 \nOS_WAIT_FOREVER\n, \nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n    \n/*  Process events from the default event queue.  */\n\n    \nwhile\n (\n1\n) {\n       \nos_eventq_run\n(\nos_eventq_dflt_get\n());\n    }\n    \n/* main never returns */\n  \n}\n\n\n\n\n\nData structures\n\n\n/* The highest and lowest task priorities */\n\n\n#define OS_TASK_PRI_HIGHEST         (0)\n\n\n#define OS_TASK_PRI_LOWEST          (0xff)\n\n\n\n/* Task states */\n\n\ntypedef\n \nenum\n \nos_task_state\n {\n    \nOS_TASK_READY\n \n=\n \n1\n, \n    \nOS_TASK_SLEEP\n \n=\n \n2\n\n} \nos_task_state_t\n;\n\n\n/* Task flags */\n\n\n#define OS_TASK_FLAG_NO_TIMEOUT     (0x0001U)\n\n\n#define OS_TASK_FLAG_SEM_WAIT       (0x0002U)\n\n\n#define OS_TASK_FLAG_MUTEX_WAIT     (0x0004U)\n\n\n\ntypedef\n \nvoid\n (\n*os_task_func_t\n)(\nvoid\n \n*\n);\n\n\n#define OS_TASK_MAX_NAME_LEN (32)\n\n\n\n\n\n\n\n\nstruct\n \nos_task\n {\n    \nos_stack_t\n \n*t_stackptr\n;\n    \nos_stack_t\n \n*t_stacktop\n;\n\n    \nuint16_t\n \nt_stacksize\n;\n    \nuint16_t\n \nt_flags\n;\n\n    \nuint8_t\n \nt_taskid\n;\n    \nuint8_t\n \nt_prio\n;\n    \nuint8_t\n \nt_state\n;\n    \nuint8_t\n \nt_pad\n;\n\n    \nchar\n \n*t_name\n;\n    \nos_task_func_t\n \nt_func\n;\n    \nvoid\n \n*t_arg\n;\n\n    \nvoid\n \n*t_obj\n;\n\n    \nstruct\n \nos_sanity_check\n \nt_sanity_check\n; \n\n    \nos_time_t\n \nt_next_wakeup\n;\n    \nos_time_t\n \nt_run_time\n;\n    \nuint32_t\n \nt_ctx_sw_cnt\n;\n\n    \n/* Global list of all tasks, irrespective of run or sleep lists */\n\n    \nSTAILQ_ENTRY\n(\nos_task\n) \nt_os_task_list\n;\n\n    \n/* Used to chain task to either the run or sleep list */\n \n    \nTAILQ_ENTRY\n(\nos_task\n) \nt_os_list\n;\n\n    \n/* Used to chain task to an object such as a semaphore or mutex */\n\n    \nSLIST_ENTRY\n(\nos_task\n) \nt_obj_list\n;\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nt_stackptr\n\n\nCurrent stack pointer\n\n\n\n\n\n\nt_stacktop\n\n\nThe address of the top of the task stack. The stack grows downward\n\n\n\n\n\n\nt_stacksize\n\n\nThe size of the stack, in units of os_stack_t (not bytes!)\n\n\n\n\n\n\nt_flags\n\n\nTask flags (see flag definitions)\n\n\n\n\n\n\nt_taskid\n\n\nA numeric id assigned to each task\n\n\n\n\n\n\nt_prio\n\n\nThe priority of the task. The lower the number, the higher the priority\n\n\n\n\n\n\nt_state\n\n\nThe task state (see state definitions)\n\n\n\n\n\n\nt_pad\n\n\npadding (for alignment)\n\n\n\n\n\n\nt_name\n\n\nName of task\n\n\n\n\n\n\nt_func\n\n\nPointer to task function\n\n\n\n\n\n\nt_obj\n\n\nGeneric object used by mutexes and semaphores when the task is waiting on a mutex or semaphore\n\n\n\n\n\n\nt_sanity_check\n\n\nSanity task data structure\n\n\n\n\n\n\nt_next_wakeup\n\n\nOS time when task is next scheduled to wake up\n\n\n\n\n\n\nt_run_time\n\n\nThe amount of os time ticks this task has been running\n\n\n\n\n\n\nt_ctx_sw_cnt\n\n\nThe number of times that this task has been run\n\n\n\n\n\n\nt_os_task_list\n\n\nList pointer for global task list. All tasks are placed on this list\n\n\n\n\n\n\nt_os_list\n\n\nList pointer used by either the active task list or the sleeping task list\n\n\n\n\n\n\nt_obj_list\n\n\nList pointer for tasks waiting on a semaphore or mutex\n\n\n\n\n\n\n\n\n\n\nstruct\n \nos_task_info\n {\n    \nuint8_t\n \noti_prio\n;\n    \nuint8_t\n \noti_taskid\n;\n    \nuint8_t\n \noti_state\n;\n    \nuint8_t\n \noti_flags\n;\n    \nuint16_t\n \noti_stkusage\n;\n    \nuint16_t\n \noti_stksize\n;\n    \nuint32_t\n \noti_cswcnt\n;\n    \nuint32_t\n \noti_runtime\n;\n    \nos_time_t\n \noti_last_checkin\n;\n    \nos_time_t\n \noti_next_checkin\n;\n\n    \nchar\n \noti_name\n[\nOS_TASK_MAX_NAME_LEN\n];\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\noti_prio\n\n\nTask priority\n\n\n\n\n\n\noti_taskid\n\n\nTask id\n\n\n\n\n\n\noti_state\n\n\nTask state\n\n\n\n\n\n\noti_flags\n\n\nTask flags\n\n\n\n\n\n\noti_stkusage\n\n\nAmount of stack used by the task (in os_stack_t units)\n\n\n\n\n\n\noti_stksize\n\n\nThe size of the stack (in os_stack_t units)\n\n\n\n\n\n\noti_cswcnt\n\n\nThe context switch count\n\n\n\n\n\n\noti_runtime\n\n\nThe amount of time that the task has run (in os time ticks)\n\n\n\n\n\n\noti_last_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_next_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_name\n\n\nName of the task\n\n\n\n\n\n\n\n\n\n\nList of Functions\n\n\nThe functions available in task are:\n\n\n\n\n\n\n\n\nFunction\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nos_task_init\n\n\nCalled to create a task. This adds the task object to the list of ready to run tasks.\n\n\n\n\n\n\nos_task_count\n\n\nReturns the number of tasks that have been created.\n\n\n\n\n\n\nos_task_info_get_next\n\n\nPopulates the os task info structure given with task information.\n\n\n\n\n\n\nos_task_remove\n\n\nRemoves a task from the task list.", 
+            "text": "Task\n\n\nA task, along with the scheduler, forms the basis of the Mynewt OS. A task \nconsists of two basic elements: a task stack and a task function. The task \nfunction is basically a forever loop, waiting for some \"event\" to wake it up. \nThere are two methods used to signal a task that it has work to do: event queues \nand semaphores (see the appropriate manual sections for descriptions of these \nfeatures).\n\n\nThe Mynewt OS is a multi-tasking, preemptive OS. Every task is assigned a task \npriority (from 0 to 255), with 0 being the highest priority task. If a higher \npriority task than the current task wants to run, the scheduler preempts the \ncurrently running task and switches context to the higher priority task. This is \njust a fancy way of saying that the processor stack pointer now points to the \nstack of the higher priority task and the task resumes execution where it left \noff.\n\n\nTasks run to completion unless they are preempted by a higher priority task. The \ndeveloper must insure that tasks eventually \"sleep\"; otherwise lower priority \ntasks will never get a chance to run (actually, any task lower in priority than \nthe task that never sleeps). A task will be put to sleep in the following cases: \nit puts itself to sleep using \nos_time_delay()\n, it waits on an event queue \nwhich is empty or attempts to obtain a mutex or a semaphore that is currently \nowned by another task.\n\n\nNote that other sections of the manual describe these OS features in more \ndetail.\n\n\nDescription\n\n\nIn order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. It is recommended to use \nOS_TASK_STACK_DEFINE\n macro to create a stack\nas this macro assures correct alignment.\nNOTE: be careful when declaring your stack! The stack is in units\nof \nos_stack_t\n sized elements (generally 32-bits). Looking at the example given \nbelow and assuming \nos_stack_t\n is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes. \n\n\nA task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!\n\n\nIn order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the \nos_task_init()\n function is called. Once \nos_task_init()\n is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before \nos_start()\n is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.\n\n\nInformation about a task can be obtained using the \nos_task_info_get_next()\n \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type \nos_task_info\n and is described below.\n\n\nThe following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.\n\n\n/* Create a simple \nproject\n with a task that blinks a LED every second */\n\n\n\n/* Define task stack and task object */\n\n\n#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) \n\n\n#define MY_STACK_SIZE       (64) \n\n\nstruct\n \nos_task\n \nmy_task\n; \n\nOS_TASK_STACK_DEFINE\n(\nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n\n/* This is the task function */\n\n\nvoid\n \nmy_task_func\n(\nvoid\n \n*arg\n) {\n    \n/* Set the led pin as an output */\n\n    \nhal_gpio_init_out\n(\nLED_BLINK_PIN\n, \n1\n);\n\n    \n/* The task is a forever loop that does not return */\n\n    \nwhile\n (\n1\n) {\n        \n/* Wait one second */\n \n        \nos_time_delay\n(\n1000\n);\n\n        \n/* Toggle the LED */\n \n        \nhal_gpio_toggle\n(\nLED_BLINK_PIN\n);\n    }\n}\n\n\n/* This is the main function for the project */\n\n\nint\n \nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n) \n{\n\n    \n/* Perform system and package initialization */\n\n    \nsysinit\n();\n\n    \n/* Initialize the task */\n\n    \nos_task_init\n(\nmy_task\n, \nmy_task\n, \nmy_task_func\n, \nNULL\n, \nMY_TASK_PRIO\n, \n                 \nOS_WAIT_FOREVER\n, \nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n    \n/*  Process events from the default event queue.  */\n\n    \nwhile\n (\n1\n) {\n       \nos_eventq_run\n(\nos_eventq_dflt_get\n());\n    }\n    \n/* main never returns */\n  \n}\n\n\n\n\n\nData structures\n\n\n/* The highest and lowest task priorities */\n\n\n#define OS_TASK_PRI_HIGHEST         (0)\n\n\n#define OS_TASK_PRI_LOWEST          (0xff)\n\n\n\n/* Task states */\n\n\ntypedef\n \nenum\n \nos_task_state\n {\n    \nOS_TASK_READY\n \n=\n \n1\n, \n    \nOS_TASK_SLEEP\n \n=\n \n2\n\n} \nos_task_state_t\n;\n\n\n/* Task flags */\n\n\n#define OS_TASK_FLAG_NO_TIMEOUT     (0x0001U)\n\n\n#define OS_TASK_FLAG_SEM_WAIT       (0x0002U)\n\n\n#define OS_TASK_FLAG_MUTEX_WAIT     (0x0004U)\n\n\n\ntypedef\n \nvoid\n (\n*os_task_func_t\n)(\nvoid\n \n*\n);\n\n\n#define OS_TASK_MAX_NAME_LEN (32)\n\n\n\n\n\n\n\n\nstruct\n \nos_task\n {\n    \nos_stack_t\n \n*t_stackptr\n;\n    \nos_stack_t\n \n*t_stacktop\n;\n\n    \nuint16_t\n \nt_stacksize\n;\n    \nuint16_t\n \nt_flags\n;\n\n    \nuint8_t\n \nt_taskid\n;\n    \nuint8_t\n \nt_prio\n;\n    \nuint8_t\n \nt_state\n;\n    \nuint8_t\n \nt_pad\n;\n\n    \nchar\n \n*t_name\n;\n    \nos_task_func_t\n \nt_func\n;\n    \nvoid\n \n*t_arg\n;\n\n    \nvoid\n \n*t_obj\n;\n\n    \nstruct\n \nos_sanity_check\n \nt_sanity_check\n; \n\n    \nos_time_t\n \nt_next_wakeup\n;\n    \nos_time_t\n \nt_run_time\n;\n    \nuint32_t\n \nt_ctx_sw_cnt\n;\n\n    \n/* Global list of all tasks, irrespective of run or sleep lists */\n\n    \nSTAILQ_ENTRY\n(\nos_task\n) \nt_os_task_list\n;\n\n    \n/* Used to chain task to either the run or sleep list */\n \n    \nTAILQ_ENTRY\n(\nos_task\n) \nt_os_list\n;\n\n    \n/* Used to chain task to an object such as a semaphore or mutex */\n\n    \nSLIST_ENTRY\n(\nos_task\n) \nt_obj_list\n;\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nt_stackptr\n\n\nCurrent stack pointer\n\n\n\n\n\n\nt_stacktop\n\n\nThe address of the top of the task stack. The stack grows downward\n\n\n\n\n\n\nt_stacksize\n\n\nThe size of the stack, in units of os_stack_t (not bytes!)\n\n\n\n\n\n\nt_flags\n\n\nTask flags (see flag definitions)\n\n\n\n\n\n\nt_taskid\n\n\nA numeric id assigned to each task\n\n\n\n\n\n\nt_prio\n\n\nThe priority of the task. The lower the number, the higher the priority\n\n\n\n\n\n\nt_state\n\n\nThe task state (see state definitions)\n\n\n\n\n\n\nt_pad\n\n\npadding (for alignment)\n\n\n\n\n\n\nt_name\n\n\nName of task\n\n\n\n\n\n\nt_func\n\n\nPointer to task function\n\n\n\n\n\n\nt_obj\n\n\nGeneric object used by mutexes and semaphores when the task is waiting on a mutex or semaphore\n\n\n\n\n\n\nt_sanity_check\n\n\nSanity task data structure\n\n\n\n\n\n\nt_next_wakeup\n\n\nOS time when task is next scheduled to wake up\n\n\n\n\n\n\nt_run_time\n\n\nThe amount of os time ticks this task has been running\n\n\n\n\n\n\nt_ctx_sw_cnt\n\n\nThe number of times that this task has been run\n\n\n\n\n\n\nt_os_task_list\n\n\nList pointer for global task list. All tasks are placed on this list\n\n\n\n\n\n\nt_os_list\n\n\nList pointer used by either the active task list or the sleeping task list\n\n\n\n\n\n\nt_obj_list\n\n\nList pointer for tasks waiting on a semaphore or mutex\n\n\n\n\n\n\n\n\n\n\nstruct\n \nos_task_info\n {\n    \nuint8_t\n \noti_prio\n;\n    \nuint8_t\n \noti_taskid\n;\n    \nuint8_t\n \noti_state\n;\n    \nuint8_t\n \noti_flags\n;\n    \nuint16_t\n \noti_stkusage\n;\n    \nuint16_t\n \noti_stksize\n;\n    \nuint32_t\n \noti_cswcnt\n;\n    \nuint32_t\n \noti_runtime\n;\n    \nos_time_t\n \noti_last_checkin\n;\n    \nos_time_t\n \noti_next_checkin\n;\n\n    \nchar\n \noti_name\n[\nOS_TASK_MAX_NAME_LEN\n];\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\noti_prio\n\n\nTask priority\n\n\n\n\n\n\noti_taskid\n\n\nTask id\n\n\n\n\n\n\noti_state\n\n\nTask state\n\n\n\n\n\n\noti_flags\n\n\nTask flags\n\n\n\n\n\n\noti_stkusage\n\n\nAmount of stack used by the task (in os_stack_t units)\n\n\n\n\n\n\noti_stksize\n\n\nThe size of the stack (in os_stack_t units)\n\n\n\n\n\n\noti_cswcnt\n\n\nThe context switch count\n\n\n\n\n\n\noti_runtime\n\n\nThe amount of time that the task has run (in os time ticks)\n\n\n\n\n\n\noti_last_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_next_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_name\n\n\nName of the task\n\n\n\n\n\n\n\n\n\n\nList of Functions\n\n\nThe functions available in task are:\n\n\n\n\n\n\n\n\nFunction\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nos_task_init\n\n\nCalled to create a task. This adds the task object to the list of ready to run tasks.\n\n\n\n\n\n\nos_task_count\n\n\nReturns the number of tasks that have been created.\n\n\n\n\n\n\nos_task_info_get_next\n\n\nPopulates the os task info structure given with task information.\n\n\n\n\n\n\nos_task_remove\n\n\nRemoves a task from the task list.", 
             "title": "toc"
         }, 
         {
@@ -3777,7 +3777,7 @@
         }, 
         {
             "location": "/os/core_os/task/task/#description", 
-            "text": "In order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. NOTE: be careful when declaring your stack! The stack is in units \nof  os_stack_t  sized elements (generally 32-bits). Looking at the example given \nbelow and assuming  os_stack_t  is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes.   A task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!  In order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the  os_task_init()  function is called. Once  os_task_init()  is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before  os_start()  is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.  Information about a task can be obtained using the  os_task_info_get_next()  \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type  os_task_info  and is described below.  The following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.  /* Create a simple  project  with a task that blinks a LED every second */  /* Define task stack and task object */  #define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST)   #define MY_STACK_SIZE       (64)   struct   os_task   my_task ;  os_stack_t   my_task_stack [ MY_STACK_SIZE ];  /* This is the task function */  void   my_task_func ( void   *arg ) {\n     /* Set the led pin as an output */ \n     hal_gpio_init_out ( LED_BLINK_PIN ,  1 );\n\n     /* The task is a forever loop that does not return */ \n     while  ( 1 ) {\n         /* Wait one second */  \n         os_time_delay ( 1000 );\n\n         /* Toggle the LED */  \n         hal_gpio_toggle ( LED_BLINK_PIN );\n    }\n} /* This is the main function for the project */  int   main ( int   argc ,  char   **argv ) \n{\n\n     /* Perform system and package initialization */ \n     sysinit ();\n\n     /* Initialize the task */ \n     os_task_init ( my_task ,  my_task ,  my_task_func ,  NULL ,  MY_TASK_PRIO , \n                  OS_WAIT_FOREVER ,  my_task_stack ,  MY_STACK_SIZE );\n\n     /*  Process events from the default event queue.  */ \n     while  ( 1 ) {\n        os_eventq_run ( os_eventq_dflt_get ());\n    }\n     /* main never returns */   \n}", 
+            "text": "In order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. It is recommended to use  OS_TASK_STACK_DEFINE  macro to create a stack\nas this macro assures correct alignment.\nNOTE: be careful when declaring your stack! The stack is in units\nof  os_stack_t  sized elements (generally 32-bits). Looking at the example given \nbelow and assuming  os_stack_t  is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes.   A task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!  In order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the  os_task_init()  function is called. Once  os_task_init()  is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before  os_start()  is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.  Information about a task can be obtained using the  os_task_info_get_next()  \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type  os_task_info  and is described below.  The following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.  /* Create a simple  project  with a task that blinks a LED every second */  /* Define task stack and task object */  #define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST)   #define MY_STACK_SIZE       (64)   struct   os_task   my_task ;  OS_TASK_STACK_DEFINE ( my_task_stack ,  MY_STACK_SIZE ); /* This is the task function */  void   my_task_func ( void   *arg ) {\n     /* Set the led pin as an output */ \n     hal_gpio_init_out ( LED_BLINK_PIN ,  1 );\n\n     /* The task is a forever loop that does not return */ \n     while  ( 1 ) {\n         /* Wait one second */  \n         os_time_delay ( 1000 );\n\n         /* Toggle the LED */  \n         hal_gpio_toggle ( LED_BLINK_PIN );\n    }\n} /* This is the main function for the project */  int   main ( int   argc ,  char   **argv ) \n{\n\n     /* Perform system and package initialization */ \n     sysinit ();\n\n     /* Initialize the task */ \n     os_task_init ( my_task ,  my_task ,  my_task_func ,  NULL ,  MY_TASK_PRIO , \n                  OS_WAIT_FOREVER ,  my_task_stack ,  MY_STACK_SIZE );\n\n     /*  Process events from the default event queue.  */ \n     while  ( 1 ) {\n        os_eventq_run ( os_eventq_dflt_get ());\n    }\n     /* main never returns */   \n}", 
             "title": "Description"
         }, 
         {
diff --git a/master/os/core_os/task/task/index.html b/master/os/core_os/task/task/index.html
index be94028bf4b..aaa76529a1a 100644
--- a/master/os/core_os/task/task/index.html
+++ b/master/os/core_os/task/task/index.html
@@ -794,7 +794,9 @@ <h2 id="description">Description</h2>
 be a bit tricky; generally developers should not declare large local variables 
 on the stack so that task stacks can be of limited size. However, all 
 applications are different and the developer must choose the stack size 
-accordingly. NOTE: be careful when declaring your stack! The stack is in units 
+accordingly. It is recommended to use <code>OS_TASK_STACK_DEFINE</code> macro to create a stack
+as this macro assures correct alignment.
+NOTE: be careful when declaring your stack! The stack is in units
 of <code>os_stack_t</code> sized elements (generally 32-bits). Looking at the example given 
 below and assuming <code>os_stack_t</code> is defined to be a 32-bit unsigned value, 
 "my_task_stack" will use 256 bytes. </p>
@@ -821,7 +823,7 @@ <h2 id="description">Description</h2>
 <span style="color: #633820">#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) </span>
 <span style="color: #633820">#define MY_STACK_SIZE       (64) </span>
 <span style="color: #A90D91">struct</span> <span style="color: #000000">os_task</span> <span style="color: #000000">my_task</span>; 
-<span style="color: #000000">os_stack_t</span> <span style="color: #000000">my_task_stack</span>[<span style="color: #000000">MY_STACK_SIZE</span>]; 
+<span style="color: #000000">OS_TASK_STACK_DEFINE</span>(<span style="color: #000000">my_task_stack</span>, <span style="color: #000000">MY_STACK_SIZE</span>);
 
 <span style="color: #177500">/* This is the task function */</span>
 <span style="color: #A90D91">void</span> <span style="color: #000000">my_task_func</span>(<span style="color: #A90D91">void</span> <span style="color: #000000">*arg</span>) {
diff --git a/master/os/tutorials/air_quality_sensor/index.html b/master/os/tutorials/air_quality_sensor/index.html
index 831fa37c950..2974a41a20e 100644
--- a/master/os/tutorials/air_quality_sensor/index.html
+++ b/master/os/tutorials/air_quality_sensor/index.html
@@ -960,7 +960,8 @@ <h3 id="add-cli-commands-for-testing-drivers">Add CLI commands for testing drive
 
 
 <p>Then register your senseair command with the shell by adding the following to <code>libs/my_drivers/senseair/src/senseair.c</code></p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span></span><span style="color: #633820">#include</span> <span style="color: #177500">&lt;shell/shell.h&gt;</span><span style="color: #633820"></span>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span></span><span style="color: #633820">#include</span> <span style="color: #177500">&lt;syscfg/syscfg.h&gt;</span><span style="color: #633820"></span>
+<span style="color: #633820">#include</span> <span style="color: #177500">&lt;shell/shell.h&gt;</span><span style="color: #633820"></span>
 <span style="color: #633820">#include</span> <span style="color: #177500">&lt;console/console.h&gt;</span><span style="color: #633820"></span>
 <span style="color: #633820">#include</span> <span style="color: #177500">&lt;assert.h&gt;</span><span style="color: #633820"></span>
 
diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json
index a5dccb7fd86..cbea9e9e060 100644
--- a/mkdocs/search_index.json
+++ b/mkdocs/search_index.json
@@ -2317,7 +2317,7 @@
         }, 
         {
             "location": "/os/tutorials/air_quality_sensor/", 
-            "text": "Air quality sensor project\n\n\nSetting up source tree for stuff you need\n\n\nTo start with, you need to create a new project under which you will do this development. So you type in:\n\n\n    $ mkdir $HOME/src\n    $ cd $HOME/src\n    $ newt new air_quality\n\n\n\n\n\nLet's say you are using Arduino Primo -- which is based on the Nordic Semi NRF52 chip -- as the platform. \nYou know you need the board support package for that hardware. You can look up its location, add it your \nproject, and fetch that along with the core OS components. Luckily, the Arduino Primo is supported in the \nMynewt Core, so there's nothing much to do here. \n\n\nYour project.yml file should look like this:\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ emacs project.yml \n\n    [user@IsMyLaptop:~/src/air_quality]$ cat project.yml\n    project.name: \nair_quality\n\n\n    project.repositories:\n        - apache-mynewt-core\n\n    # Use github\ns distribution mechanism for core ASF libraries.\n    # This provides mirroring automatically for us.\n    #\n    repository.apache-mynewt-core:\n        type: github\n        vers: 0-latest\n        user: apache\n        repo: mynewt-core\n\n    [user@IsMyLaptop:~/src/air_quality]$ newt install\n    apache-mynewt-core\n    [user@IsMyLaptop:~/src/air_quality]$ ls repos/\n    apache-mynewt-core\n\n\n\n\n\nGood. You want to make sure you have all the needed bits for supporting your board; \nso you decide to build the blinky project for the platform first.\n\n\nNow create a target for it and build it. Easiest way to proceed is to copy the existing target for blinky, and modify it to build for Arduino Primo board.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target copy my_blinky_sim blink_primo\nTarget successfully copied; targets/my_blinky_sim --\n targets/blink_primo\n[user@IsMyLaptop:~/src/air_quality]$ newt target set blink_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt build blink_primo\nCompiling hal_bsp.c\n...\nLinking blinky.elf\nApp successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf\n\n\n\n\n\nGood.\n\n\nYou know that this platform uses bootloader, which means you have to create a target for that too.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create boot_primo\nTarget targets/boot_nrf successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target show\n@apache-mynewt-core/targets/unittest\n    bsp=hw/bsp/native\n    build_profile=debug\n    compiler=compiler/sim\ntargets/blink_primo\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n    build_profile=debug\ntargets/boot_primo\ntargets/my_blinky_sim\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/native\n    build_profile=debug\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo app=@apache-mynewt-core/apps/boot\nTarget targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo build_profile=optimized\nTarget targets/boot_nrf successfully set target.build_profile to optimized\n\n\n\n\n\nAnd then build it, and load it onto the board.\n\n\nnewt build boot_primo\n....\nLinking boot.elf\nApp successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf\n[user@IsMyLaptop:~/src/air_quality]\n$ newt load boot_primo\n\n\n\n\n\nAt this point, you may (or may not) see a bunch of error messages about not being able to connect to\nyour board, not being able to load the image, etc. If that's the case, and you haven't already, you\nshould most definitely go worth through the \nblinky_primo\n tutorial so that you\ncan properly communicate with your board.\n\n\nNext you must download the targets to board, and see that the LED actually blinks. You plug in the \nArduino Primo board to your laptop, and say:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\nLoading app image into slot 1\nError: couldn\nt open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\n\nError: exit status 1\n\nload - Load app image to target for \ntarget-name\n.\n\nUsage:\n  newt load [flags]\n\nExamples:\n  newt load \ntarget-name\n\n\n\nGlobal Flags:\n  -l, --loglevel string   Log level, defaults to WARN. (default \nWARN\n)\n  -o, --outfile string    Filename to tee log output to\n  -q, --quiet             Be quiet; only display error output.\n  -s, --silent            Be silent; don\nt output anything.\n  -v, --verbose           Enable verbose output when executing commands.\nexit status 1\n\n\n\n\n\nAh. Forgot to create an image out of the blinky binary. Note that every time you want to build and \nload a new firmware image to a target board, you need to run 'create-image' on it.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt create-image blink_primo 0.0.1\nApp image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\nBuild manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\n\n\n\n\n\nAnd it's blinking.\n\n\nShortcut for doing build/create-image/load/debug steps all in one is 'newt run' command. Check \nout the usage from command line help.\n\n\nCreate test project\n\n\nNow that you have your system setup, you can start creating your own stuff.\nFirst you want to create a project for yourself - you could start by using blinky as a project \ntemplate, but since we're going to want to be able to access the data via Bluetooth, let's \nuse the \nbleprph\n Bluetooth Peripheral project instead.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ mkdir apps/air_quality\n    [user@IsMyLaptop:~/src/air_quality]$ cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/\n    [user@IsMyLaptop:~/src/air_quality]$ cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/\n\n\n\n\n\nThen you modify the apps/air_quality/pkg.yml for air_quality in order to change the \npkg.name\n to be \napps/air_quality\n.\nYou'll need to add the \n@apache-mynewt-core/\n path to all the package dependencies, since the app no longer\nresides within the apache-mynewt-core repository.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat apps/air_quality/pkg.yml\npkg.name: apps/air_quality\npkg.type: app\npkg.description: BLE Air Quality application.\npkg.author: \nApache Mynewt \ndev@mynewt.apache.org\n\npkg.homepage: \nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps: \n    - \n@apache-mynewt-core/kernel/os\n\n    - \n@apache-mynewt-core/sys/shell\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/mgmt/newtmgr\n\n    - \n@apache-mynewt-core/mgmt/newtmgr/transport/ble\n\n    - \n@apache-mynewt-core/net/nimble/controller\n\n    - \n@apache-mynewt-core/net/nimble/host\n\n    - \n@apache-mynewt-core/net/nimble/host/services/ans\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gap\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gatt\n\n    - \n@apache-mynewt-core/net/nimble/host/store/ram\n\n    - \n@apache-mynewt-core/net/nimble/transport/ram\n\n    - \n@apache-mynewt-core/sys/console/full\n\n    - \n@apache-mynewt-core/sys/sysinit\n\n    - \n@apache-mynewt-core/sys/id\n\n\n\n\n\n\nAnd create a target for it:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create air_q\nTarget targets/air_q successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q app=apps/air_quality \nTarget targets/air_q successfully set target.app to apps/air_quality\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q build_profile=debug\nTarget targets/air_q successfully set target.build_profile to debug\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\n ....\nLinking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n\n\n\n\n\nCreate packages for drivers\n\n\nOne of the sensors you want to enable is SenseAir K30, which will connect to the board over a serial port.\nTo start development of the driver, you first need to create a package description for it, and add stubs for sources.\n\n\nThe first thing to do is to create the directory structure for your driver:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/include/senseair\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/src\n\n\n\n\n\nNow you can add the files you need. You'll need a pkg.yml to describe the driver, and then header stub followed by source stub.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/pkg.yml\n\n\n\n\n\n#\n\n\n# Licensed to the Apache Software Foundation (ASF) under one\n\n\n# or more contributor license agreements.  See the NOTICE file\n\n\n# distributed with this work for additional information\n\n\n# regarding copyright ownership.  The ASF licenses this file\n\n\n# to you under the Apache License, Version 2.0 (the\n\n\n# \nLicense\n); you may not use this file except in compliance\n\n\n# with the License.  You may obtain a copy of the License at\n\n\n# \n\n\n#  http:\n//www.apache.org/licenses/LICENSE-2.0\n\n\n#\n\n\n# Unless required by applicable law or agreed to in writing,\n\n\n# software distributed under the License is distributed on an\n\n\n# \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n# KIND, either express or implied.  See the License for the\n\n\n# specific language governing permissions and limitations\n\n\n# under the License.\n\n\n#\n\n\npkg\n.\nname\n: \nlibs/my_drivers/senseair\n\n\npkg\n.\ndescription\n: \nHost\n \nside\n \nof\n \nthe\n \nnimble\n \nBluetooth\n \nSmart\n \nstack\n.\n\npkg\n.\nauthor\n: \nApache Mynewt \ndev@mynewt.apache.org\n\n\npkg\n.\nhomepage\n: \nhttp://mynewt.apache.org/\n\n\npkg\n.\nkeywords\n:\n    \n-\n \nble\n\n    \n-\n \nbluetooth\n\n\n\npkg\n.\ndeps\n:\n    \n-\n \n@apache-mynewt-core/kernel/os\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/include/senseair/senseair.h\n\n\n\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nvoid\n \nsenseair_init\n(\nvoid\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/src/senseair.c\n\n\n\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n}\n\n\n\n\n\nAnd add dependency to this package in your project yml file.\n\n\nHere's the listing from apps/air_quality/pkg.yml\n\n\npkg.name: apps/air_quality\npkg.type: app\npkg.description: Air quality sensor test\npkg.keywords:\n\npkg.deps:\n    - \n@apache-mynewt-core/libs/console/full\n\n    - \n@apache-mynewt-core/libs/newtmgr\n\n    - \n@apache-mynewt-core/libs/os\n\n    - \n@apache-mynewt-core/libs/shell\n\n    - \n@apache-mynewt-core/sys/config\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - libs/my_drivers/senseair\n\n\n\n\n\nAnd add a call to your main() to initialize this driver.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ diff project/blinky/src/main.c project/air_quality/src/main.c\n    28a29\n    \n #include \nsenseair/senseair.h\n\n    190a192\n    \n senseair_init();\n    [user@IsMyLaptop:~/src/air_quality\n\n\n\n\n\nThe ble_prph app runs everything in one task handler. For this project, we're going to add a second\ntask handler to respond to the shell, and then handle communicating with the senseair sensor for us.\n\n\n/** shell task settings. */\n\n\n#define SHELL_TASK_PRIO           2\n\n\n#define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))\n\n\n\nstruct\n \nos_eventq\n \nshell_evq\n;\n\nstruct\n \nos_task\n \nshell_task\n;\n\nbssnz_t\n \nos_stack_t\n \nshell_stack\n[\nSHELL_STACK_SIZE\n];\n\n\n\n\n\nThat defines the task, now we need to initialize it, add a task handler, and we're going to \nuse this task as our default task handler.\n\n\n/**\n\n\n * Event loop for the main shell task.\n\n\n */\n\n\nstatic\n \nvoid\n\n\nshell_task_handler\n(\nvoid\n \n*unused\n)\n{\n    \nwhile\n (\n1\n) {\n        \nos_eventq_run\n(\nshell_evq\n);\n    }\n}\n\n\n\n\n\nAnd in your \nmain()\n add:\n\n\n    \n/* Initialize shell eventq */\n\n    \nos_eventq_init\n(\nshell_evq\n);\n\n    \n/* Create the shell task.  \n\n\n     * All shell operations are performed in this task.\n\n\n     */\n\n    \nos_task_init\n(\nshell_task\n, \nshell\n, \nshell_task_handler\n,\n                              \nNULL\n, \nSHELL_TASK_PRIO\n, \nOS_WAIT_FOREVER\n,\n                              \nshell_stack\n, \nSHELL_STACK_SIZE\n);\n\n\n\n\n\nDon't forget to change your default task handler!\n\n\n    \nos_eventq_dflt_set\n(\nshell_evq\n);\n\n\n\n\n\nAnd then build it to make sure all goes well.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\nCompiling senseair.c\nArchiving senseair.a\nLinking air_quality.elf\nApp successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf\n\n\n\n\n\nAll looks good.\n\n\nAdd CLI commands for testing drivers\n\n\nWhile developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to \nenable the CLI\n, so all we'll need to do is add the propper values to the project's \nsyscfg.yml\n file:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1\n\n\n\n\n\nThen register your senseair command with the shell by adding the following to \nlibs/my_drivers/senseair/src/senseair.c\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nassert.h\n\n\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n    \nint\n \nrc\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nassert\n(\nrc\n \n==\n \n0\n);\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nconsole_printf\n(\nYay! Somebody called!\\n\n);\n    \nreturn\n \n0\n;\n\n}\n\n\n\n\n\nNow you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board \nhere\n.\n\n\nYou'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.\n\n\n    [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419: \n ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644: \n senseair\n    Yay! Somebody called!\n    1125: \n\n    53611: \n tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101: \n\n\n\n\n\n\nThat's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.\n\n\nUse of HAL for drivers\n\n\nThe sensor has a serial port connection, and that's how you are going to connect to it. Your original BSP, hw/bsp/arduino_primo_nrf52, has two UARTs set up.\nWe're using one for our shell/console. It also has a second UART set up as a 'bit-bang' UART but since the SenseAir only needs to\ncommunicate at 9600 baud, this bit-banged uart is plenty fast enough.\n\n\nYou'll have to make a small change to the \nsyscfg.yml\n file in your project's target directory to change  the pin definitions \nfor this second UART. Those changes are as follows:\n\n\n    UART_0_PIN_TX: 23\n    UART_0_PIN_RX: 24\n\n\n\n\n\nWith this in place, you can refer to serial port where your SenseAir sensor by a logical number. This makes the code more platform independent - you could connect this sensor to another board, like Olimex. You will also use the HAL UART abstraction to do the UART port setup and data transfer. That way you don't need to have any platform dependent pieces within your little driver.\n\n\nYou will now see what the driver code ends up looking like. Here's the header file, filled in from the stub you created earlier.\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nenum\n \nsenseair_read_type\n {\n        \nSENSEAIR_CO2\n,\n};\n\n\nint\n \nsenseair_init\n(\nint\n \nuartno\n);\n\n\nint\n \nsenseair_read\n(\nenum\n \nsenseair_read_type\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\nAs you can see, logical UART number has been added to the init routine. A 'read' function has been added, \nwhich is a blocking read. If you were making a commercial product, you would probably have a callback for reporting the results.\n\n\nAnd here is the source for the driver.\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n *\n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n#include\n \nstring.h\n\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nos/os.h\n\n\n\n#include\n \nhal/hal_uart.h\n\n\n\n#include\n \nsenseair/senseair.h\n\n\n\nstatic\n \nconst\n \nuint8_t\n \ncmd_read_co2\n[] \n=\n {\n    \n0xFE\n, \n0\nX44\n, \n0\nX00\n, \n0\nX08\n, \n0\nX02\n, \n0\nX9F\n, \n0\nX25\n\n};\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nstruct\n \nsenseair\n { \n    \nint\n \nuart\n;\n    \nstruct\n \nos_sem\n \nsema\n;\n    \nconst\n \nuint8_t\n \n*tx_data\n;\n    \nint\n \ntx_off\n;\n    \nint\n \ntx_len\n;\n    \nuint8_t\n \nrx_data\n[\n32\n]; \n    \nint\n \nrx_off\n;\n    \nint\n \nvalue\n;\n} \nsenseair\n;\n\n\nstatic\n \nint\n\n\nsenseair_tx_char\n(\nvoid\n \n*arg\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_off\n \n=\n \ns-\ntx_len\n) {\n    \n/*\n\n\n         * Command tx finished.\n\n\n         */\n\n        \ns-\ntx_data\n \n=\n \nNULL\n;\n        \nreturn\n \n-\n1\n;\n    }\n\n    \nrc\n \n=\n \ns-\ntx_data\n[\ns-\ntx_off\n];\n    \ns-\ntx_off++\n;\n    \nreturn\n \nrc\n;\n}\n\n\n/*\n\n\n * CRC for modbus over serial port.\n\n\n */\n\n\nstatic\n \nconst\n \nuint16_t\n \nmb_crc_tbl\n[] \n=\n {\n    \n0x0000\n, \n0xcc01\n, \n0xd801\n, \n0x1400\n, \n0xf001\n, \n0x3c00\n, \n0x2800\n, \n0xe401\n,\n    \n0xa001\n, \n0x6c00\n, \n0x7800\n, \n0xb401\n, \n0x5000\n, \n0x9c01\n, \n0x8801\n, \n0x4400\n\n};\n\n\nstatic\n \nuint16_t\n\n\nmb_crc\n(\nconst\n \nuint8_t\n \n*data\n, \nint\n \nlen\n, \nuint16_t\n \ncrc\n)\n{\n    \nwhile\n (\nlen--\n \n \n0\n) {\n        \ncrc\n \n^=\n \n*data++\n;\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n    }\n    \nreturn\n \ncrc\n;\n}\n\n\nstatic\n \nint\n\n\nmb_crc_check\n(\nconst\n \nvoid\n \n*pkt\n, \nint\n \nlen\n)\n{\n    \nuint16_t\n \ncrc\n, \ncmp\n;\n    \nuint8_t\n \n*bp\n \n=\n (\nuint8_t\n \n*\n)\npkt\n;\n\n    \nif\n (\nlen\n \n \nsizeof\n(\ncrc\n) \n+\n \n1\n) {\n        \nreturn\n \n-\n1\n;\n    }\n    \ncrc\n \n=\n \nmb_crc\n(\npkt\n, \nlen\n \n-\n \n2\n, \n0xffff\n);\n    \ncmp\n \n=\n \nbp\n[\nlen\n \n-\n \n2\n] \n|\n (\nbp\n[\nlen\n \n-\n \n1\n] \n \n8\n);\n    \nif\n (\ncrc\n \n!=\n \ncmp\n) {\n        \nreturn\n \n-\n1\n;\n    } \nelse\n {\n        \nreturn\n \n0\n;\n    }\n}\n\n\nstatic\n \nint\n\n\nsenseair_rx_char\n(\nvoid\n \n*arg\n, \nuint8_t\n \ndata\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n (\nstruct\n \nsenseair\n \n*\n)\narg\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\nrx_off\n \n=\n \nsizeof\n(\ns-\nrx_data\n)) {\n        \ns-\nrx_off\n \n=\n \n0\n;\n    }\n    \ns-\nrx_data\n[\ns-\nrx_off\n] \n=\n \ndata\n;\n    \ns-\nrx_off++\n;\n\n    \nif\n (\ns-\nrx_off\n \n==\n \n7\n) {\n        \nrc\n \n=\n \nmb_crc_check\n(\ns-\nrx_data\n, \ns-\nrx_off\n);\n        \nif\n (\nrc\n \n==\n \n0\n) {\n            \ns-\nvalue\n \n=\n \ns-\nrx_data\n[\n3\n] \n*\n \n256\n \n+\n \ns-\nrx_data\n[\n4\n];\n            \nos_sem_release\n(\ns-\nsema\n);\n        }\n    }\n    \nreturn\n \n0\n;\n}\n\n\nvoid\n\n\nsenseair_tx\n(\nstruct\n \nsenseair\n \n*s\n, \nconst\n \nuint8_t\n \n*tx_data\n, \nint\n \ndata_len\n)\n{\n    \ns-\ntx_data\n \n=\n \ntx_data\n;\n    \ns-\ntx_len\n \n=\n \ndata_len\n;\n    \ns-\ntx_off\n \n=\n \n0\n;\n    \ns-\nrx_off\n \n=\n \n0\n;\n\n    \nhal_uart_start_tx\n(\ns-\nuart\n);\n}\n\n\nint\n\n\nsenseair_read\n(\nenum\n \nsenseair_read_type\n \ntype\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nconst\n \nuint8_t\n \n*cmd\n;\n    \nint\n \ncmd_len\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_data\n) {\n        \n/*\n\n\n         * busy\n\n\n         */\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nswitch\n (\ntype\n) {\n    \ncase\n \nSENSEAIR_CO2\n:\n        \ncmd\n \n=\n \ncmd_read_co2\n;\n        \ncmd_len\n \n=\n \nsizeof\n(\ncmd_read_co2\n);\n        \nbreak\n;\n    \ndefault\n:\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nsenseair_tx\n(\ns\n, \ncmd\n, \ncmd_len\n);\n    \nrc\n \n=\n \nos_sem_pend\n(\ns-\nsema\n, \nOS_TICKS_PER_SEC\n \n/\n \n2\n);\n    \nif\n (\nrc\n \n==\n \nOS_TIMEOUT\n) {\n        \n/*\n\n\n         * timeout\n\n\n         */\n\n        \nreturn\n \n-\n2\n;\n    }\n    \nreturn\n \ns-\nvalue\n;\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nint\n \nvalue\n;\n    \nenum\n \nsenseair_read_type\n \ntype\n;\n\n    \nif\n (\nargc\n \n \n2\n) {\n\nusage\n:\n        \nconsole_printf\n(\n%s co2\\n\n, \nargv\n[\n0\n]);\n        \nreturn\n \n0\n;\n    }\n    \nif\n (\n!strcmp\n(\nargv\n[\n1\n], \nco2\n)) {\n        \ntype\n \n=\n \nSENSEAIR_CO2\n;\n    } \nelse\n {\n        \ngoto\n \nusage\n;\n    }\n    \nvalue\n \n=\n \nsenseair_read\n(\ntype\n);\n    \nif\n (\nvalue\n \n=\n \n0\n) {\n        \nconsole_printf\n(\nGot %d\\n\n, \nvalue\n);\n    } \nelse\n {\n        \nconsole_printf\n(\nError while reading: %d\\n\n, \nvalue\n);\n    }\n    \nreturn\n \n0\n;\n}\n\n\nint\n\n\nsenseair_init\n(\nint\n \nuartno\n)\n{\n    \nint\n \nrc\n;\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n\n    \nrc\n \n=\n \nos_sem_init\n(\ns-\nsema\n, \n1\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_init_cbs\n(\nuartno\n, \nsenseair_tx_char\n, \nNULL\n,\n      \nsenseair_rx_char\n, \nsenseair\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_config\n(\nuartno\n, \n9600\n, \n8\n, \n1\n, \nHAL_UART_PARITY_NONE\n,\n      \nHAL_UART_FLOW_CTL_NONE\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \ns-\nuart\n \n=\n \nuartno\n;\n\n    \nreturn\n \n0\n;\n}\n\n\n\n\n\nAnd your modified main() for senseair driver init.\n\n\nint\n\n\nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    ....\n    \nsenseair_init\n(\n0\n);\n    ....\n    }\n\n\n\n\n\nYou can see from the code that you are using the HAL interface to open a UART port, and using OS \nsemaphore as a way of blocking the task when waiting for read response to come back from the sensor.\n\n\nNow comes the fun part: Hooking up the sensor! It's fun because a) hooking up a sensor is always \nfun and b) the SenseAir sensor's PCB is entirely unlabeled, so you'll have to trust us on how to hook it up. \n\n\nSo here we go. \n\n\nYou'll have to do a little soldering. I soldered some header pins to the SenseAir K30 board to\nmake connecting wires easier using standard jumper wires, but you can also just solder wires\nstraight to the board if you prefer.\n\n\nHere's what your SenseAir board should look like once it's wired up:\n\n\n\n\nNow that you have that wired up, let's get the Arduino Primo wired up. A couple of things to note:\n\n\n\n\nThe Arduino Primo's 'console' UART is actually UART1. \n\n\nThe secondary (bit-banged) UART is UART0, so that's where we'll have to hook up the SenseAir.\n\n\n\n\nHere's what your Arduino Primo should now look like with everything wired in:\n\n\n\n\nEverything is wired and you're ready to go! Build and load your new app:\n\n\n$ newt build air_q\nBuilding target targets/air_q\nCompiling apps/air_quality/src/main.c\nArchiving apps_air_quality.a\nLinking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n$ newt create-image air_q 1.0.0\nApp image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img\n$ newt load air_q\nLoading app image into slot 1\n\n\n\n\n\nNow, you should be able to connect to your serial port and read values:\n\n\nuser@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    1185: \n ?\n    Commands:\n    1382:     stat      echo         ?    prompt     ticks     tasks\n    1390: mempools      date  senseair\n    1395: \n senseair\n    senseair co2\n    2143: \n senseair co2\n    Got 973\n\n\n\n\n\nAnd you're getting valid readings! Congratulations!\n\n\nNext we'll hook this all up via Bluetooth so that you can read those values remotely.", 
+            "text": "Air quality sensor project\n\n\nSetting up source tree for stuff you need\n\n\nTo start with, you need to create a new project under which you will do this development. So you type in:\n\n\n    $ mkdir $HOME/src\n    $ cd $HOME/src\n    $ newt new air_quality\n\n\n\n\n\nLet's say you are using Arduino Primo -- which is based on the Nordic Semi NRF52 chip -- as the platform. \nYou know you need the board support package for that hardware. You can look up its location, add it your \nproject, and fetch that along with the core OS components. Luckily, the Arduino Primo is supported in the \nMynewt Core, so there's nothing much to do here. \n\n\nYour project.yml file should look like this:\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ emacs project.yml \n\n    [user@IsMyLaptop:~/src/air_quality]$ cat project.yml\n    project.name: \nair_quality\n\n\n    project.repositories:\n        - apache-mynewt-core\n\n    # Use github\ns distribution mechanism for core ASF libraries.\n    # This provides mirroring automatically for us.\n    #\n    repository.apache-mynewt-core:\n        type: github\n        vers: 0-latest\n        user: apache\n        repo: mynewt-core\n\n    [user@IsMyLaptop:~/src/air_quality]$ newt install\n    apache-mynewt-core\n    [user@IsMyLaptop:~/src/air_quality]$ ls repos/\n    apache-mynewt-core\n\n\n\n\n\nGood. You want to make sure you have all the needed bits for supporting your board; \nso you decide to build the blinky project for the platform first.\n\n\nNow create a target for it and build it. Easiest way to proceed is to copy the existing target for blinky, and modify it to build for Arduino Primo board.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target copy my_blinky_sim blink_primo\nTarget successfully copied; targets/my_blinky_sim --\n targets/blink_primo\n[user@IsMyLaptop:~/src/air_quality]$ newt target set blink_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt build blink_primo\nCompiling hal_bsp.c\n...\nLinking blinky.elf\nApp successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf\n\n\n\n\n\nGood.\n\n\nYou know that this platform uses bootloader, which means you have to create a target for that too.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create boot_primo\nTarget targets/boot_nrf successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target show\n@apache-mynewt-core/targets/unittest\n    bsp=hw/bsp/native\n    build_profile=debug\n    compiler=compiler/sim\ntargets/blink_primo\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n    build_profile=debug\ntargets/boot_primo\ntargets/my_blinky_sim\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/native\n    build_profile=debug\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo app=@apache-mynewt-core/apps/boot\nTarget targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot\n[user@IsMyLaptop:~/src/air_quality]$ newt target set boot_primo build_profile=optimized\nTarget targets/boot_nrf successfully set target.build_profile to optimized\n\n\n\n\n\nAnd then build it, and load it onto the board.\n\n\nnewt build boot_primo\n....\nLinking boot.elf\nApp successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf\n[user@IsMyLaptop:~/src/air_quality]\n$ newt load boot_primo\n\n\n\n\n\nAt this point, you may (or may not) see a bunch of error messages about not being able to connect to\nyour board, not being able to load the image, etc. If that's the case, and you haven't already, you\nshould most definitely go worth through the \nblinky_primo\n tutorial so that you\ncan properly communicate with your board.\n\n\nNext you must download the targets to board, and see that the LED actually blinks. You plug in the \nArduino Primo board to your laptop, and say:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\nLoading app image into slot 1\nError: couldn\nt open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\n\nError: exit status 1\n\nload - Load app image to target for \ntarget-name\n.\n\nUsage:\n  newt load [flags]\n\nExamples:\n  newt load \ntarget-name\n\n\n\nGlobal Flags:\n  -l, --loglevel string   Log level, defaults to WARN. (default \nWARN\n)\n  -o, --outfile string    Filename to tee log output to\n  -q, --quiet             Be quiet; only display error output.\n  -s, --silent            Be silent; don\nt output anything.\n  -v, --verbose           Enable verbose output when executing commands.\nexit status 1\n\n\n\n\n\nAh. Forgot to create an image out of the blinky binary. Note that every time you want to build and \nload a new firmware image to a target board, you need to run 'create-image' on it.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt create-image blink_primo 0.0.1\nApp image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img\nBuild manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json\n[user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo\n\n\n\n\n\nAnd it's blinking.\n\n\nShortcut for doing build/create-image/load/debug steps all in one is 'newt run' command. Check \nout the usage from command line help.\n\n\nCreate test project\n\n\nNow that you have your system setup, you can start creating your own stuff.\nFirst you want to create a project for yourself - you could start by using blinky as a project \ntemplate, but since we're going to want to be able to access the data via Bluetooth, let's \nuse the \nbleprph\n Bluetooth Peripheral project instead.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ mkdir apps/air_quality\n    [user@IsMyLaptop:~/src/air_quality]$ cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/\n    [user@IsMyLaptop:~/src/air_quality]$ cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/\n\n\n\n\n\nThen you modify the apps/air_quality/pkg.yml for air_quality in order to change the \npkg.name\n to be \napps/air_quality\n.\nYou'll need to add the \n@apache-mynewt-core/\n path to all the package dependencies, since the app no longer\nresides within the apache-mynewt-core repository.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat apps/air_quality/pkg.yml\npkg.name: apps/air_quality\npkg.type: app\npkg.description: BLE Air Quality application.\npkg.author: \nApache Mynewt \ndev@mynewt.apache.org\n\npkg.homepage: \nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps: \n    - \n@apache-mynewt-core/kernel/os\n\n    - \n@apache-mynewt-core/sys/shell\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/mgmt/newtmgr\n\n    - \n@apache-mynewt-core/mgmt/newtmgr/transport/ble\n\n    - \n@apache-mynewt-core/net/nimble/controller\n\n    - \n@apache-mynewt-core/net/nimble/host\n\n    - \n@apache-mynewt-core/net/nimble/host/services/ans\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gap\n\n    - \n@apache-mynewt-core/net/nimble/host/services/gatt\n\n    - \n@apache-mynewt-core/net/nimble/host/store/ram\n\n    - \n@apache-mynewt-core/net/nimble/transport/ram\n\n    - \n@apache-mynewt-core/sys/console/full\n\n    - \n@apache-mynewt-core/sys/sysinit\n\n    - \n@apache-mynewt-core/sys/id\n\n\n\n\n\n\nAnd create a target for it:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt target create air_q\nTarget targets/air_q successfully created\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52\nTarget targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q app=apps/air_quality \nTarget targets/air_q successfully set target.app to apps/air_quality\n[user@IsMyLaptop:~/src/air_quality]$ newt target set air_q build_profile=debug\nTarget targets/air_q successfully set target.build_profile to debug\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\n ....\nLinking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n\n\n\n\n\nCreate packages for drivers\n\n\nOne of the sensors you want to enable is SenseAir K30, which will connect to the board over a serial port.\nTo start development of the driver, you first need to create a package description for it, and add stubs for sources.\n\n\nThe first thing to do is to create the directory structure for your driver:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/include/senseair\n[user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/src\n\n\n\n\n\nNow you can add the files you need. You'll need a pkg.yml to describe the driver, and then header stub followed by source stub.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/pkg.yml\n\n\n\n\n\n#\n\n\n# Licensed to the Apache Software Foundation (ASF) under one\n\n\n# or more contributor license agreements.  See the NOTICE file\n\n\n# distributed with this work for additional information\n\n\n# regarding copyright ownership.  The ASF licenses this file\n\n\n# to you under the Apache License, Version 2.0 (the\n\n\n# \nLicense\n); you may not use this file except in compliance\n\n\n# with the License.  You may obtain a copy of the License at\n\n\n# \n\n\n#  http:\n//www.apache.org/licenses/LICENSE-2.0\n\n\n#\n\n\n# Unless required by applicable law or agreed to in writing,\n\n\n# software distributed under the License is distributed on an\n\n\n# \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n# KIND, either express or implied.  See the License for the\n\n\n# specific language governing permissions and limitations\n\n\n# under the License.\n\n\n#\n\n\npkg\n.\nname\n: \nlibs/my_drivers/senseair\n\n\npkg\n.\ndescription\n: \nHost\n \nside\n \nof\n \nthe\n \nnimble\n \nBluetooth\n \nSmart\n \nstack\n.\n\npkg\n.\nauthor\n: \nApache Mynewt \ndev@mynewt.apache.org\n\n\npkg\n.\nhomepage\n: \nhttp://mynewt.apache.org/\n\n\npkg\n.\nkeywords\n:\n    \n-\n \nble\n\n    \n-\n \nbluetooth\n\n\n\npkg\n.\ndeps\n:\n    \n-\n \n@apache-mynewt-core/kernel/os\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/include/senseair/senseair.h\n\n\n\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nvoid\n \nsenseair_init\n(\nvoid\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/src/senseair.c\n\n\n\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n}\n\n\n\n\n\nAnd add dependency to this package in your project yml file.\n\n\nHere's the listing from apps/air_quality/pkg.yml\n\n\npkg.name: apps/air_quality\npkg.type: app\npkg.description: Air quality sensor test\npkg.keywords:\n\npkg.deps:\n    - \n@apache-mynewt-core/libs/console/full\n\n    - \n@apache-mynewt-core/libs/newtmgr\n\n    - \n@apache-mynewt-core/libs/os\n\n    - \n@apache-mynewt-core/libs/shell\n\n    - \n@apache-mynewt-core/sys/config\n\n    - \n@apache-mynewt-core/sys/log/full\n\n    - \n@apache-mynewt-core/sys/stats/full\n\n    - libs/my_drivers/senseair\n\n\n\n\n\nAnd add a call to your main() to initialize this driver.\n\n\n    [user@IsMyLaptop:~/src/air_quality]$ diff project/blinky/src/main.c project/air_quality/src/main.c\n    28a29\n    \n #include \nsenseair/senseair.h\n\n    190a192\n    \n senseair_init();\n    [user@IsMyLaptop:~/src/air_quality\n\n\n\n\n\nThe ble_prph app runs everything in one task handler. For this project, we're going to add a second\ntask handler to respond to the shell, and then handle communicating with the senseair sensor for us.\n\n\n/** shell task settings. */\n\n\n#define SHELL_TASK_PRIO           2\n\n\n#define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))\n\n\n\nstruct\n \nos_eventq\n \nshell_evq\n;\n\nstruct\n \nos_task\n \nshell_task\n;\n\nbssnz_t\n \nos_stack_t\n \nshell_stack\n[\nSHELL_STACK_SIZE\n];\n\n\n\n\n\nThat defines the task, now we need to initialize it, add a task handler, and we're going to \nuse this task as our default task handler.\n\n\n/**\n\n\n * Event loop for the main shell task.\n\n\n */\n\n\nstatic\n \nvoid\n\n\nshell_task_handler\n(\nvoid\n \n*unused\n)\n{\n    \nwhile\n (\n1\n) {\n        \nos_eventq_run\n(\nshell_evq\n);\n    }\n}\n\n\n\n\n\nAnd in your \nmain()\n add:\n\n\n    \n/* Initialize shell eventq */\n\n    \nos_eventq_init\n(\nshell_evq\n);\n\n    \n/* Create the shell task.  \n\n\n     * All shell operations are performed in this task.\n\n\n     */\n\n    \nos_task_init\n(\nshell_task\n, \nshell\n, \nshell_task_handler\n,\n                              \nNULL\n, \nSHELL_TASK_PRIO\n, \nOS_WAIT_FOREVER\n,\n                              \nshell_stack\n, \nSHELL_STACK_SIZE\n);\n\n\n\n\n\nDon't forget to change your default task handler!\n\n\n    \nos_eventq_dflt_set\n(\nshell_evq\n);\n\n\n\n\n\nAnd then build it to make sure all goes well.\n\n\n[user@IsMyLaptop:~/src/air_quality]$ newt build air_q\nCompiling senseair.c\nArchiving senseair.a\nLinking air_quality.elf\nApp successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf\n\n\n\n\n\nAll looks good.\n\n\nAdd CLI commands for testing drivers\n\n\nWhile developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to \nenable the CLI\n, so all we'll need to do is add the propper values to the project's \nsyscfg.yml\n file:\n\n\n[user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1\n\n\n\n\n\nThen register your senseair command with the shell by adding the following to \nlibs/my_drivers/senseair/src/senseair.c\n\n\n#include\n \nsyscfg/syscfg.h\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nassert.h\n\n\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nvoid\n\n\nsenseair_init\n(\nvoid\n)\n{\n    \nint\n \nrc\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nassert\n(\nrc\n \n==\n \n0\n);\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nconsole_printf\n(\nYay! Somebody called!\\n\n);\n    \nreturn\n \n0\n;\n\n}\n\n\n\n\n\nNow you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board \nhere\n.\n\n\nYou'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.\n\n\n    [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419: \n ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644: \n senseair\n    Yay! Somebody called!\n    1125: \n\n    53611: \n tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101: \n\n\n\n\n\n\nThat's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.\n\n\nUse of HAL for drivers\n\n\nThe sensor has a serial port connection, and that's how you are going to connect to it. Your original BSP, hw/bsp/arduino_primo_nrf52, has two UARTs set up.\nWe're using one for our shell/console. It also has a second UART set up as a 'bit-bang' UART but since the SenseAir only needs to\ncommunicate at 9600 baud, this bit-banged uart is plenty fast enough.\n\n\nYou'll have to make a small change to the \nsyscfg.yml\n file in your project's target directory to change  the pin definitions \nfor this second UART. Those changes are as follows:\n\n\n    UART_0_PIN_TX: 23\n    UART_0_PIN_RX: 24\n\n\n\n\n\nWith this in place, you can refer to serial port where your SenseAir sensor by a logical number. This makes the code more platform independent - you could connect this sensor to another board, like Olimex. You will also use the HAL UART abstraction to do the UART port setup and data transfer. That way you don't need to have any platform dependent pieces within your little driver.\n\n\nYou will now see what the driver code ends up looking like. Here's the header file, filled in from the stub you created earlier.\n\n\n/*\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n * \n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n*/\n\n\n#ifndef _SENSEAIR_H_\n\n\n#define _SENSEAIR_H_\n\n\n\nenum\n \nsenseair_read_type\n {\n        \nSENSEAIR_CO2\n,\n};\n\n\nint\n \nsenseair_init\n(\nint\n \nuartno\n);\n\n\nint\n \nsenseair_read\n(\nenum\n \nsenseair_read_type\n);\n\n\n#endif \n/* _SENSEAIR_H_ */\n\n\n\n\n\n\nAs you can see, logical UART number has been added to the init routine. A 'read' function has been added, \nwhich is a blocking read. If you were making a commercial product, you would probably have a callback for reporting the results.\n\n\nAnd here is the source for the driver.\n\n\n/**\n\n\n * Licensed to the Apache Software Foundation (ASF) under one\n\n\n * or more contributor license agreements.  See the NOTICE file\n\n\n * distributed with this work for additional information\n\n\n * regarding copyright ownership.  The ASF licenses this file\n\n\n * to you under the Apache License, Version 2.0 (the\n\n\n * \nLicense\n); you may not use this file except in compliance\n\n\n * with the License.  You may obtain a copy of the License at\n\n\n *\n\n\n *  http://www.apache.org/licenses/LICENSE-2.0\n\n\n *\n\n\n * Unless required by applicable law or agreed to in writing,\n\n\n * software distributed under the License is distributed on an\n\n\n * \nAS IS\n BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\n\n * KIND, either express or implied.  See the License for the\n\n\n * specific language governing permissions and limitations\n\n\n * under the License.\n\n\n */\n\n\n#include\n \nstring.h\n\n\n\n#include\n \nshell/shell.h\n\n\n#include\n \nconsole/console.h\n\n\n#include\n \nos/os.h\n\n\n\n#include\n \nhal/hal_uart.h\n\n\n\n#include\n \nsenseair/senseair.h\n\n\n\nstatic\n \nconst\n \nuint8_t\n \ncmd_read_co2\n[] \n=\n {\n    \n0xFE\n, \n0\nX44\n, \n0\nX00\n, \n0\nX08\n, \n0\nX02\n, \n0\nX9F\n, \n0\nX25\n\n};\n\n\nstatic\n \nint\n \nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n);\n\nstatic\n \nstruct\n \nshell_cmd\n \nsenseair_cmd\n \n=\n {\n    .\nsc_cmd\n \n=\n \nsenseair\n,\n    .\nsc_cmd_func\n \n=\n \nsenseair_shell_func\n,\n};\n\n\nstruct\n \nsenseair\n { \n    \nint\n \nuart\n;\n    \nstruct\n \nos_sem\n \nsema\n;\n    \nconst\n \nuint8_t\n \n*tx_data\n;\n    \nint\n \ntx_off\n;\n    \nint\n \ntx_len\n;\n    \nuint8_t\n \nrx_data\n[\n32\n]; \n    \nint\n \nrx_off\n;\n    \nint\n \nvalue\n;\n} \nsenseair\n;\n\n\nstatic\n \nint\n\n\nsenseair_tx_char\n(\nvoid\n \n*arg\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_off\n \n=\n \ns-\ntx_len\n) {\n    \n/*\n\n\n         * Command tx finished.\n\n\n         */\n\n        \ns-\ntx_data\n \n=\n \nNULL\n;\n        \nreturn\n \n-\n1\n;\n    }\n\n    \nrc\n \n=\n \ns-\ntx_data\n[\ns-\ntx_off\n];\n    \ns-\ntx_off++\n;\n    \nreturn\n \nrc\n;\n}\n\n\n/*\n\n\n * CRC for modbus over serial port.\n\n\n */\n\n\nstatic\n \nconst\n \nuint16_t\n \nmb_crc_tbl\n[] \n=\n {\n    \n0x0000\n, \n0xcc01\n, \n0xd801\n, \n0x1400\n, \n0xf001\n, \n0x3c00\n, \n0x2800\n, \n0xe401\n,\n    \n0xa001\n, \n0x6c00\n, \n0x7800\n, \n0xb401\n, \n0x5000\n, \n0x9c01\n, \n0x8801\n, \n0x4400\n\n};\n\n\nstatic\n \nuint16_t\n\n\nmb_crc\n(\nconst\n \nuint8_t\n \n*data\n, \nint\n \nlen\n, \nuint16_t\n \ncrc\n)\n{\n    \nwhile\n (\nlen--\n \n \n0\n) {\n        \ncrc\n \n^=\n \n*data++\n;\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n        \ncrc\n \n=\n (\ncrc\n \n \n4\n) \n^\n \nmb_crc_tbl\n[\ncrc\n \n \n0xf\n];\n    }\n    \nreturn\n \ncrc\n;\n}\n\n\nstatic\n \nint\n\n\nmb_crc_check\n(\nconst\n \nvoid\n \n*pkt\n, \nint\n \nlen\n)\n{\n    \nuint16_t\n \ncrc\n, \ncmp\n;\n    \nuint8_t\n \n*bp\n \n=\n (\nuint8_t\n \n*\n)\npkt\n;\n\n    \nif\n (\nlen\n \n \nsizeof\n(\ncrc\n) \n+\n \n1\n) {\n        \nreturn\n \n-\n1\n;\n    }\n    \ncrc\n \n=\n \nmb_crc\n(\npkt\n, \nlen\n \n-\n \n2\n, \n0xffff\n);\n    \ncmp\n \n=\n \nbp\n[\nlen\n \n-\n \n2\n] \n|\n (\nbp\n[\nlen\n \n-\n \n1\n] \n \n8\n);\n    \nif\n (\ncrc\n \n!=\n \ncmp\n) {\n        \nreturn\n \n-\n1\n;\n    } \nelse\n {\n        \nreturn\n \n0\n;\n    }\n}\n\n\nstatic\n \nint\n\n\nsenseair_rx_char\n(\nvoid\n \n*arg\n, \nuint8_t\n \ndata\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n (\nstruct\n \nsenseair\n \n*\n)\narg\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\nrx_off\n \n=\n \nsizeof\n(\ns-\nrx_data\n)) {\n        \ns-\nrx_off\n \n=\n \n0\n;\n    }\n    \ns-\nrx_data\n[\ns-\nrx_off\n] \n=\n \ndata\n;\n    \ns-\nrx_off++\n;\n\n    \nif\n (\ns-\nrx_off\n \n==\n \n7\n) {\n        \nrc\n \n=\n \nmb_crc_check\n(\ns-\nrx_data\n, \ns-\nrx_off\n);\n        \nif\n (\nrc\n \n==\n \n0\n) {\n            \ns-\nvalue\n \n=\n \ns-\nrx_data\n[\n3\n] \n*\n \n256\n \n+\n \ns-\nrx_data\n[\n4\n];\n            \nos_sem_release\n(\ns-\nsema\n);\n        }\n    }\n    \nreturn\n \n0\n;\n}\n\n\nvoid\n\n\nsenseair_tx\n(\nstruct\n \nsenseair\n \n*s\n, \nconst\n \nuint8_t\n \n*tx_data\n, \nint\n \ndata_len\n)\n{\n    \ns-\ntx_data\n \n=\n \ntx_data\n;\n    \ns-\ntx_len\n \n=\n \ndata_len\n;\n    \ns-\ntx_off\n \n=\n \n0\n;\n    \ns-\nrx_off\n \n=\n \n0\n;\n\n    \nhal_uart_start_tx\n(\ns-\nuart\n);\n}\n\n\nint\n\n\nsenseair_read\n(\nenum\n \nsenseair_read_type\n \ntype\n)\n{\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n    \nconst\n \nuint8_t\n \n*cmd\n;\n    \nint\n \ncmd_len\n;\n    \nint\n \nrc\n;\n\n    \nif\n (\ns-\ntx_data\n) {\n        \n/*\n\n\n         * busy\n\n\n         */\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nswitch\n (\ntype\n) {\n    \ncase\n \nSENSEAIR_CO2\n:\n        \ncmd\n \n=\n \ncmd_read_co2\n;\n        \ncmd_len\n \n=\n \nsizeof\n(\ncmd_read_co2\n);\n        \nbreak\n;\n    \ndefault\n:\n\n        \nreturn\n \n-\n1\n;\n    }\n    \nsenseair_tx\n(\ns\n, \ncmd\n, \ncmd_len\n);\n    \nrc\n \n=\n \nos_sem_pend\n(\ns-\nsema\n, \nOS_TICKS_PER_SEC\n \n/\n \n2\n);\n    \nif\n (\nrc\n \n==\n \nOS_TIMEOUT\n) {\n        \n/*\n\n\n         * timeout\n\n\n         */\n\n        \nreturn\n \n-\n2\n;\n    }\n    \nreturn\n \ns-\nvalue\n;\n}\n\n\nstatic\n \nint\n\n\nsenseair_shell_func\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    \nint\n \nvalue\n;\n    \nenum\n \nsenseair_read_type\n \ntype\n;\n\n    \nif\n (\nargc\n \n \n2\n) {\n\nusage\n:\n        \nconsole_printf\n(\n%s co2\\n\n, \nargv\n[\n0\n]);\n        \nreturn\n \n0\n;\n    }\n    \nif\n (\n!strcmp\n(\nargv\n[\n1\n], \nco2\n)) {\n        \ntype\n \n=\n \nSENSEAIR_CO2\n;\n    } \nelse\n {\n        \ngoto\n \nusage\n;\n    }\n    \nvalue\n \n=\n \nsenseair_read\n(\ntype\n);\n    \nif\n (\nvalue\n \n=\n \n0\n) {\n        \nconsole_printf\n(\nGot %d\\n\n, \nvalue\n);\n    } \nelse\n {\n        \nconsole_printf\n(\nError while reading: %d\\n\n, \nvalue\n);\n    }\n    \nreturn\n \n0\n;\n}\n\n\nint\n\n\nsenseair_init\n(\nint\n \nuartno\n)\n{\n    \nint\n \nrc\n;\n    \nstruct\n \nsenseair\n \n*s\n \n=\n \nsenseair\n;\n\n    \nrc\n \n=\n \nshell_cmd_register\n(\nsenseair_cmd\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n\n    \nrc\n \n=\n \nos_sem_init\n(\ns-\nsema\n, \n1\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_init_cbs\n(\nuartno\n, \nsenseair_tx_char\n, \nNULL\n,\n      \nsenseair_rx_char\n, \nsenseair\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \nrc\n \n=\n \nhal_uart_config\n(\nuartno\n, \n9600\n, \n8\n, \n1\n, \nHAL_UART_PARITY_NONE\n,\n      \nHAL_UART_FLOW_CTL_NONE\n);\n    \nif\n (\nrc\n) {\n        \nreturn\n \nrc\n;\n    }\n    \ns-\nuart\n \n=\n \nuartno\n;\n\n    \nreturn\n \n0\n;\n}\n\n\n\n\n\nAnd your modified main() for senseair driver init.\n\n\nint\n\n\nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n)\n{\n    ....\n    \nsenseair_init\n(\n0\n);\n    ....\n    }\n\n\n\n\n\nYou can see from the code that you are using the HAL interface to open a UART port, and using OS \nsemaphore as a way of blocking the task when waiting for read response to come back from the sensor.\n\n\nNow comes the fun part: Hooking up the sensor! It's fun because a) hooking up a sensor is always \nfun and b) the SenseAir sensor's PCB is entirely unlabeled, so you'll have to trust us on how to hook it up. \n\n\nSo here we go. \n\n\nYou'll have to do a little soldering. I soldered some header pins to the SenseAir K30 board to\nmake connecting wires easier using standard jumper wires, but you can also just solder wires\nstraight to the board if you prefer.\n\n\nHere's what your SenseAir board should look like once it's wired up:\n\n\n\n\nNow that you have that wired up, let's get the Arduino Primo wired up. A couple of things to note:\n\n\n\n\nThe Arduino Primo's 'console' UART is actually UART1. \n\n\nThe secondary (bit-banged) UART is UART0, so that's where we'll have to hook up the SenseAir.\n\n\n\n\nHere's what your Arduino Primo should now look like with everything wired in:\n\n\n\n\nEverything is wired and you're ready to go! Build and load your new app:\n\n\n$ newt build air_q\nBuilding target targets/air_q\nCompiling apps/air_quality/src/main.c\nArchiving apps_air_quality.a\nLinking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf\nTarget successfully built: targets/air_q\n$ newt create-image air_q 1.0.0\nApp image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img\n$ newt load air_q\nLoading app image into slot 1\n\n\n\n\n\nNow, you should be able to connect to your serial port and read values:\n\n\nuser@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    1185: \n ?\n    Commands:\n    1382:     stat      echo         ?    prompt     ticks     tasks\n    1390: mempools      date  senseair\n    1395: \n senseair\n    senseair co2\n    2143: \n senseair co2\n    Got 973\n\n\n\n\n\nAnd you're getting valid readings! Congratulations!\n\n\nNext we'll hook this all up via Bluetooth so that you can read those values remotely.", 
             "title": "Basic Air Quality Sensor"
         }, 
         {
@@ -2342,7 +2342,7 @@
         }, 
         {
             "location": "/os/tutorials/air_quality_sensor/#add-cli-commands-for-testing-drivers", 
-            "text": "While developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to  enable the CLI , so all we'll need to do is add the propper values to the project's  syscfg.yml  file:  [user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1  Then register your senseair command with the shell by adding the following to  libs/my_drivers/senseair/src/senseair.c  #include   shell/shell.h  #include   console/console.h  #include   assert.h  static   int   senseair_shell_func ( int   argc ,  char   **argv ); static   struct   shell_cmd   senseair_cmd   =  {\n    . sc_cmd   =   senseair ,\n    . sc_cmd_func   =   senseair_shell_func ,\n}; void  senseair_init ( void )\n{\n     int   rc ;\n\n     rc   =   shell_cmd_register ( senseair_cmd );\n     assert ( rc   ==   0 );\n} static   int  senseair_shell_func ( int   argc ,  char   **argv )\n{\n     console_printf ( Yay! Somebody called!\\n );\n     return   0 ;\n\n}  Now you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board  here .  You'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.      [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419:   ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644:   senseair\n    Yay! Somebody called!\n    1125:  \n    53611:   tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101:    That's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.", 
+            "text": "While developing the driver, you want to issue operations from console asking it to do stuff. We'll assume that you've already worked through the tutorial \non how to  enable the CLI , so all we'll need to do is add the propper values to the project's  syscfg.yml  file:  [user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml\nsyscfg.vals:\n    # Set as per blinky_primo\n    OPENOCD_DEBUG: 1\n    # Enable the shell task.\n    SHELL_TASK: 1\n    STATS_CLI: 1\n    CONSOLE_TICKS: 1\n    CONSOLE_PROMPT: 1  Then register your senseair command with the shell by adding the following to  libs/my_drivers/senseair/src/senseair.c  #include   syscfg/syscfg.h  #include   shell/shell.h  #include   console/console.h  #include   assert.h  static   int   senseair_shell_func ( int   argc ,  char   **argv ); static   struct   shell_cmd   senseair_cmd   =  {\n    . sc_cmd   =   senseair ,\n    . sc_cmd_func   =   senseair_shell_func ,\n}; void  senseair_init ( void )\n{\n     int   rc ;\n\n     rc   =   shell_cmd_register ( senseair_cmd );\n     assert ( rc   ==   0 );\n} static   int  senseair_shell_func ( int   argc ,  char   **argv )\n{\n     console_printf ( Yay! Somebody called!\\n );\n     return   0 ;\n\n}  Now you can you build this, download to target, and start minicom on your console port. If you haven't already, familiarize yourself with\nthe tutorial on how to connect a serial port to your board  here .  You'll need to wire up your Board to a Serial converter first. On the Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your serial board, and 0 to TX on your serial board.      [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2\n\n\n    Welcome to minicom 2.7\n\n    OPTIONS: \n    Compiled on Oct 12 2015, 07:48:30.\n    Port /dev/tty.usbserial-AH02MIE2, 13:44:40\n\n    Press CTRL-X Z for help on special keys\n\n    ?\n    419:   ?\n    Commands:\n    641:     stat      echo         ?    prompt     ticks     tasks\n    643: mempools      date  senseair\n    644:   senseair\n    Yay! Somebody called!\n    1125:  \n    53611:   tasks\n    Tasks:\n    54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg\n    54057:    idle 255   0    54048    66890       64       30        0        0   0\n    54068:  ble_ll   0   1        9    64986       80       58        0        0   0\n    54079: bleprph   1   2        0        1      336       32        0        0   0\n    54090:   shell   2   3        0     2077      336      262        0        0   0\n    54101:    That's great. Your shell task is running, and is responding appropriately!\nYou can connect the hardware to your board and start developing code for the driver itself.", 
             "title": "Add CLI commands for testing drivers"
         }, 
         {
@@ -3767,7 +3767,7 @@
         }, 
         {
             "location": "/os/core_os/task/task/", 
-            "text": "Task\n\n\nA task, along with the scheduler, forms the basis of the Mynewt OS. A task \nconsists of two basic elements: a task stack and a task function. The task \nfunction is basically a forever loop, waiting for some \"event\" to wake it up. \nThere are two methods used to signal a task that it has work to do: event queues \nand semaphores (see the appropriate manual sections for descriptions of these \nfeatures).\n\n\nThe Mynewt OS is a multi-tasking, preemptive OS. Every task is assigned a task \npriority (from 0 to 255), with 0 being the highest priority task. If a higher \npriority task than the current task wants to run, the scheduler preempts the \ncurrently running task and switches context to the higher priority task. This is \njust a fancy way of saying that the processor stack pointer now points to the \nstack of the higher priority task and the task resumes execution where it left \noff.\n\n\nTasks run to completion unless they are preempted by a higher priority task. The \ndeveloper must insure that tasks eventually \"sleep\"; otherwise lower priority \ntasks will never get a chance to run (actually, any task lower in priority than \nthe task that never sleeps). A task will be put to sleep in the following cases: \nit puts itself to sleep using \nos_time_delay()\n, it waits on an event queue \nwhich is empty or attempts to obtain a mutex or a semaphore that is currently \nowned by another task.\n\n\nNote that other sections of the manual describe these OS features in more \ndetail.\n\n\nDescription\n\n\nIn order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. NOTE: be careful when declaring your stack! The stack is in units \nof \nos_stack_t\n sized elements (generally 32-bits). Looking at the example given \nbelow and assuming \nos_stack_t\n is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes. \n\n\nA task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!\n\n\nIn order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the \nos_task_init()\n function is called. Once \nos_task_init()\n is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before \nos_start()\n is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.\n\n\nInformation about a task can be obtained using the \nos_task_info_get_next()\n \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type \nos_task_info\n and is described below.\n\n\nThe following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.\n\n\n/* Create a simple \nproject\n with a task that blinks a LED every second */\n\n\n\n/* Define task stack and task object */\n\n\n#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) \n\n\n#define MY_STACK_SIZE       (64) \n\n\nstruct\n \nos_task\n \nmy_task\n; \n\nos_stack_t\n \nmy_task_stack\n[\nMY_STACK_SIZE\n]; \n\n\n/* This is the task function */\n\n\nvoid\n \nmy_task_func\n(\nvoid\n \n*arg\n) {\n    \n/* Set the led pin as an output */\n\n    \nhal_gpio_init_out\n(\nLED_BLINK_PIN\n, \n1\n);\n\n    \n/* The task is a forever loop that does not return */\n\n    \nwhile\n (\n1\n) {\n        \n/* Wait one second */\n \n        \nos_time_delay\n(\n1000\n);\n\n        \n/* Toggle the LED */\n \n        \nhal_gpio_toggle\n(\nLED_BLINK_PIN\n);\n    }\n}\n\n\n/* This is the main function for the project */\n\n\nint\n \nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n) \n{\n\n    \n/* Perform system and package initialization */\n\n    \nsysinit\n();\n\n    \n/* Initialize the task */\n\n    \nos_task_init\n(\nmy_task\n, \nmy_task\n, \nmy_task_func\n, \nNULL\n, \nMY_TASK_PRIO\n, \n                 \nOS_WAIT_FOREVER\n, \nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n    \n/*  Process events from the default event queue.  */\n\n    \nwhile\n (\n1\n) {\n       \nos_eventq_run\n(\nos_eventq_dflt_get\n());\n    }\n    \n/* main never returns */\n  \n}\n\n\n\n\n\nData structures\n\n\n/* The highest and lowest task priorities */\n\n\n#define OS_TASK_PRI_HIGHEST         (0)\n\n\n#define OS_TASK_PRI_LOWEST          (0xff)\n\n\n\n/* Task states */\n\n\ntypedef\n \nenum\n \nos_task_state\n {\n    \nOS_TASK_READY\n \n=\n \n1\n, \n    \nOS_TASK_SLEEP\n \n=\n \n2\n\n} \nos_task_state_t\n;\n\n\n/* Task flags */\n\n\n#define OS_TASK_FLAG_NO_TIMEOUT     (0x0001U)\n\n\n#define OS_TASK_FLAG_SEM_WAIT       (0x0002U)\n\n\n#define OS_TASK_FLAG_MUTEX_WAIT     (0x0004U)\n\n\n\ntypedef\n \nvoid\n (\n*os_task_func_t\n)(\nvoid\n \n*\n);\n\n\n#define OS_TASK_MAX_NAME_LEN (32)\n\n\n\n\n\n\n\n\nstruct\n \nos_task\n {\n    \nos_stack_t\n \n*t_stackptr\n;\n    \nos_stack_t\n \n*t_stacktop\n;\n\n    \nuint16_t\n \nt_stacksize\n;\n    \nuint16_t\n \nt_flags\n;\n\n    \nuint8_t\n \nt_taskid\n;\n    \nuint8_t\n \nt_prio\n;\n    \nuint8_t\n \nt_state\n;\n    \nuint8_t\n \nt_pad\n;\n\n    \nchar\n \n*t_name\n;\n    \nos_task_func_t\n \nt_func\n;\n    \nvoid\n \n*t_arg\n;\n\n    \nvoid\n \n*t_obj\n;\n\n    \nstruct\n \nos_sanity_check\n \nt_sanity_check\n; \n\n    \nos_time_t\n \nt_next_wakeup\n;\n    \nos_time_t\n \nt_run_time\n;\n    \nuint32_t\n \nt_ctx_sw_cnt\n;\n\n    \n/* Global list of all tasks, irrespective of run or sleep lists */\n\n    \nSTAILQ_ENTRY\n(\nos_task\n) \nt_os_task_list\n;\n\n    \n/* Used to chain task to either the run or sleep list */\n \n    \nTAILQ_ENTRY\n(\nos_task\n) \nt_os_list\n;\n\n    \n/* Used to chain task to an object such as a semaphore or mutex */\n\n    \nSLIST_ENTRY\n(\nos_task\n) \nt_obj_list\n;\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nt_stackptr\n\n\nCurrent stack pointer\n\n\n\n\n\n\nt_stacktop\n\n\nThe address of the top of the task stack. The stack grows downward\n\n\n\n\n\n\nt_stacksize\n\n\nThe size of the stack, in units of os_stack_t (not bytes!)\n\n\n\n\n\n\nt_flags\n\n\nTask flags (see flag definitions)\n\n\n\n\n\n\nt_taskid\n\n\nA numeric id assigned to each task\n\n\n\n\n\n\nt_prio\n\n\nThe priority of the task. The lower the number, the higher the priority\n\n\n\n\n\n\nt_state\n\n\nThe task state (see state definitions)\n\n\n\n\n\n\nt_pad\n\n\npadding (for alignment)\n\n\n\n\n\n\nt_name\n\n\nName of task\n\n\n\n\n\n\nt_func\n\n\nPointer to task function\n\n\n\n\n\n\nt_obj\n\n\nGeneric object used by mutexes and semaphores when the task is waiting on a mutex or semaphore\n\n\n\n\n\n\nt_sanity_check\n\n\nSanity task data structure\n\n\n\n\n\n\nt_next_wakeup\n\n\nOS time when task is next scheduled to wake up\n\n\n\n\n\n\nt_run_time\n\n\nThe amount of os time ticks this task has been running\n\n\n\n\n\n\nt_ctx_sw_cnt\n\n\nThe number of times that this task has been run\n\n\n\n\n\n\nt_os_task_list\n\n\nList pointer for global task list. All tasks are placed on this list\n\n\n\n\n\n\nt_os_list\n\n\nList pointer used by either the active task list or the sleeping task list\n\n\n\n\n\n\nt_obj_list\n\n\nList pointer for tasks waiting on a semaphore or mutex\n\n\n\n\n\n\n\n\n\n\nstruct\n \nos_task_info\n {\n    \nuint8_t\n \noti_prio\n;\n    \nuint8_t\n \noti_taskid\n;\n    \nuint8_t\n \noti_state\n;\n    \nuint8_t\n \noti_flags\n;\n    \nuint16_t\n \noti_stkusage\n;\n    \nuint16_t\n \noti_stksize\n;\n    \nuint32_t\n \noti_cswcnt\n;\n    \nuint32_t\n \noti_runtime\n;\n    \nos_time_t\n \noti_last_checkin\n;\n    \nos_time_t\n \noti_next_checkin\n;\n\n    \nchar\n \noti_name\n[\nOS_TASK_MAX_NAME_LEN\n];\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\noti_prio\n\n\nTask priority\n\n\n\n\n\n\noti_taskid\n\n\nTask id\n\n\n\n\n\n\noti_state\n\n\nTask state\n\n\n\n\n\n\noti_flags\n\n\nTask flags\n\n\n\n\n\n\noti_stkusage\n\n\nAmount of stack used by the task (in os_stack_t units)\n\n\n\n\n\n\noti_stksize\n\n\nThe size of the stack (in os_stack_t units)\n\n\n\n\n\n\noti_cswcnt\n\n\nThe context switch count\n\n\n\n\n\n\noti_runtime\n\n\nThe amount of time that the task has run (in os time ticks)\n\n\n\n\n\n\noti_last_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_next_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_name\n\n\nName of the task\n\n\n\n\n\n\n\n\n\n\nList of Functions\n\n\nThe functions available in task are:\n\n\n\n\n\n\n\n\nFunction\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nos_task_init\n\n\nCalled to create a task. This adds the task object to the list of ready to run tasks.\n\n\n\n\n\n\nos_task_count\n\n\nReturns the number of tasks that have been created.\n\n\n\n\n\n\nos_task_info_get_next\n\n\nPopulates the os task info structure given with task information.\n\n\n\n\n\n\nos_task_remove\n\n\nRemoves a task from the task list.", 
+            "text": "Task\n\n\nA task, along with the scheduler, forms the basis of the Mynewt OS. A task \nconsists of two basic elements: a task stack and a task function. The task \nfunction is basically a forever loop, waiting for some \"event\" to wake it up. \nThere are two methods used to signal a task that it has work to do: event queues \nand semaphores (see the appropriate manual sections for descriptions of these \nfeatures).\n\n\nThe Mynewt OS is a multi-tasking, preemptive OS. Every task is assigned a task \npriority (from 0 to 255), with 0 being the highest priority task. If a higher \npriority task than the current task wants to run, the scheduler preempts the \ncurrently running task and switches context to the higher priority task. This is \njust a fancy way of saying that the processor stack pointer now points to the \nstack of the higher priority task and the task resumes execution where it left \noff.\n\n\nTasks run to completion unless they are preempted by a higher priority task. The \ndeveloper must insure that tasks eventually \"sleep\"; otherwise lower priority \ntasks will never get a chance to run (actually, any task lower in priority than \nthe task that never sleeps). A task will be put to sleep in the following cases: \nit puts itself to sleep using \nos_time_delay()\n, it waits on an event queue \nwhich is empty or attempts to obtain a mutex or a semaphore that is currently \nowned by another task.\n\n\nNote that other sections of the manual describe these OS features in more \ndetail.\n\n\nDescription\n\n\nIn order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. It is recommended to use \nOS_TASK_STACK_DEFINE\n macro to create a stack\nas this macro assures correct alignment.\nNOTE: be careful when declaring your stack! The stack is in units\nof \nos_stack_t\n sized elements (generally 32-bits). Looking at the example given \nbelow and assuming \nos_stack_t\n is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes. \n\n\nA task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!\n\n\nIn order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the \nos_task_init()\n function is called. Once \nos_task_init()\n is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before \nos_start()\n is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.\n\n\nInformation about a task can be obtained using the \nos_task_info_get_next()\n \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type \nos_task_info\n and is described below.\n\n\nThe following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.\n\n\n/* Create a simple \nproject\n with a task that blinks a LED every second */\n\n\n\n/* Define task stack and task object */\n\n\n#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) \n\n\n#define MY_STACK_SIZE       (64) \n\n\nstruct\n \nos_task\n \nmy_task\n; \n\nOS_TASK_STACK_DEFINE\n(\nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n\n/* This is the task function */\n\n\nvoid\n \nmy_task_func\n(\nvoid\n \n*arg\n) {\n    \n/* Set the led pin as an output */\n\n    \nhal_gpio_init_out\n(\nLED_BLINK_PIN\n, \n1\n);\n\n    \n/* The task is a forever loop that does not return */\n\n    \nwhile\n (\n1\n) {\n        \n/* Wait one second */\n \n        \nos_time_delay\n(\n1000\n);\n\n        \n/* Toggle the LED */\n \n        \nhal_gpio_toggle\n(\nLED_BLINK_PIN\n);\n    }\n}\n\n\n/* This is the main function for the project */\n\n\nint\n \nmain\n(\nint\n \nargc\n, \nchar\n \n**argv\n) \n{\n\n    \n/* Perform system and package initialization */\n\n    \nsysinit\n();\n\n    \n/* Initialize the task */\n\n    \nos_task_init\n(\nmy_task\n, \nmy_task\n, \nmy_task_func\n, \nNULL\n, \nMY_TASK_PRIO\n, \n                 \nOS_WAIT_FOREVER\n, \nmy_task_stack\n, \nMY_STACK_SIZE\n);\n\n    \n/*  Process events from the default event queue.  */\n\n    \nwhile\n (\n1\n) {\n       \nos_eventq_run\n(\nos_eventq_dflt_get\n());\n    }\n    \n/* main never returns */\n  \n}\n\n\n\n\n\nData structures\n\n\n/* The highest and lowest task priorities */\n\n\n#define OS_TASK_PRI_HIGHEST         (0)\n\n\n#define OS_TASK_PRI_LOWEST          (0xff)\n\n\n\n/* Task states */\n\n\ntypedef\n \nenum\n \nos_task_state\n {\n    \nOS_TASK_READY\n \n=\n \n1\n, \n    \nOS_TASK_SLEEP\n \n=\n \n2\n\n} \nos_task_state_t\n;\n\n\n/* Task flags */\n\n\n#define OS_TASK_FLAG_NO_TIMEOUT     (0x0001U)\n\n\n#define OS_TASK_FLAG_SEM_WAIT       (0x0002U)\n\n\n#define OS_TASK_FLAG_MUTEX_WAIT     (0x0004U)\n\n\n\ntypedef\n \nvoid\n (\n*os_task_func_t\n)(\nvoid\n \n*\n);\n\n\n#define OS_TASK_MAX_NAME_LEN (32)\n\n\n\n\n\n\n\n\nstruct\n \nos_task\n {\n    \nos_stack_t\n \n*t_stackptr\n;\n    \nos_stack_t\n \n*t_stacktop\n;\n\n    \nuint16_t\n \nt_stacksize\n;\n    \nuint16_t\n \nt_flags\n;\n\n    \nuint8_t\n \nt_taskid\n;\n    \nuint8_t\n \nt_prio\n;\n    \nuint8_t\n \nt_state\n;\n    \nuint8_t\n \nt_pad\n;\n\n    \nchar\n \n*t_name\n;\n    \nos_task_func_t\n \nt_func\n;\n    \nvoid\n \n*t_arg\n;\n\n    \nvoid\n \n*t_obj\n;\n\n    \nstruct\n \nos_sanity_check\n \nt_sanity_check\n; \n\n    \nos_time_t\n \nt_next_wakeup\n;\n    \nos_time_t\n \nt_run_time\n;\n    \nuint32_t\n \nt_ctx_sw_cnt\n;\n\n    \n/* Global list of all tasks, irrespective of run or sleep lists */\n\n    \nSTAILQ_ENTRY\n(\nos_task\n) \nt_os_task_list\n;\n\n    \n/* Used to chain task to either the run or sleep list */\n \n    \nTAILQ_ENTRY\n(\nos_task\n) \nt_os_list\n;\n\n    \n/* Used to chain task to an object such as a semaphore or mutex */\n\n    \nSLIST_ENTRY\n(\nos_task\n) \nt_obj_list\n;\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nt_stackptr\n\n\nCurrent stack pointer\n\n\n\n\n\n\nt_stacktop\n\n\nThe address of the top of the task stack. The stack grows downward\n\n\n\n\n\n\nt_stacksize\n\n\nThe size of the stack, in units of os_stack_t (not bytes!)\n\n\n\n\n\n\nt_flags\n\n\nTask flags (see flag definitions)\n\n\n\n\n\n\nt_taskid\n\n\nA numeric id assigned to each task\n\n\n\n\n\n\nt_prio\n\n\nThe priority of the task. The lower the number, the higher the priority\n\n\n\n\n\n\nt_state\n\n\nThe task state (see state definitions)\n\n\n\n\n\n\nt_pad\n\n\npadding (for alignment)\n\n\n\n\n\n\nt_name\n\n\nName of task\n\n\n\n\n\n\nt_func\n\n\nPointer to task function\n\n\n\n\n\n\nt_obj\n\n\nGeneric object used by mutexes and semaphores when the task is waiting on a mutex or semaphore\n\n\n\n\n\n\nt_sanity_check\n\n\nSanity task data structure\n\n\n\n\n\n\nt_next_wakeup\n\n\nOS time when task is next scheduled to wake up\n\n\n\n\n\n\nt_run_time\n\n\nThe amount of os time ticks this task has been running\n\n\n\n\n\n\nt_ctx_sw_cnt\n\n\nThe number of times that this task has been run\n\n\n\n\n\n\nt_os_task_list\n\n\nList pointer for global task list. All tasks are placed on this list\n\n\n\n\n\n\nt_os_list\n\n\nList pointer used by either the active task list or the sleeping task list\n\n\n\n\n\n\nt_obj_list\n\n\nList pointer for tasks waiting on a semaphore or mutex\n\n\n\n\n\n\n\n\n\n\nstruct\n \nos_task_info\n {\n    \nuint8_t\n \noti_prio\n;\n    \nuint8_t\n \noti_taskid\n;\n    \nuint8_t\n \noti_state\n;\n    \nuint8_t\n \noti_flags\n;\n    \nuint16_t\n \noti_stkusage\n;\n    \nuint16_t\n \noti_stksize\n;\n    \nuint32_t\n \noti_cswcnt\n;\n    \nuint32_t\n \noti_runtime\n;\n    \nos_time_t\n \noti_last_checkin\n;\n    \nos_time_t\n \noti_next_checkin\n;\n\n    \nchar\n \noti_name\n[\nOS_TASK_MAX_NAME_LEN\n];\n};\n\n\n\n\n\n\n\n\n\n\n\nElement\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\noti_prio\n\n\nTask priority\n\n\n\n\n\n\noti_taskid\n\n\nTask id\n\n\n\n\n\n\noti_state\n\n\nTask state\n\n\n\n\n\n\noti_flags\n\n\nTask flags\n\n\n\n\n\n\noti_stkusage\n\n\nAmount of stack used by the task (in os_stack_t units)\n\n\n\n\n\n\noti_stksize\n\n\nThe size of the stack (in os_stack_t units)\n\n\n\n\n\n\noti_cswcnt\n\n\nThe context switch count\n\n\n\n\n\n\noti_runtime\n\n\nThe amount of time that the task has run (in os time ticks)\n\n\n\n\n\n\noti_last_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_next_checkin\n\n\nThe time (os time) at which this task last checked in to the sanity task\n\n\n\n\n\n\noti_name\n\n\nName of the task\n\n\n\n\n\n\n\n\n\n\nList of Functions\n\n\nThe functions available in task are:\n\n\n\n\n\n\n\n\nFunction\n\n\nDescription\n\n\n\n\n\n\n\n\n\n\nos_task_init\n\n\nCalled to create a task. This adds the task object to the list of ready to run tasks.\n\n\n\n\n\n\nos_task_count\n\n\nReturns the number of tasks that have been created.\n\n\n\n\n\n\nos_task_info_get_next\n\n\nPopulates the os task info structure given with task information.\n\n\n\n\n\n\nos_task_remove\n\n\nRemoves a task from the task list.", 
             "title": "toc"
         }, 
         {
@@ -3777,7 +3777,7 @@
         }, 
         {
             "location": "/os/core_os/task/task/#description", 
-            "text": "In order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. NOTE: be careful when declaring your stack! The stack is in units \nof  os_stack_t  sized elements (generally 32-bits). Looking at the example given \nbelow and assuming  os_stack_t  is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes.   A task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!  In order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the  os_task_init()  function is called. Once  os_task_init()  is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before  os_start()  is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.  Information about a task can be obtained using the  os_task_info_get_next()  \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type  os_task_info  and is described below.  The following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.  /* Create a simple  project  with a task that blinks a LED every second */  /* Define task stack and task object */  #define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST)   #define MY_STACK_SIZE       (64)   struct   os_task   my_task ;  os_stack_t   my_task_stack [ MY_STACK_SIZE ];  /* This is the task function */  void   my_task_func ( void   *arg ) {\n     /* Set the led pin as an output */ \n     hal_gpio_init_out ( LED_BLINK_PIN ,  1 );\n\n     /* The task is a forever loop that does not return */ \n     while  ( 1 ) {\n         /* Wait one second */  \n         os_time_delay ( 1000 );\n\n         /* Toggle the LED */  \n         hal_gpio_toggle ( LED_BLINK_PIN );\n    }\n} /* This is the main function for the project */  int   main ( int   argc ,  char   **argv ) \n{\n\n     /* Perform system and package initialization */ \n     sysinit ();\n\n     /* Initialize the task */ \n     os_task_init ( my_task ,  my_task ,  my_task_func ,  NULL ,  MY_TASK_PRIO , \n                  OS_WAIT_FOREVER ,  my_task_stack ,  MY_STACK_SIZE );\n\n     /*  Process events from the default event queue.  */ \n     while  ( 1 ) {\n        os_eventq_run ( os_eventq_dflt_get ());\n    }\n     /* main never returns */   \n}", 
+            "text": "In order to create a task two data structures need to be defined: the task \nobject (struct os_task) and its associated stack. Determining the stack size can \nbe a bit tricky; generally developers should not declare large local variables \non the stack so that task stacks can be of limited size. However, all \napplications are different and the developer must choose the stack size \naccordingly. It is recommended to use  OS_TASK_STACK_DEFINE  macro to create a stack\nas this macro assures correct alignment.\nNOTE: be careful when declaring your stack! The stack is in units\nof  os_stack_t  sized elements (generally 32-bits). Looking at the example given \nbelow and assuming  os_stack_t  is defined to be a 32-bit unsigned value, \n\"my_task_stack\" will use 256 bytes.   A task must also have an associated \"task function\". This is the function that \nwill be called when the task is first run. This task function should never \nreturn!  In order to inform the Mynewt OS of the new task and to have it added to the \nscheduler, the  os_task_init()  function is called. Once  os_task_init()  is \ncalled, the task is made ready to run and is added to the active task list. Note \nthat a task can be initialized (started) before or after the os has started \n(i.e. before  os_start()  is called) but must be initialized after the os has \nbeen initialized (i.e. 'os_init' has been called). In most of the examples and \ncurrent Mynewt projects, the os is initialized, tasks are initialized, and the \nthe os is started. Once the os has started, the highest priority task will be \nthe first task set to run.  Information about a task can be obtained using the  os_task_info_get_next()  \nAPI. Developers can walk the list of tasks to obtain information on all created \ntasks. This information is of type  os_task_info  and is described below.  The following is a very simple example showing a single application task. This \ntask simply toggles an LED at a one second interval.  /* Create a simple  project  with a task that blinks a LED every second */  /* Define task stack and task object */  #define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST)   #define MY_STACK_SIZE       (64)   struct   os_task   my_task ;  OS_TASK_STACK_DEFINE ( my_task_stack ,  MY_STACK_SIZE ); /* This is the task function */  void   my_task_func ( void   *arg ) {\n     /* Set the led pin as an output */ \n     hal_gpio_init_out ( LED_BLINK_PIN ,  1 );\n\n     /* The task is a forever loop that does not return */ \n     while  ( 1 ) {\n         /* Wait one second */  \n         os_time_delay ( 1000 );\n\n         /* Toggle the LED */  \n         hal_gpio_toggle ( LED_BLINK_PIN );\n    }\n} /* This is the main function for the project */  int   main ( int   argc ,  char   **argv ) \n{\n\n     /* Perform system and package initialization */ \n     sysinit ();\n\n     /* Initialize the task */ \n     os_task_init ( my_task ,  my_task ,  my_task_func ,  NULL ,  MY_TASK_PRIO , \n                  OS_WAIT_FOREVER ,  my_task_stack ,  MY_STACK_SIZE );\n\n     /*  Process events from the default event queue.  */ \n     while  ( 1 ) {\n        os_eventq_run ( os_eventq_dflt_get ());\n    }\n     /* main never returns */   \n}", 
             "title": "Description"
         }, 
         {
diff --git a/os/core_os/task/task/index.html b/os/core_os/task/task/index.html
index be94028bf4b..aaa76529a1a 100644
--- a/os/core_os/task/task/index.html
+++ b/os/core_os/task/task/index.html
@@ -794,7 +794,9 @@ <h2 id="description">Description</h2>
 be a bit tricky; generally developers should not declare large local variables 
 on the stack so that task stacks can be of limited size. However, all 
 applications are different and the developer must choose the stack size 
-accordingly. NOTE: be careful when declaring your stack! The stack is in units 
+accordingly. It is recommended to use <code>OS_TASK_STACK_DEFINE</code> macro to create a stack
+as this macro assures correct alignment.
+NOTE: be careful when declaring your stack! The stack is in units
 of <code>os_stack_t</code> sized elements (generally 32-bits). Looking at the example given 
 below and assuming <code>os_stack_t</code> is defined to be a 32-bit unsigned value, 
 "my_task_stack" will use 256 bytes. </p>
@@ -821,7 +823,7 @@ <h2 id="description">Description</h2>
 <span style="color: #633820">#define MY_TASK_PRI         (OS_TASK_PRI_HIGHEST) </span>
 <span style="color: #633820">#define MY_STACK_SIZE       (64) </span>
 <span style="color: #A90D91">struct</span> <span style="color: #000000">os_task</span> <span style="color: #000000">my_task</span>; 
-<span style="color: #000000">os_stack_t</span> <span style="color: #000000">my_task_stack</span>[<span style="color: #000000">MY_STACK_SIZE</span>]; 
+<span style="color: #000000">OS_TASK_STACK_DEFINE</span>(<span style="color: #000000">my_task_stack</span>, <span style="color: #000000">MY_STACK_SIZE</span>);
 
 <span style="color: #177500">/* This is the task function */</span>
 <span style="color: #A90D91">void</span> <span style="color: #000000">my_task_func</span>(<span style="color: #A90D91">void</span> <span style="color: #000000">*arg</span>) {
diff --git a/os/tutorials/air_quality_sensor/index.html b/os/tutorials/air_quality_sensor/index.html
index 831fa37c950..2974a41a20e 100644
--- a/os/tutorials/air_quality_sensor/index.html
+++ b/os/tutorials/air_quality_sensor/index.html
@@ -960,7 +960,8 @@ <h3 id="add-cli-commands-for-testing-drivers">Add CLI commands for testing drive
 
 
 <p>Then register your senseair command with the shell by adding the following to <code>libs/my_drivers/senseair/src/senseair.c</code></p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span></span><span style="color: #633820">#include</span> <span style="color: #177500">&lt;shell/shell.h&gt;</span><span style="color: #633820"></span>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span></span><span style="color: #633820">#include</span> <span style="color: #177500">&lt;syscfg/syscfg.h&gt;</span><span style="color: #633820"></span>
+<span style="color: #633820">#include</span> <span style="color: #177500">&lt;shell/shell.h&gt;</span><span style="color: #633820"></span>
 <span style="color: #633820">#include</span> <span style="color: #177500">&lt;console/console.h&gt;</span><span style="color: #633820"></span>
 <span style="color: #633820">#include</span> <span style="color: #177500">&lt;assert.h&gt;</span><span style="color: #633820"></span>
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services