site_name: Apache Mynewt
site_url: http://mynewt.apache.org
repo_url: https://github.com/apache/mynewt-site/
edit_uri: blob/master/docs

theme:
    name: null
    custom_dir: "custom-theme"

nav:
- Home: 'index.md'
- Pages:
    - Bluetooth Low Energy 4.2: 'pages/ble.md'
    - Security Lifecycle: 'pages/securitybullets.md'
- Quick Start: 'quick-start.md'
- About: 'about.md'
- Talks: 'talks.md'
- Download: 'download.md'
- Community: 'community.md'
- Events: 'events.md'
- Documentation: 'documentation.md'
- Mynewt Documentation:
    - toc: 'os/introduction.md'
    - Basic Setup:
        - toc: 'os/get_started/get_started.md'
        - Native Install Option:
            - toc: 'os/get_started/native_install_intro.md'
            - 'Install Newt on Mac': 'newt/install/newt_mac.md'
            - 'Install Newt on Linux': 'newt/install/newt_linux.md'
            - 'Install Newt on Windows': 'newt/install/newt_windows.md'
            - 'Install Native Toolchain': 'os/get_started/native_tools.md'
            - 'Install Cross Tools for ARM': 'os/get_started/cross_tools.md'
        - 'Docker Container Option': 'os/get_started/docker.md'
        - 'Create Your First Project': 'os/get_started/project_create.md'
        - 'Serial Port Setup': 'os/get_started/serial_access.md'
    - Concepts: 'os/get_started/vocabulary.md'
    - Tutorials:
        - toc: 'os/tutorials/tutorials.md'
        - Project Blinky:
            - toc: 'os/tutorials/blinky.md'
            - 'Blinky on Arduino Zero': 'os/tutorials/arduino_zero.md'
            - 'Blinky on Arduino Primo': 'os/tutorials/blinky_primo.md'
            - 'Blinky on Olimex': 'os/tutorials/olimex.md'
            - 'Blinky on nRF52 DK': 'os/tutorials/nRF52.md'
            - 'Blinky on RedBear Nano 2': 'os/tutorials/rbnano2.md'
            - 'Blinky on STM32F4-Discovery': 'os/tutorials/blinky_stm32f4disc.md'
            - 'Add Console and Shell to Blinky': 'os/tutorials/blinky_console.md'
        - 'Work with repositories':
            - toc: 'os/tutorials/repo/add_repos.md'
            - 'Upgrade a Repo': 'os/tutorials/repo/upgrade_repo.md'
            - 'Turn project into a Repo': 'os/tutorials/repo/create_repo.md'
            - 'Access a private Repo': 'os/tutorials/repo/private_repo.md'
        - Project Slinky for Remote Comms:
            - toc: 'os/tutorials/project-slinky.md'
            - 'Slinky on sim device': 'os/tutorials/project-sim-slinky.md'
            - 'Slinky on Nordic nRF52': 'os/tutorials/project-nrf52-slinky.md'
            - 'Slinky on Olimex': 'os/tutorials/project-stm32-slinky.md'
        - Bluetooth Low Energy:
            - 'BLE Bare Bones Application': 'os/tutorials/ble_bare_bones.md'
            - 'BLE iBeacon': 'os/tutorials/ibeacon.md'
            - 'BLE Eddystone': 'os/tutorials/eddystone.md'
            - 'BLE Peripheral Project':
                - toc: 'os/tutorials/bleprph/bleprph-intro.md'
                - 'Service Registration': 'os/tutorials/bleprph/bleprph-svc-reg.md'
                - 'Characteristic Access': 'os/tutorials/bleprph/bleprph-chr-access.md'
                - 'Advertising': 'os/tutorials/bleprph/bleprph-adv.md'
                - 'GAP Event Callbacks': 'os/tutorials/bleprph/bleprph-gap-event.md'
                - 'BLE Peripheral App' : 'os/tutorials/bleprph/bleprph-app.md'
            - 'BLE HCI interface': 'os/tutorials/blehci_project.md'
        - LoRa:
            - 'LoraWAN app': 'os/tutorials/lora/lorawanapp.md'
        - OS Fundamentals:
            - 'Events and Event Queues': 'os/tutorials/event_queue.md'
            - 'Tasks and Priority Management': 'os/tutorials/tasks_lesson.md'
        - Remote Device Management:
            - 'Enable Newt Manager in any app': 'os/tutorials/add_newtmgr.md'
            - 'Upgrade an Image Over-The-Air': 'os/tutorials/ota_upgrade_nrf52.md'
        - 'Sensors':
            - Sensor Framework:
               - toc: 'os/tutorials/sensors/sensors.md'
               - 'Enable an Off-Board Sensor in an Existing Application': 'os/tutorials/sensors/sensor_nrf52_bno055.md'
               - 'Change the Default Configuration For a Sensor': 'os/tutorials/sensors/sensor_offboard_config.md'
               - 'Develop an Application for an Onboard Sensor': 'os/tutorials/sensors/sensor_thingy_lis2dh12_onb.md'
               - 'Enable OIC Sensor Data Monitoring':
                   - toc: 'os/tutorials/sensors/sensor_oic_overview.md'
                   - Enable OIC Sensor Support in the sensors_test Application: 'os/tutorials/sensors/sensor_nrf52_bno055_oic.md'
                   - Add OIC Sensor Support to the bleprph_oic Application: 'os/tutorials/sensors/sensor_bleprph_oic.md'
            - 'Air-quality Sensor project':
                - 'Basic Air Quality Sensor': 'os/tutorials/air_quality_sensor.md'
                - 'BLE-enabled Air Quality Sensor': 'os/tutorials/air_quality_ble.md'
            - 'Add an Analog Sensor': 'os/tutorials/nrf52_adc.md'
        - 'Tooling':
            - 'Segger RTT': 'os/tutorials/segger_rtt.md'
            - 'Segger Sysview': 'os/tutorials/segger_sysview.md'
        - 'Other':
            - 'How to Reduce Application Code Size': 'os/tutorials/codesize.md'
            - 'Write a Test Suite for a Package': 'os/tutorials/unit_test.md'
            - 'Enable Wi-Fi on Arduino MKR1000': 'os/tutorials/wi-fi_on_arduino.md'
    - OS User Guide:
        - toc: 'os/os_user_guide.md'
        - OS Core:
            - toc: 'os/core_os/mynewt_os.md'
            - 'Functions':
                - 'os_started': 'os/core_os/os_started.md'
            - Scheduler:
                - toc: 'os/core_os/context_switch/context_switch.md'
                - 'Functions':
                    - 'os_sched': 'os/core_os/context_switch/os_sched.md'
                    - 'os_arch_ctx_sw': 'os/core_os/context_switch/os_arch_ctx_sw.md'
                    - 'os_sched_ctx_sw_hook': 'os/core_os/context_switch/os_sched_ctx_sw_hook.md'
                    - 'os_sched_get_current_task': 'os/core_os/context_switch/os_sched_get_current_task.md'
                    - 'os_sched_insert': 'os/core_os/context_switch/os_sched_insert.md'
                    - 'os_sched_next_task': 'os/core_os/context_switch/os_sched_next_task.md'
                    - 'os_sched_os_timer_exp': 'os/core_os/context_switch/os_sched_os_timer_exp.md'
                    - 'os_sched_remove': 'os/core_os/context_switch/os_sched_remove.md'
                    - 'os_sched_resort': 'os/core_os/context_switch/os_sched_resort.md'
                    - 'os_sched_set_current_task': 'os/core_os/context_switch/os_sched_set_current_task.md'
                    - 'os_sched_sleep': 'os/core_os/context_switch/os_sched_sleep.md'
                    - 'os_sched_wakeup': 'os/core_os/context_switch/os_sched_wakeup.md'
            - CPU Time:
                - toc: 'os/core_os/cputime/os_cputime.md'
                - 'Functions':
                    - 'os_cputime_delay_nsecs': 'os/core_os/cputime/os_cputime_delay_nsecs.md'
                    - 'os_cputime_delay_ticks': 'os/core_os/cputime/os_cputime_delay_ticks.md'
                    - 'os_cputime_delay_usecs': 'os/core_os/cputime/os_cputime_delay_usecs.md'
                    - 'os_cputime_get32': 'os/core_os/cputime/os_cputime_get32.md'
                    - 'os_cputime_init': 'os/core_os/cputime/os_cputime_init.md'
                    - 'os_cputime_nsecs_to_ticks': 'os/core_os/cputime/os_cputime_nsecs_to_ticks.md'
                    - 'os_cputime_ticks_to_nsecs': 'os/core_os/cputime/os_cputime_ticks_to_nsecs.md'
                    - 'os_cputime_ticks_to_usecs': 'os/core_os/cputime/os_cputime_ticks_to_usecs.md'
                    - 'os_cputime_timer_init': 'os/core_os/cputime/os_cputime_timer_init.md'
                    - 'os_cputime_timer_relative': 'os/core_os/cputime/os_cputime_timer_relative.md'
                    - 'os_cputime_timer_start': 'os/core_os/cputime/os_cputime_timer_start.md'
                    - 'os_cputime_timer_stop': 'os/core_os/cputime/os_cputime_timer_stop.md'
                    - 'os_cputime_usecs_to_ticks': 'os/core_os/cputime/os_cputime_usecs_to_ticks.md'
            - OS Time:
                - toc: 'os/core_os/time/os_time.md'
                - 'Functions':
                    - 'os_time_advance': 'os/core_os/time/os_time_advance.md'
                    - 'os_time_delay': 'os/core_os/time/os_time_delay.md'
                    - 'os_time_get': 'os/core_os/time/os_time_get.md'
                    - 'os_time_ms_to_ticks': 'os/core_os/time/os_time_ms_to_ticks.md'
                    - 'os_get_uptime_usec': 'os/core_os/time/os_get_uptime_usec.md'
                    - 'os_gettimeofday': 'os/core_os/time/os_gettimeofday.md'
                    - 'os_settimeofday': 'os/core_os/time/os_settimeofday.md'
            - Tasks:
                - toc: 'os/core_os/task/task.md'
                - 'Functions':
                    - 'os_task_count': 'os/core_os/task/os_task_count.md'
                    - 'os_task_info_get_next': 'os/core_os/task/os_task_info_get_next.md'
                    - 'os_task_init': 'os/core_os/task/os_task_init.md'
                    - 'os_task_remove': 'os/core_os/task/os_task_remove.md'
            - Event Queues:
                - toc: 'os/core_os/event_queue/event_queue.md'
                - 'Functions':
                    - 'os_eventq_init': 'os/core_os/event_queue/os_eventq_init.md'
                    - 'os_eventq_inited': 'os/core_os/event_queue/os_eventq_inited.md'
                    - 'os_eventq_get': 'os/core_os/event_queue/os_eventq_get.md'
                    - 'os_eventq_put': 'os/core_os/event_queue/os_eventq_put.md'
                    - 'os_eventq_remove': 'os/core_os/event_queue/os_eventq_remove.md'
                    - 'os_eventq_dflt_get': 'os/core_os/event_queue/os_eventq_dflt_get.md'
                    - 'os_eventq_designate': 'os/core_os/event_queue/os_eventq_designate.md'
                    - 'os_eventq_run': 'os/core_os/event_queue/os_eventq_run.md'
            - Semaphores:
                - toc: 'os/core_os/semaphore/semaphore.md'
                - 'Functions':
                    - 'os_sem_init': 'os/core_os/semaphore/os_sem_init.md'
                    - 'os_sem_pend': 'os/core_os/semaphore/os_sem_pend.md'
                    - 'os_sem_release': 'os/core_os/semaphore/os_sem_release.md'
            - Mutexes:
                - toc: 'os/core_os/mutex/mutex.md'
                - 'Functions':
                    - 'os_mutex_init': 'os/core_os/mutex/os_mutex_init.md'
                    - 'os_mutex_pend': 'os/core_os/mutex/os_mutex_pend.md'
                    - 'os_mutex_release': 'os/core_os/mutex/os_mutex_release.md'
            - Memory Pools:
                - toc: 'os/core_os/memory_pool/memory_pool.md'
                - 'Functions/Macros':
                    - 'os_memblock_get': 'os/core_os/memory_pool/os_memblock_get.md'
                    - 'os_mempool_info_get_next': 'os/core_os/memory_pool/os_mempool_info_get_next.md'
                    - 'os_mempool_init': 'os/core_os/memory_pool/os_mempool_init.md'
                    - 'os_memblock_put': 'os/core_os/memory_pool/os_memblock_put.md'
                    - 'OS_MEMPOOL_BYTES': 'os/core_os/memory_pool/OS_MEMPOOL_BYTES.md'
                    - 'OS_MEMPOOL_SIZE': 'os/core_os/memory_pool/OS_MEMPOOL_SIZE.md'
            - Heap:
                - toc: 'os/core_os/heap/heap.md'
                - 'Functions':
                    - 'os_free': 'os/core_os/heap/os_free.md'
                    - 'os_malloc': 'os/core_os/heap/os_malloc.md'
                    - 'os_realloc': 'os/core_os/heap/os_realloc.md'
            - Memory Buffers:
                - Mbuf:
                    - toc: 'os/core_os/mbuf/mbuf.md'
                    - 'Functions/Macros':
                        - 'OS_MBUF_PKTHDR': 'os/core_os/mbuf/OS_MBUF_PKTHDR.md'
                        - 'OS_MBUF_PKTHDR_TO_MBUF': 'os/core_os/mbuf/OS_MBUF_PKTHDR_TO_MBUF.md'
                        - 'OS_MBUF_PKTLEN': 'os/core_os/mbuf/OS_MBUF_PKTLEN.md'
                        - 'OS_MBUF_DATA': 'os/core_os/mbuf/OS_MBUF_DATA.md'
                        - 'OS_MBUF_USRHDR': 'os/core_os/mbuf/OS_MBUF_USRHDR.md'
                        - 'OS_MBUF_USRHDR_LEN': 'os/core_os/mbuf/OS_MBUF_USRHDR_LEN.md'
                        - 'OS_MBUF_LEADINGSPACE': 'os/core_os/mbuf/OS_MBUF_LEADINGSPACE.md'
                        - 'OS_MBUF_TRAILINGSPACE': 'os/core_os/mbuf/OS_MBUF_TRAILINGSPACE.md'
                        - 'os_mbuf_adj': 'os/core_os/mbuf/os_mbuf_adj.md'
                        - 'os_mbuf_append': 'os/core_os/mbuf/os_mbuf_append.md'
                        - 'os_mbuf_concat': 'os/core_os/mbuf/os_mbuf_concat.md'
                        - 'os_mbuf_copydata': 'os/core_os/mbuf/os_mbuf_copydata.md'
                        - 'os_mbuf_copyinto': 'os/core_os/mbuf/os_mbuf_copyinto.md'
                        - 'os_mbuf_dup': 'os/core_os/mbuf/os_mbuf_dup.md'
                        - 'os_mbuf_extend': 'os/core_os/mbuf/os_mbuf_extend.md'
                        - 'os_mbuf_free_chain': 'os/core_os/mbuf/os_mbuf_free_chain.md'
                        - 'os_mbuf_get': 'os/core_os/mbuf/os_mbuf_get.md'
                        - 'os_mbuf_get_pkthdr': 'os/core_os/mbuf/os_mbuf_get_pkthdr.md'
                        - 'os_mbuf_memcmp': 'os/core_os/mbuf/os_mbuf_memcmp.md'
                        - 'os_mbuf_off': 'os/core_os/mbuf/os_mbuf_off.md'
                        - 'os_mbuf_pool_init': 'os/core_os/mbuf/os_mbuf_pool_init.md'
                        - 'os_mbuf_prepend': 'os/core_os/mbuf/os_mbuf_prepend.md'
                        - 'os_mbuf_pullup': 'os/core_os/mbuf/os_mbuf_pullup.md'
                - Msys:
                    - toc: 'os/core_os/msys/msys.md'
                    - 'Functions':
                        - 'os_msys_get': 'os/core_os/msys/os_msys_get.md'
                        - 'os_msys_get_pkthdr': 'os/core_os/msys/os_msys_get_pkthdr.md'
                        - 'os_msys_register': 'os/core_os/msys/os_msys_register.md'
                        - 'os_msys_reset': 'os/core_os/msys/os_msys_reset.md'
                - MQueue:
                    - toc: 'os/core_os/mqueue/mqueue.md'
                    - Functions:
                        - 'os_mqueue_init': 'os/core_os/mqueue/os_mqueue_init.md'
                        - 'os_mqueue_get': 'os/core_os/mqueue/os_mqueue_get.md'
                        - 'os_mqueue_put': 'os/core_os/mqueue/os_mqueue_put.md'
            - Sanity:
                - toc: 'os/core_os/sanity/sanity.md'
                - 'Functions':
                    - 'os_sanity_check_init': 'os/core_os/sanity/os_sanity_check_init.md'
                    - 'os_sanity_check_register': 'os/core_os/sanity/os_sanity_check_register.md'
                    - 'os_sanity_check_reset': 'os/core_os/sanity/os_sanity_check_reset.md'
                    - 'os_sanity_task_checkin': 'os/core_os/sanity/os_sanity_task_checkin.md'
            - Callouts:
                - toc: 'os/core_os/callout/callout.md'
                - 'Functions':
                    - 'os_callout_func_init': 'os/core_os/callout/os_callout_func_init.md'
                    - 'os_callout_init': 'os/core_os/callout/os_callout_init.md'
                    - 'os_callout_queued': 'os/core_os/callout/os_callout_queued.md'
                    - 'os_callout_reset': 'os/core_os/callout/os_callout_reset.md'
                    - 'os_callout_stop': 'os/core_os/callout/os_callout_stop.md'
        - Porting to your Platform:
            - toc: 'os/core_os/porting/port_os.md'
            - 'BSP Porting': 'os/core_os/porting/port_bsp.md'
            - 'MCU Porting': 'os/core_os/porting/port_mcu.md'
            - 'CPU Porting': 'os/core_os/porting/port_cpu.md'
        - Console:
            - toc: 'os/modules/console/console.md'
            - 'Functions':
                - 'console_echo': 'os/modules/console/console_echo.md'
                - 'console_init': 'os/modules/console/console_init.md'
                - 'console_is_init': 'os/modules/console/console_is_init.md'
                - 'console_printf': 'os/modules/console/console_printf.md'
                - 'console_read': 'os/modules/console/console_read.md'
                - 'console_set_queues': 'os/modules/console/console_set_queues.md'
                - 'console_write': 'os/modules/console/console_write.md'
        - Shell:
            - toc: 'os/modules/shell/shell.md'
            - 'Functions':
                - 'shell_cmd_register': 'os/modules/shell/shell_cmd_register.md'
                - 'shell_evq_set' : 'os/modules/shell/shell_evq_set.md'
                - 'shell_nlip_input_register': 'os/modules/shell/shell_nlip_input_register.md'
                - 'shell_nlip_output': 'os/modules/shell/shell_nlip_output.md'
                - 'shell_register': 'os/modules/shell/shell_register.md'
                - 'shell_register_app_cmd_handler': 'os/modules/shell/shell_register_app_cmd_handler.md'
                - 'shell_register_default_module': 'os/modules/shell/shell_register_default_module.md'
        - Split Images:
            - toc: 'os/modules/split/split.md'
        - Bootloader:
            - toc: 'os/modules/bootloader/bootloader.md'
            - 'Functions':
                - 'boot_build_status': 'os/modules/bootloader/boot_build_status.md'
                - 'boot_build_status_one': 'os/modules/bootloader/boot_build_status_one.md'
                - 'boot_clear_status': 'os/modules/bootloader/boot_clear_status.md'
                - 'boot_copy_area': 'os/modules/bootloader/boot_copy_area.md'
                - 'boot_copy_image': 'os/modules/bootloader/boot_copy_image.md'
                - 'boot_erase_area': 'os/modules/bootloader/boot_erase_area.md'
                - 'boot_fill_slot': 'os/modules/bootloader/boot_fill_slot.md'
                - 'boot_find_image_area_idx': 'os/modules/bootloader/boot_find_image_area_idx.md'
                - 'boot_find_image_part': 'os/modules/bootloader/boot_find_image_part.md'
                - 'boot_find_image_slot': 'os/modules/bootloader/boot_find_image_slot.md'
                - 'boot_go': 'os/modules/bootloader/boot_go.md'
                - 'boot_init_flash': 'os/modules/bootloader/boot_init_flash.md'
                - 'boot_move_area': 'os/modules/bootloader/boot_move_area.md'
                - 'boot_read_image_header': 'os/modules/bootloader/boot_read_image_header.md'
                - 'boot_read_image_headers': 'os/modules/bootloader/boot_read_image_headers.md'
                - 'boot_read_status': 'os/modules/bootloader/boot_read_status.md'
                - 'boot_select_image_slot': 'os/modules/bootloader/boot_select_image_slot.md'
                - 'boot_slot_addr': 'os/modules/bootloader/boot_slot_addr.md'
                - 'boot_slot_to_area_idx': 'os/modules/bootloader/boot_slot_to_area_idx.md'
                - 'boot_swap_areas': 'os/modules/bootloader/boot_swap_areas.md'
                - 'boot_vect_delete_main': 'os/modules/bootloader/boot_vect_delete_main.md'
                - 'boot_vect_delete_test': 'os/modules/bootloader/boot_vect_delete_test.md'
                - 'boot_vect_read_main': 'os/modules/bootloader/boot_vect_read_main.md'
                - 'boot_vect_read_one': 'os/modules/bootloader/boot_vect_read_one.md'
                - 'boot_vect_read_test': 'os/modules/bootloader/boot_vect_read_test.md'
                - 'boot_write_status': 'os/modules/bootloader/boot_write_status.md'
        - File System:
            - 'File System Abstraction':
                - toc: 'os/modules/fs/fs/fs.md'
                - 'Return Codes': 'os/modules/fs/fs/fs_return_codes.md'
                - 'Data Structures':
                    - 'struct fs_ops': 'os/modules/fs/fs/fs_ops.md'
                - 'Functions':
                    - 'fs_close': 'os/modules/fs/fs/fs_close.md'
                    - 'fs_closedir': 'os/modules/fs/fs/fs_closedir.md'
                    - 'fs_dirent_is_dir': 'os/modules/fs/fs/fs_dirent_is_dir.md'
                    - 'fs_dirent_name': 'os/modules/fs/fs/fs_dirent_name.md'
                    - 'fs_filelen': 'os/modules/fs/fs/fs_filelen.md'
                    - 'fs_getpos': 'os/modules/fs/fs/fs_getpos.md'
                    - 'fs_mkdir': 'os/modules/fs/fs/fs_mkdir.md'
                    - 'fs_open': 'os/modules/fs/fs/fs_open.md'
                    - 'fs_opendir': 'os/modules/fs/fs/fs_opendir.md'
                    - 'fs_read': 'os/modules/fs/fs/fs_read.md'
                    - 'fs_readdir': 'os/modules/fs/fs/fs_readdir.md'
                    - 'fs_register': 'os/modules/fs/fs/fs_register.md'
                    - 'fs_rename': 'os/modules/fs/fs/fs_rename.md'
                    - 'fs_seek': 'os/modules/fs/fs/fs_seek.md'
                    - 'fs_unlink': 'os/modules/fs/fs/fs_unlink.md'
                    - 'fs_write': 'os/modules/fs/fs/fs_write.md'
                    - 'fsutil_read_file': 'os/modules/fs/fs/fsutil_read_file.md'
                    - 'fsutil_write_file': 'os/modules/fs/fs/fsutil_write_file.md'
            - 'FAT File System': 'os/modules/fs/fatfs.md'
            - 'Newtron Flash File System':
                - toc:               'os/modules/fs/nffs/nffs.md'
                - 'Data Structures':
                    - 'struct nffs_area_desc': 'os/modules/fs/nffs/nffs_area_desc.md'
                    - 'struct nffs_config': 'os/modules/fs/nffs/nffs_config.md'
                - 'Functions':
                    - 'nffs_detect': 'os/modules/fs/nffs/nffs_detect.md'
                    - 'nffs_format': 'os/modules/fs/nffs/nffs_format.md'
                    - 'nffs_init': 'os/modules/fs/nffs/nffs_init.md'
                - 'Internals': 'os/modules/fs/nffs/nffs_internals.md'
            - 'Other File Systems': 'os/modules/fs/otherfs.md'
        - Hardware Abstraction Layer:
            - toc: 'os/modules/hal/hal.md'
            - 'API':
                - 'Summary': 'os/modules/hal/hal_api.md'
                - 'BSP': 'os/modules/hal/hal_bsp/hal_bsp.md'
                - 'Flash memory':
                    - 'flash API for apps': 'os/modules/hal/hal_flash/hal_flash.md'
                    - 'flash_int': 'os/modules/hal/hal_flash/hal_flash_int.md'
                - 'GPIO': 'os/modules/hal/hal_gpio/hal_gpio.md'
                - 'I2C': 'os/modules/hal/hal_i2c/hal_i2c.md'
                - 'OS Tick': 'os/modules/hal/hal_os_tick/hal_os_tick.md'
                - 'SPI': 'os/modules/hal/hal_spi/hal_spi.md'
                - 'System': 'os/modules/hal/hal_system/hal_sys.md'
                - 'Timer': 'os/modules/hal/hal_timer/hal_timer.md'
                - 'UART': 'os/modules/hal/hal_uart/hal_uart.md'
                - 'Watchdog': 'os/modules/hal/hal_watchdog/hal_watchdog.md'
            - 'Using HAL': 'os/modules/hal/hal_in_libraries.md'
            - 'Creating HAL': 'os/modules/hal/hal_creation.md'
        - Sensor Framework:
            - toc: 'os/modules/sensor_framework/sensor_framework_overview.md'
            - 'API':
                - 'Sensor API': 'os/modules/sensor_framework/sensor_api.md'
                - 'Sensor Manager API': 'os/modules/sensor_framework/sensor_mgr_api.md'
                - 'Sensor Listener API': 'os/modules/sensor_framework/sensor_listener_api.md'
                - 'OIC Sensor API': 'os/modules/sensor_framework/sensor_oic.md'
            -  'Sensor Shell': 'os/modules/sensor_framework/sensor_shell.md'
            - 'Sensor Device Driver': 'os/modules/sensor_framework/sensor_driver.md'
            - 'Creating and Configuring Sensor Devices': 'os/modules/sensor_framework/sensor_create.md'
        - Drivers:
            - toc: 'os/modules/drivers/driver.md'
            - 'Supported Drivers':
                  #- 'adc': 'os/modules/drivers/adc.md'
                - 'flash': 'os/modules/drivers/flash.md'
                  #  - 'lwip': 'os/modules/drivers/lwip.md'
                - 'mmc': 'os/modules/drivers/mmc.md'
                - 'nimBLE': 'network/ble/ble_intro.md'
                  #- 'sensors': 'os/modules/drivers/sensors.md'
                  #- 'uart': 'os/modules/drivers/uart.md'
        - Test Utilities:
            - toc: 'os/modules/testutil/testutil.md'
            - 'Functions/Macros':
                - 'tu_init': 'os/modules/testutil/tu_init.md'
                - 'TEST_ASSERT': 'os/modules/testutil/test_assert.md'
                - 'TEST_PASS': 'os/modules/testutil/test_pass.md'
                - 'TEST_SUITE': 'os/modules/testutil/test_suite.md'
                - 'TEST_CASE': 'os/modules/testutil/test_case.md'
                - 'TEST_CASE_DECL': 'os/modules/testutil/test_decl.md'
                - 'tu_restart': 'os/modules/testutil/tu_restart.md'
        - Device Management with Newt Manager:
            - toc: 'os/modules/devmgmt/newtmgr.md'
            - 'Using Newt Manager in OIC framework': 'os/modules/devmgmt/oicmgr.md'
            - 'Customizing Newt Manager Usage with mgmt': 'os/modules/devmgmt/customize_newtmgr.md'
        - Image Manager:
            - toc: 'os/modules/imgmgr/imgmgr.md'
            - 'Functions':
                - 'imgr_ver_parse': 'os/modules/imgmgr/imgr_ver_parse.md'
                - 'imgr_ver_str': 'os/modules/imgmgr/imgr_ver_str.md'
        - 'Baselibc library': 'os/modules/baselibc.md'
        - JSON:
            - toc: 'os/modules/json/json.md'
            - 'Functions':
                - 'json_encode_object_entry': 'os/modules/json/json_encode_object_entry.md'
                - 'json_encode_object_finish': 'os/modules/json/json_encode_object_finish.md'
                - 'json_encode_object_key': 'os/modules/json/json_encode_object_key.md'
                - 'json_encode_object_start': 'os/modules/json/json_encode_object_start.md'
                - 'json_read_object': 'os/modules/json/json_read_object.md'
        - Flash Circular Buffer:
            - toc: 'os/modules/fcb/fcb.md'
            - 'Functions':
                - 'fcb_init': 'os/modules/fcb/fcb_init.md'
                - 'fcb_append': 'os/modules/fcb/fcb_append.md'
                - 'fcb_append_finish': 'os/modules/fcb/fcb_append_finish.md'
                - 'fcb_walk': 'os/modules/fcb/fcb_walk.md'
                - 'fcb_getnext': 'os/modules/fcb/fcb_getnext.md'
                - 'fcb_rotate': 'os/modules/fcb/fcb_rotate.md'
                - 'fcb_append_to_scratch': 'os/modules/fcb/fcb_append_to_scratch.md'
                - 'fcb_is_empty': 'os/modules/fcb/fcb_is_empty.md'
                - 'fcb_offset_last_n': 'os/modules/fcb/fcb_offset_last_n.md'
                - 'fcb_clear': 'os/modules/fcb/fcb_clear.md'
        - Stats:
            - toc: 'os/modules/stats/stats.md'
        - Logs:
            - toc: 'os/modules/logs/logs.md'
        - System Configuration And Initialization:
            - toc: 'os/modules/sysinitconfig/sysinitconfig.md'
            - 'Validation and Error Messages': 'os/modules/sysinitconfig/sysconfig_error.md'
    - BLE User Guide:
        - NimBLE Introduction: 'network/ble/ble_intro.md'
        - NimBLE Security: 'network/ble/ble_sec.md'
        - NimBLE Setup:
            - toc: 'network/ble/ble_setup/ble_setup_intro.md'
            - 'Configure clock for controller': 'network/ble/ble_setup/ble_lp_clock.md'
            - 'Configure device address': 'network/ble/ble_setup/ble_addr.md'
            - 'Configure sync callbacks': 'network/ble/ble_setup/ble_sync_cb.md'
        - NimBLE Host API:
            - toc: 'network/ble/ble_hs/ble_hs.md'
            - 'Return codes': 'network/ble/ble_hs/ble_hs_return_codes.md'

            - 'GAP':
                - toc: 'network/ble/ble_hs/ble_gap/ble_gap.md'
                - 'Definitions':
                    - 'GAP definitions': 'network/ble/ble_hs/ble_gap/definitions/ble_gap_defs.md'
                - 'Functions':
                    - 'ble_gap_adv_active': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_active.md'
                    - 'ble_gap_adv_rsp_set_data': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_rsp_set_data.md'
                    - 'ble_gap_adv_rsp_set_fields': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_rsp_set_fields.md'
                    - 'ble_gap_adv_set_data': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_set_data.md'
                    - 'ble_gap_adv_set_fields': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_set_fields.md'
                    - 'ble_gap_adv_set_phys': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_set_phys.md'
                    - 'ble_gap_adv_set_tx_power': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_set_tx_power.md'
                    - 'ble_gap_adv_start': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_start.md'
                    - 'ble_gap_adv_stop': 'network/ble/ble_hs/ble_gap/functions/ble_gap_adv_stop.md'
                    - 'ble_gap_conn_active': 'network/ble/ble_hs/ble_gap/functions/ble_gap_conn_active.md'
                    - 'ble_gap_conn_cancel': 'network/ble/ble_hs/ble_gap/functions/ble_gap_conn_cancel.md'
                    - 'ble_gap_conn_find': 'network/ble/ble_hs/ble_gap/functions/ble_gap_conn_find.md'
                    - 'ble_gap_conn_rssi': 'network/ble/ble_hs/ble_gap/functions/ble_gap_conn_rssi.md'
                    - 'ble_gap_connect': 'network/ble/ble_hs/ble_gap/functions/ble_gap_connect.md'
                    - 'ble_gap_ext_connect': 'network/ble/ble_hs/ble_gap/functions/ble_gap_ext_connect.md'
                    - 'ble_gap_disc': 'network/ble/ble_hs/ble_gap/functions/ble_gap_disc.md'
                    - 'ble_gap_ext_disc': 'network/ble/ble_hs/ble_gap/functions/ble_gap_ext_disc.md'
                    - 'ble_gap_disc_active': 'network/ble/ble_hs/ble_gap/functions/ble_gap_disc_active.md'
                    - 'ble_gap_disc_cancel': 'network/ble/ble_hs/ble_gap/functions/ble_gap_disc_cancel.md'
                    - 'ble_gap_security_initiate': 'network/ble/ble_hs/ble_gap/functions/ble_gap_security_initiate.md'
                    - 'ble_gap_set_event_cb': 'network/ble/ble_hs/ble_gap/functions/ble_gap_set_event_cb.md'
                    - 'ble_gap_terminate': 'network/ble/ble_hs/ble_gap/functions/ble_gap_terminate.md'
                    - 'ble_gap_update_params': 'network/ble/ble_hs/ble_gap/functions/ble_gap_update_params.md'
                    - 'ble_gap_wl_set': 'network/ble/ble_hs/ble_gap/functions/ble_gap_wl_set.md'
                    - 'ble_gap_set_priv_mode': 'network/ble/ble_hs/ble_gap/functions/ble_gap_set_priv_mode.md'
                    - 'ble_gap_read_le_phy': 'network/ble/ble_hs/ble_gap/functions/ble_gap_read_le_phy.md'
                    - 'ble_gap_set_prefered_default_le_phy': 'network/ble/ble_hs/ble_gap/functions/ble_gap_set_prefered_default_le_phy.md'
                    - 'ble_gap_set_prefered_le_phy': 'network/ble/ble_hs/ble_gap/functions/ble_gap_set_prefered_le_phy.md'

            - 'GATT client':
                - toc: 'network/ble/ble_hs/ble_gattc/ble_gattc.md'
                - 'Definitions':
                    - 'GATT client definitions': 'network/ble/ble_hs/ble_gattc/definitions/ble_gattc_defs.md'
                - 'Functions':
                    - 'ble_gattc_disc_all_chrs': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_disc_all_chrs.md'
                    - 'ble_gattc_disc_all_dscs': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_disc_all_dscs.md'
                    - 'ble_gattc_disc_all_svcs': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_disc_all_svcs.md'
                    - 'ble_gattc_disc_chrs_by_uuid': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_disc_chrs_by_uuid.md'
                    - 'ble_gattc_disc_svc_by_uuid': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_disc_svc_by_uuid.md'
                    - 'ble_gattc_exchange_mtu': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_exchange_mtu.md'
                    - 'ble_gattc_find_inc_svcs': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_find_inc_svcs.md'
                    - 'ble_gattc_indicate': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_indicate.md'
                    - 'ble_gattc_indicate_custom': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_indicate_custom.md'
                    - 'ble_gattc_notify': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_notify.md'
                    - 'ble_gattc_notify_custom': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_notify_custom.md'
                    - 'ble_gattc_read': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_read.md'
                    - 'ble_gattc_read_by_uuid': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_read_by_uuid.md'
                    - 'ble_gattc_read_long': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_read_long.md'
                    - 'ble_gattc_read_mult': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_read_mult.md'
                    - 'ble_gattc_write': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write.md'
                    - 'ble_gattc_write_flat': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write_flat.md'
                    - 'ble_gattc_write_long': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write_long.md'
                    - 'ble_gattc_write_no_rsp': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write_no_rsp.md'
                    - 'ble_gattc_write_no_rsp_flat': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write_no_rsp_flat.md'
                    - 'ble_gattc_write_reliable': 'network/ble/ble_hs/ble_gattc/functions/ble_gattc_write_reliable.md'

            - 'GATT server':
                - toc: 'network/ble/ble_hs/ble_gatts/ble_gatts.md'
                - 'Definitions':
                    - 'GATT server definitions': 'network/ble/ble_hs/ble_gatts/definitions/ble_gatts_defs.md'
                - 'Functions':
                    - 'ble_gatts_add_svcs': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_add_svcs.md'
                    - 'ble_gatts_svc_set_visibility': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_svc_set_visibility.md'
                    - 'ble_gatts_count_cfg': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_count_cfg.md'
                    - 'ble_gatts_find_chr': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_find_chr.md'
                    - 'ble_gatts_find_dsc': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_find_dsc.md'
                    - 'ble_gatts_find_svc': 'network/ble/ble_hs/ble_gatts/functions/ble_gatts_find_svc.md'

            - 'Identity':
                - toc: 'network/ble/ble_hs/ble_hs_id/ble_hs_id.md'
                - 'Functions':
                    - 'ble_hs_id_copy_addr': 'network/ble/ble_hs/ble_hs_id/functions/ble_hs_id_copy_addr.md'
                    - 'ble_hs_id_gen_rnd': 'network/ble/ble_hs/ble_hs_id/functions/ble_hs_id_gen_rnd.md'
                    - 'ble_hs_id_set_rnd': 'network/ble/ble_hs/ble_hs_id/functions/ble_hs_id_set_rnd.md'

            - 'ATT':
                - toc: 'network/ble/ble_hs/ble_att/ble_att.md'
                - 'Functions':
                    - 'ble_att_mtu': 'network/ble/ble_hs/ble_att/functions/ble_att_mtu.md'
                    - 'ble_att_preferred_mtu': 'network/ble/ble_hs/ble_att/functions/ble_att_preferred_mtu.md'
                    - 'ble_att_set_preferred_mtu': 'network/ble/ble_hs/ble_att/functions/ble_att_set_preferred_mtu.md'
                    - 'ble_att_svr_read_local': 'network/ble/ble_hs/ble_att/functions/ble_att_svr_read_local.md'
                    - 'ble_att_svr_write_local': 'network/ble/ble_hs/ble_att/functions/ble_att_svr_write_local.md'
            - 'Other':
                - toc: 'network/ble/ble_hs/other/other.md'
                - 'Functions':
                    - 'ble_eddystone_set_adv_data_uid': 'network/ble/ble_hs/other/functions/ble_eddystone_set_adv_data_uid.md'
                    - 'ble_eddystone_set_adv_data_url': 'network/ble/ble_hs/other/functions/ble_eddystone_set_adv_data_url.md'
                    - 'ble_hs_evq_set': 'network/ble/ble_hs/other/functions/ble_hs_evq_set.md'
                    - 'ble_hs_mbuf_att_pkt': 'network/ble/ble_hs/other/functions/ble_hs_mbuf_att_pkt.md'
                    - 'ble_hs_mbuf_from_flat': 'network/ble/ble_hs/other/functions/ble_hs_mbuf_from_flat.md'
                    - 'ble_hs_mbuf_to_flat': 'network/ble/ble_hs/other/functions/ble_hs_mbuf_to_flat.md'
                    - 'ble_hs_sched_reset': 'network/ble/ble_hs/other/functions/ble_hs_sched_reset.md'
                    - 'ble_hs_synced': 'network/ble/ble_hs/other/functions/ble_hs_synced.md'
                    - 'ble_ibeacon_set_adv_data': 'network/ble/ble_hs/other/functions/ble_ibeacon_set_adv_data.md'
                    - 'ble_uuid_cmp': 'network/ble/ble_hs/other/functions/ble_uuid_cmp.md'
                    - 'ble_uuid_init_from_buf': 'network/ble/ble_hs/other/functions/ble_uuid_init_from_buf.md'
                    - 'ble_uuid_to_str': 'network/ble/ble_hs/other/functions/ble_uuid_to_str.md'
                    - 'ble_uuid_u16': 'network/ble/ble_hs/other/functions/ble_uuid_u16.md'

        - btshell Usage API:
            - toc: 'network/ble/btshell/btshell_api.md'
            - 'GAP in btshell': 'network/ble/btshell/btshell_GAP.md'
            - 'GATT in btshell': 'network/ble/btshell/btshell_GATT.md'
            - 'Advertisement Data Fields': 'network/ble/btshell/btshell_advdata.md'
        - Bluetooth Mesh:
            - toc: 'network/ble/ble_mesh.md'
            - blemesh sample: 'network/ble/ble_blemesh.md'
    - Newt Tool Guide:
        - toc: 'newt/newt_intro.md'
        - Newt Theory of Ops: 'newt/newt_operation.md'
        - Command Guide:
            - toc: 'newt/newt_ops.md'
            - 'newt build': 'newt/command_list/newt_build.md'
            - 'newt clean': 'newt/command_list/newt_clean.md'
            - 'newt create-image': 'newt/command_list/newt_create_image.md'
            - 'newt debug': 'newt/command_list/newt_debug.md'
            - 'newt help': 'newt/command_list/newt_help.md'
            - 'newt info': 'newt/command_list/newt_info.md'
            - 'newt install': 'newt/command_list/newt_install.md'
            - 'newt load': 'newt/command_list/newt_load.md'
            - 'newt mfg': 'newt/command_list/newt_mfg.md'
            - 'newt new': 'newt/command_list/newt_new.md'
            - 'newt pkg': 'newt/command_list/newt_pkg.md'
            - 'newt resign-image': 'newt/command_list/newt_resign_image.md'
            - 'newt run': 'newt/command_list/newt_run.md'
            - 'newt size': 'newt/command_list/newt_size.md'
            - 'newt sync': 'newt/command_list/newt_sync.md'
            - 'newt target': 'newt/command_list/newt_target.md'
            - 'newt test': 'newt/command_list/newt_test.md'
            - 'newt upgrade': 'newt/command_list/newt_upgrade.md'
            - 'newt vals': 'newt/command_list/newt_vals.md'
            - 'newt version': 'newt/command_list/newt_version.md'
    - Newt Manager Guide:
        - toc: 'newtmgr/overview.md'
        - Command Guide:
            - 'newtmgr config': 'newtmgr/command_list/newtmgr_config.md'
            - 'newtmgr conn': 'newtmgr/command_list/newtmgr_conn.md'
            - 'newtmgr crash': 'newtmgr/command_list/newtmgr_crash.md'
            - 'newtmgr datetime': 'newtmgr/command_list/newtmgr_datetime.md'
            - 'newtmgr echo': 'newtmgr/command_list/newtmgr_echo.md'
            - 'newtmgr fs': 'newtmgr/command_list/newtmgr_fs.md'
            - 'newtmgr image': 'newtmgr/command_list/newtmgr_image.md'
            - 'newtmgr log': 'newtmgr/command_list/newtmgr_logs.md'
            - 'newtmgr mpstat': 'newtmgr/command_list/newtmgr_mpstats.md'
            - 'newtmgr reset': 'newtmgr/command_list/newtmgr_reset.md'
            - 'newtmgr run': 'newtmgr/command_list/newtmgr_run.md'
            - 'newtmgr stat': 'newtmgr/command_list/newtmgr_stat.md'
            - 'newtmgr taskstat': 'newtmgr/command_list/newtmgr_taskstats.md'
        - 'Install':
            - 'Install Newtmgr On Mac OS': 'newtmgr/install_mac.md'
            - 'Install Newtmgr On Linux':  'newtmgr/install_linux.md'
            - 'Install Newtmgr On Windows':  'newtmgr/install_windows.md'
    - Known Issues: 'known_issues.md'

