This commit enables building OpenThread deb packages:
* openthread-simulation: simulation of OpenThread
* openthread-daemon: daemon of OpenThread Host
* openthread-standalone: standalone binaries of OpenThread Host
platform-utils has a dependency on the core ot library, which was
causing the build to fail. I have resolved this by making
platform-utils an 'object library', which means the object files
will always be used by the linker, preventing the 'smart linker'
errors that occur with ld and cyclic dependencies.
I also provided a static (.a) implementation of the library in case
any non-cmake project wanted to consume the results (at which point
that project can deal with the dependency as it wishes).
So now it is up to the 'platform layer' to include the 'platform utils'
objects inside its own library if it requires them. I have implemented
this for the current cmake example platforms.
Pseudo resets allow for `otPlatReset()` to reset the OpenThread state
without resetting the chip. This is important if the SoC is presenting
itself as a USB device.
The build option `OPENTHREAD_PLATFORM_USE_PSEUDO_RESET` can be used to
force this feature to be enabled or disabled by setting it to `1` or
`0` accordingly. Otherwise it will be set to a platform-specified
default value.
The existing platform.h is really a part of the examples and not a part of
OpenThread core. This commit moves the platform.h out of the public API
and into the examples directory.
* New Platform Startup
* Flash memory handling improved
* Ramdom generator improved
* Faster platform reboot
* UART based on interrupts intruduced
* ARM core and linker related files moved to "third_party" folder
* Radio Sleep Fixed
* TLS config fixed
* Software FIFO for UART added
* Add support for cc2652
Updated CC26XXware to latest release.
Moved CC26XXware to match the SimpleLink cc26x2 SDK directory structure.
Added CC2652 Platform support
Previously, a global 'map.map' filename was used. However, when
building FTD and MTD versions of a given application, the 'map.map'
files would overwrite each other. This commit gives different filenames
to each .map file for a given binary.
This commit new configuration option `enable-multiple-instances` and
its corresponding option `OPENTHREAD_ENABLE_MULTIPLE_INSTANCES`. When
enabled OpenThread supports handling of multiple instances. By default
this is disabled.
This commit also adds two optimizations for single instance case to
simplify the code and also help reduce memory/RAM usage:
(1) OpenThread objects/classes typically keep a reference to a higher
level object (e.g., many classes keep track of owning `ThreadNetif`)
to be able to access other objects/methods within OpenThread class
hierarchy. In single instance mode, the reference member variables are
removed and instead global functions are used to access the singleton
objects from one class to the other. To implement this, a group of
`<Object>Locator` classes are defined (e.g., `ThreadNetifLocator`,
etc.) which are then used as base class of other OpenThread classes.
(2) OpenThread objects which provide a callback/handler (e.g.,
`Timer`, `Tasklet`, etc.) have `void *mContext` member variable which
is used to keep track of the owner of the object. In single instance
mode the `mConext` member variables are removed since the owner is
expected to be a singleton and can be uniquely determined from the
callback function.
To implement this, two changes are made: First the handler methods are
modified to provide a reference to the object (e.g., `Timer` handler
will provide a `Timer &aTimer` as a parameter of its handler
callback). Second, a new base class `Context` is introduced which
hides the implementation providing an arbitrary context information. A
new static method `GetOwner(aContext)` is added to classes which own a
callback providing objects. This method help convert a `Context` to
the reference of the owner class object.
* Add dhcp6 client define, and update openthred-config include scheme
* #1663 - update include to use quotes instead of angle brackets
* #1663 - update file to use underscore instead of dash
* #1663 - remove extra space
* #1663 - update location of new header file and update files to point to it
* #1663 - update location of new header file and update files to point to it
* #1663 update makefile.am to include new header
* update for make pretty changes
* more pretty fixes
* cleanup, and remove automatic mbedtls change
* remove debugging change
* #1663 - Remove extra space, and change include to use angle brackets instead of quotes.
* rename the enable defines file to openthred_config
* #1663 clean up for code review
* #1663 - clean up last nits
* #1663 - missed merge conflicts - file openthread-config.h -> openthread/openthread_config.h
* Add embARC EMSK BSP in third_party folder.
* Add synopsys in Makefile.am for embARC BSP
* Add platform implementation on ARC EMSK
* Add EMSK in Makefile.am and Makefile-emsk
* Add EMSK support in apps
* Modify configure.ac to add ARC EMSK.