- No longer queue 2x 32-byte buffers for UART receive. Upon
investigation, the RAIL library switches these buffers in software
(within the same ISR context as `receiveDone`), so it seems to be
pointless from a performance perspective in queuing multiple
buffers. Instead, now work with 64-byte buffers.
- Refactored `updateReceiveProgress` so that extra variable
`mLastCount` isn't required.
- Extensive testing at higher baud rates revealed race conditions and
some issues with detecting buffer full conditions.
- Added comments to clarify the logic
- Removed asserts after returning from RAIL library
functions. Contrary to my previous arguments, if the behaviour of
the RAIL library functions changes in the future (with regards to
the errors it returns), then somebody would have to remember to
check these asserts were still appropriate.
* [examples] add software implementation of source match table
* [efr32] modify radio driver to use generic implementation of source match table
* [efr32] configure soft source match table PAN ID
bInterfaceProtocol descriptor previously indicated that AT V.250 commands
were supported by the device. This could cause issues with applications
managing modems.
* Define parameter for RSSI offset.
This defines the RSSI offset as an overridable parameter in the CC2538
configuration for users that have installed a CC2592 on their board but
have hard-wired the HGM pin either to `VDD` or `GND`.
* Calibrate RSSI according to HGM state.
I had actually misread the datasheet a little bit, having gotten
sensitivity and RSSI offset confused. The values I needed for the
sensitivity were actually in the table *above* where I got the original
figures here from.
This puts the *correct* figures in place, and also defines a function
that returns the RSSI offset based on the state of the HGM pin (or
returns a static value if we omit CC2592 support or disable HGM
control).
* Expose RSSI offset setting in Makefile
* Document RSSI offset parameter
* refactor for energy scan API
* rename enum, init status in init func, tidy up and fix issue in GetRssi
* add cast and fix start energy scan error return
* [cc2538] Define registers for control of CC2592.
In order to set up the signals needed to drive the CC2592 front-end, we
need to expose a few registers in the radio module that route internal
module signals to pins on Port C.
TI also recommend hooking the HGM pin of the CC2592 to a GPIO pin so
that the high-gain mode can be software-controlled. It can be connected
to any GPIO pin, but they call out PD2 specifically for this, so we need
to configure GPIO port C & D. Since we're here, we'll add B as well.
Some macros of convenience are also added for accessing the Nth element
in an array of 32-bit registers, as well as computing the bit mask of
the Nth GPIO pin.
* [cc2538] Define configuration settings for CC2592.
By default, we disable support for the CC2592 as we do not wish to break
existing OpenThread instances. The configuration parameters allow
customisation of the locations for the `PA_EN`, `LNA_EN` and `HGM`
signals (within the constraints of the CC2538) for cases where people
have moved the signals around on custom boards.
The defaults work with designs derived off the CC2538-CC2592 EM
reference design.
* [cc2538] Define control interface for HGM pin.
Since the `HGM` signal is under software control, we need to be able to
allow the software to turn it on or off as required. This exposes two
functions, one of which queries the current state (by looking at the
GPIO register bit-mask), and the other provides a means to change the
state.
* [cc2538] Implement control and calibration of the CC2592.
This implements the control functions defined earlier and adds the
necessary logic for initialising the CC2592.
The transmit and receive power levels are also calibrated.
* [cc2538] Define CC2592 options in Makefile.
This allows building of a CC2538-CC2592 EM image by specifying
`CC2592=1` on the command line.
This commit adds `OPENTHREAD_CONFIG_ENABLE_SLAAC` as a build
configuration option to enable/disable SLAAC support within
OpenThread. This feature is disabled by default. This commit also
adds `SLAAC` to `common-switches` list to allow builds to enable
this feature easily.
Add DISABLE_TRANSPORTS switch which disables build of all transports and examples using them.
Disable compilation of USB and UART transports if NCP_SPI switch is set. This also disables
the build of CLI example.
This commit adds code to ensure `SETTINGS_CONFIG_PAGE_NUM` is at
least two. This helps simplify the code and also address
Coverity warnings for unreachable code.
Currently SETTINGS_CONFIG_PAGE_NAME is defined indirectly by addresses of
__d_nv_mem_start and __d_nv_mem_end. But such definition doesn't allow to
perform compile time sanity check. Define this macro with const value 16.
Signed-off-by: Oleksandr Grytsov <al1img@gmail.com>