- Appendix:
    - 'Installing Previous Releases of Newt': 'newt/install/prev_releases.md'
    - 'Installing Previous Releases of Newtmgr': 'newtmgr/prev_releases.md'
    - 'Setting Up Go to Contribute to Newt and Newtmgr Tools': 'faq/go_env.md'
    - 'Using an IDE to Develop Mynewt Applications': 'faq/ide.md'
    - 'Edit Docs': 'faq/how_to_edit_docs.md'
    - 'FAQ': 'faq/answers.md'

markdown_extensions:
    - toc:
        permalink: False
    - sane_lists
    - codehilite:
        guess_lang: False
        use_pygments: True
        noclasses: True
        pygments_style: xcode

extra:
    version: 'v1_3_0'
    versions:
        - label: 'master'
          dir: 'master'
          latest: True
        - label: 'develop'
          dir: 'develop'
          branch: 'master'
          latest: False
          separate: True
        - label: '0.9.0'
          dir: 'v0_9_0'
          latest: False
        - label: '1.0.0'
          dir: 'v1_0_0'
          latest: False
        - label: '1.1.0'
          dir: 'v1_1_0'
          latest: False
        - label: '1.2.0'
          dir: 'v1_2_0'
          latest: False
        - label: '1.3.0'
          dir: 'v1_3_0'
          latest: False
    doc_path: 'os/introduction'
    chapters:
        Chapter 1 - Get Started: 'The chapter organization is outlined below. Each chapter will include one or more tutorials for hands-on experience with the material in each chapter.'
        Chapter 2 - Get Acclimated: 'Delves deeper into the concepts crucial to the software development effort.'
        Chapter 3 - Newt Tool: 'Describes the command structure and details all the available commands to help you with your project.'
        Chapter 4 - Mynewt OS: 'Provides an overview of the features available and how to customize for your hardware and software application.'
        Chapter 5 - Modules: 'Lays out all the available modules such as HAL (Hardware Abstraction Layer), console, le system, networking stacks, and other middleware components.'
        Chapter 6 - Packaging it: 'Packages for distribution delineates the process of creating complete packages to load on your embedded device to get it up, connected, and ready for remote management.'
    events:
        event 1:
            title: '<a href="http://events.linuxfoundation.org/events/embedded-linux-conference">Embedded Linux Conference 2018</a>'
            description: 'Topics to be announced soon'
            location: "Hilton Portland Downtown, Portland, OR, USA"
            date: '12-14 March, 2018'

copyright: 'Apache Mynewt is available under Apache License, version 2.0.'

google_analytics: ['UA-72162311-1', 'auto']
