Seth Rickard e8611291d6 Add Support for Texas Instruments CC2650 (#1319)
* initial commit of cc2650 example code

* fixed the build order of cc2650 files

The ccfg struct was not being placed at the end of flash, this caused
the devices to become locked when reset after being programmed or
flashed with FlashProgrammer 2.

* Texas Instruments is not a subsidairy of Qualcomm

* added build instructions for the cc2650 platform

* moved to using 'VerifyOrExit' in cc2650 platform layer to match the rest of the codebase

* fixed build error from using the VerifyOrExit macro

* Using prebuilt gcc lib

* Moved cc26xxware to `thrid_party`

* Using directory based includes

* fixed driverlib name extension error

* refactored cc2650 radio module to use interrupts

The use of volatile structs was being ignored by gcc's size optomization
flag.

Refactored the recieve, transmit, and setup functions to use the
LAST_COMMAND_DONE and LAST_FG_COMMAND_DONE interrupts

* updated function declarations to specify void parameters

* added doxygen comments to the platform layer cc2650

* fixed spelling issue

* Migrated mbedtls to use the hardware AES engine and ROM SHA code for the cc2650 platform

* Add Minimal Thread Device to build.

* Merge pull request #10 in TIOP/openthread from feature/TIOP-10-use-the-ack-reception-functionality to master

TIOP-10  | ack reception.

Squashed commit of the following:

commit 48e7c0f72089b5e670b25d70d3e86929ec5a9a26
Author: Seth Rickard <s-rickard@ti.com>
Date:   Wed Jan 4 14:41:57 2017 -0800

    Added RX ACK command

    Added the IEEE_RX_ACK command as the next operation after a transmit for
    the CC2650 platform. This allows the Radio Core to handle all ACK
    reception instead of the Main Core

* Merge pull request #11 in TIOP/openthread from bugfix/TIOP-16-jenkins-support-v1 to master

TIOP-16 | Jenkins Support

Squashed commit of the following:

commit acb2fa06aa4316adaf077c3bf9d2e260d74b0af4
Author: Duane Ellis <d-ellis@ti.com>
Date:   Wed Jan 4 15:54:28 2017 -0800

    TIOP-16 | fix tabs and sh-bang

commit 82679dc01414155058e9794a0c1b51139706e771
Author: Duane Ellis <d-ellis@ti.com>
Date:   Wed Jan 4 15:07:48 2017 -0800

    TIOP-16 | jenkins support

* Merge pull request #12 in TIOP/openthread from feature/TIOP-9-use-csma-ca-functionality-of-the-cm0 to master

TIOP-9 | using CSMA-CA radio instruction to implement optional radio layer functionality.

Squashed commit of the following:

commit 85d7dbd7eba90d198577aa86c220688f1075f02d
Author: Seth Rickard <s-rickard@ti.com>
Date:   Thu Jan 5 16:26:01 2017 -0800

    Added Retry mechanism

commit 425d8a0bbcaaa025b4ae40c7a5926ccf78e00f21
Merge: 276eec8 d318ac8
Author: Seth Rickard <s-rickard@ti.com>
Date:   Wed Jan 4 16:10:27 2017 -0800

    Merge changes from adding rx ack command for the cc2650

commit 276eec82a6cbcfdfc45cdd9bd30a7413137059be
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 3 15:54:44 2017 -0800

    added CM0 CSMA-CA functionality

* Merge pull request #13 in TIOP/openthread from feature/TIOP-17-astyle-code-style-update to master

Squashed commit of the following:

commit cbe96d89d3326395f086de2644ee86d8010d8bfb
Author: Seth Rickard <s-rickard@ti.com>
Date:   Mon Jan 9 15:55:36 2017 -0800

    ran astyle for cc2650 platform

    added logic to cli and ncp Makefile.am's to ignore configuration files
    in cc26xxware

* updated TI licenses

* Merge pull request #15 in TIOP/openthread from feature/TIOP-19-support-energy-detect-scans to master

TIOP-19 | support energy detect scans on cc2650

Squashed commit of the following:

commit dace7ec3d3214947af9363aaf348ab45da263d8e
Merge: a8f982b d5c4746
Author: Seth Rickard <s-rickard@ti.com>
Date:   Wed Jan 11 16:08:50 2017 -0800

    Merge changes from master

commit a8f982bbbe31a2fba1a514b29dde5947da75e19d
Author: Seth Rickard <s-rickard@ti.com>
Date:   Wed Jan 11 12:56:58 2017 -0800

    added ieee energy detect command

* Merge pull request #14 in TIOP/openthread from bugfix/TIOP-18-fix-source-matching-structure to master

TIOP-18 | Fixed issue with the cc2650 RX command's source match structure. This was used in the autopend functionality

Squashed commit of the following:

commit 081b1e37a7b2c0d64260aa904819a9a2b84b11d6
Merge: bea5ecd d5c4746
Author: Seth Rickard <s-rickard@ti.com>
Date:   Wed Jan 11 15:57:28 2017 -0800

    Merge updates from master

commit bea5ecd727a5c01fd5c735c37d92496d0e4e2454
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 10 18:03:11 2017 -0800

    structure cleanup and implementation of maxRssi

commit fadc29dd178d087fe0d567dcdd22a658d5f3b2a0
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 10 16:37:33 2017 -0800

    fixed structure definitions

* Merge pull request #16 in TIOP/openthread from feature/TIOP-21-match-function-and-variable-naming to master

TIOP-21 | match function and variable naming conventions of OpenThread

Squashed commit of the following:

commit 743206f20a63c225fee12d4d9493600d9c2d89ad
Author: Seth Rickard <s-rickard@ti.com>
Date:   Thu Jan 26 15:25:37 2017 -0800

    added static keyword to static vars

    fixed typo
    changed variables `interrupts_disabled` to `interruptsWereDisabled` to
    increase clarity

commit ff4562352f01a2f199351edb11ece713ba07df22
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 24 18:13:38 2017 -0800

    fixed interrupts_disable early return error

commit 96170fda2c8179425ed57d5135b8ce2ad78770d1
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 24 18:08:24 2017 -0800

    ran astyle

commit 48ee9923804a898a2a0847ee5504190a183ccb4e
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 24 17:57:36 2017 -0800

    removed enabling state

    refactored the functions to syncronously wait for the RAT Start and
    Radio Setup commands to return.

commit 8c709bd912c33cb20f0e8ebead37251c4cc542c8
Author: Seth Rickard <s-rickard@ti.com>
Date:   Tue Jan 24 17:20:02 2017 -0800

    rolled state global booleans into cc2650 state enum

commit 5332494a233eb518399df459791d184533664d3e
Author: Seth Rickard <s-rickard@ti.com>
Date:   Mon Jan 23 18:12:58 2017 -0800

    moved #define to enum

commit cc2dbf184a0df84b930ca2cfc3a771f5eab06eae
Author: Seth Rickard <s-rickard@ti.com>
Date:   Mon Jan 23 16:39:17 2017 -0800

    changed function names and static variables to Hungarian Notation

* Updated license information for cc2650

Chaned author of cc2650 platform adaptation layer to `The OpenThread
Authors`

Moved cc26xxware to ti third_party subfolder and added README.md for
cc26xxware

* Reverted the travis script changes

Removed support for jenkins running travis scripts

* updated licenses and build flow

* updated code style

* removed cc26xxware doccumentation

* added constant assignment structures for radio commands

changed #if styling to match ot conventions

* added cc2650 target in travis scripts

* disabled gcc4.9 build for cc2650

* updated readme to reflect recommended toolchain
2017-02-15 18:16:11 -08:00
2016-05-11 18:25:35 -07:00

OpenThread
Build Status Build Status Coverage Status


OpenThread is an open-source implementation of the Thread networking protocol. Nest has released OpenThread to make the technology used in Nest products more broadly available to developers to accelerate the development of products for the connected home.

The Thread specification defines an IPv6-based reliable, secure and low-power wireless device-to-device communication protocol for home applications. More information about Thread can be found on threadgroup.org.

Features

  • Highly portable: OS and platform agnostic with a radio abstraction layer
  • Implements the End Device, Router, Leader and Border Router roles
  • Small memory footprint

OpenThread implements all Thread networking layers including IPv6, 6LoWPAN, IEEE 802.15.4 with MAC security, Mesh Link Establishment, and Mesh Routing.

Who is supporting OpenThread

OpenThread Contributor Logos

Nest, along with ARM, Atmel, a subsidiary of Microchip Technology, Dialog Semiconductor, Microsoft Corporation, Nordic Semiconductor, Qualcomm Technologies, Inc. (a subsidiary of Qualcomm Incorporated), and Texas Instruments Incorporated are contributing to the ongoing development of OpenThread.

Getting started

The easiest way to get started is to run the CLI example in /examples/apps/cli. See the CLI example README for more details.

What's included

In the repo you'll find the following directories and files:

File/Folder Provides
doc Code and protocol docs
etc Configuration files for other build systems (e.g. Visual Studio)
examples Sample applications and platforms demonstrating OpenThread
include Public API header files
src Core implementation of the Thread standard and related add-ons
tests Unit and Thread conformance tests
third_party Third-party code used by OpenThread
tools Helpful utilities related to the OpenThread project

Documentation

The Doxygen reference docs are hosted online and generated as part of the build.

Getting help

Submit bugs and feature requests to issue tracker. Usage questions? Post your questions to Stack Overflow using the openthread tag. We also use Google Groups for discussion and announcements:

  • openthread-announce - subscribe for release notes and new updates on OpenThread
  • openthread-users - the best place for users to discuss OpenThread and interact with the OpenThread team
  • openthread-devel - team members discuss the on-going development of OpenThread

Versioning

OpenThread follows the Semantic Versioning guidelines for release cycle transparency and to maintain backwards compatibility. OpenThread's versioning is independent of the Thread protocol specification version but will clearly indicate which version of the specification it currently supports.

Contributing

See the CONTRIBUTING.md file for more information.

License

OpenThread is released under the BSD 3-Clause license. See the LICENSE file for more information.

Please only use the OpenThread name and marks when accurately referencing this software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise affiliated with Nest, Google, or The Thread Group.

S
Description
Languages
C++ 66.1%
Python 23.3%
C 9%
Shell 0.8%
CMake 0.7%