Commit Graph

1792 Commits (eb2457f59d688cbfe99526d2343d37029be20a60)

Author SHA1 Message Date
paul-szczepanek-arm bc3ff56504 partial security pass 2019-02-27 21:46:08 +00:00
paul-szczepanek-arm a1815e31f0 correct dependencies for central and peripheral 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm c3a72073be cordio extended peripheral pass 2019-02-27 21:39:07 +00:00
paul-szczepanek-arm e950da11f2 extended doesn't depends on phy 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm ec6783ed77 cordio peripheral role pass 2019-02-27 21:39:06 +00:00
paul-szczepanek-arm 45eca7c373 cordio observer role pass 2019-02-27 21:36:26 +00:00
paul-szczepanek-arm eb16fb6053 broadcaster role cordio pass 2019-02-27 21:34:00 +00:00
paul-szczepanek-arm c198603c63 ble ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm e44c3edede fix gap ifdefs 2019-02-27 21:17:15 +00:00
paul-szczepanek-arm 909b78fc14 complete gap feature ifdef 2019-02-27 21:15:54 +00:00
paul-szczepanek-arm 630b2fe792 more gap ifdefs 2019-02-27 21:08:15 +00:00
paul-szczepanek-arm 1d5b7d4056 ifdef source files based on features 2019-02-27 21:00:11 +00:00
paul-szczepanek-arm c8d8c4e159 merge failure fix 2019-02-27 21:00:10 +00:00
paul-szczepanek-arm 30ad32a465 ifdef out security features 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm 9e710d4309 git review changes 2019-02-27 20:59:35 +00:00
paul-szczepanek-arm cb3d79bf9b update descriptions 2019-02-27 20:57:10 +00:00
paul-szczepanek-arm 7974726659 fixed conf file (tabs and order) 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 208eb200f1 gatt client signing 2019-02-27 20:57:09 +00:00
paul-szczepanek-arm 3e03c11832 guard class fields with ifs 2019-02-27 20:55:58 +00:00
paul-szczepanek-arm 33e8826361 whitelist feature 2019-02-27 19:46:43 +00:00
paul-szczepanek-arm bc69e15638 revert accidental changes 2019-02-27 19:46:42 +00:00
paul-szczepanek-arm dc3aba181e fix BLE_CONNECTABLE_FEATURE macro 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm 5a97706aab added #if guards to cordio ble 2019-02-27 19:46:12 +00:00
paul-szczepanek-arm bed567825f connectable is a feature not role 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm b60eaf14a2 require macros to be defined 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 26cc72f191 add more feature toggles in cordio init 2019-02-27 19:31:47 +00:00
paul-szczepanek-arm 9a22db0e96 implied features 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm ab4e47661d move config to ble feature 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm 212e9477d3 require at least one role observer or broadcaster 2019-02-27 19:31:46 +00:00
paul-szczepanek-arm aefab05e5a add all the features and rename existing non-roles to features 2019-02-27 19:31:46 +00:00
Steve Cartmell 8e36ed4b1e feat(ble): Guard out the CordioBLE initialisation code 2019-02-27 19:29:51 +00:00
Steve Cartmell 72d28d920a feat(ble): Guard out Observer code when role is disabled 2019-02-27 19:29:51 +00:00
Steve Cartmell 5d73a03a64 feat(ble): Guard out SecurityManager code when role is disabled 2019-02-27 19:24:40 +00:00
Steve Cartmell 73f7ffb124 feat(ble): Guard out GattServer code when role is disabled 2019-02-27 19:24:39 +00:00
Steve Cartmell 6e301ce148 feat(ble): Guard out GattClient code when role is disabled 2019-02-27 19:23:31 +00:00
Steve Cartmell 9806f91ecf feat(ble): Add preprocessor check to determine enabled roles are valid
A number of BLE roles depend on each other, checking within the target
configuration file for a valid configuration is infeasible. Move the
validation to the preprocessor and fail to compile if some required
roles are not enabled.
2019-02-27 19:00:08 +00:00
Vincent Coubard 73f29e7733 BLE - Fix qualification of abort and terminate. 2019-02-26 13:18:18 +00:00
Vincent Coubard 9ab284940a BLE - Devirtualization of the NRF52 softdevice port. 2019-02-26 13:18:18 +00:00
Vincent Coubard ddbb177e33 BLE - Devirtualization of the NRF51 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard b86049d1e7 BLE - Devirtualization of the legacy NRF51822 port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 0323d91f04 BLE - Devirtualization of the Maxim port . 2019-02-26 13:18:17 +00:00
Vincent Coubard 536443b1f8 BLE - Devirtualization of the Cordio port. 2019-02-26 13:18:17 +00:00
Vincent Coubard 04d26f7ab5 BLE - Devirtualize ::ble::generic::GenericSecurityManager
Two parameters are expected by the template:
- TPalSecurityManager a template class of the security manager of the form TPalSecurityManager<EventHandler>. The GenericSecurityManager is the event handler.
- SigningMonitor a template in the form SigningMonitor<Handler>.
2019-02-26 13:18:17 +00:00
Vincent Coubard b135074821 BLE - Devirtualize ble::generic::GattClient
GenericGattClient is parametized by two types:
- The template of the PalGattClient
- The SigningMonitorEventHandler

Note that the PalGattClient template must be of the form PalGattClient<EventHandler>. The event handler being the GenericGattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 39e938bf8e BLE - Devirtualize ble::generic::GenericGap
Expected types are similar to the type expected by the constructor:
- PalGap
- PalSecurityManager
- ConnectionEventMonitorEventHandler

Note that for the PalGap we expect a **template** of the form PalGap<EventHandler>
2019-02-26 13:18:17 +00:00
Vincent Coubard e70fb27d55 BLE - cleanup includes. 2019-02-26 13:18:17 +00:00
Vincent Coubard fb39848481 BLE - Cleanup deprecation implementation bits in BLE.cpp 2019-02-26 13:18:17 +00:00
Vincent Coubard 7796e733ad BLE - Devirtualize ::SecurityManager
The interface now lives in ::ble::interface::SecurityManager. The implementation type is expectected to exported as ble ::ble::impl::SecurityManager by the implementation.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6d2592a137 BLE - Devirtualize ::GattServer.
The interface is defined in ::ble::interface::GattServer and an implementation must export the implementation type ::ble::impl::GattServer.
2019-02-26 13:18:17 +00:00
Vincent Coubard e56fd682a1 BLE - Devirtualize ::GattClient
Interface definition now lives in ble::interface::GattClient. An implementation must export the implementation type in ::ble::impl::GattClient.
2019-02-26 13:18:17 +00:00
Vincent Coubard 43e87fb04d BLE - Devirtualize ::ble::Gap
The interface definition now lives in ::ble::interface::Gap.
The implementation must export the implementation types as ::ble::impl::Gap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 1ad726322f BLE - Devirtualization of ::Gap
The interface definition now lives in ::ble::interface::LegacyGap. Implementation must export the implementation type as ble::impl::LegacyGap.
2019-02-26 13:18:17 +00:00
Vincent Coubard 2d007eee42 BLE - Devirtualize pal::SigningEventMonitor
The event handler has been extracted out of SigningEventMonitor declaration and SigningEventMonitor instantion requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard 50de4c8a44 BLE - Devirtualize pal::SecurityManager
The event handler has been extracted out of SecurityManager declaration and instantion of the interface requires the implementation and event handler type.
2019-02-26 13:18:17 +00:00
Vincent Coubard e1371f8149 BLE - Devirtualize pal::GattClient
The event handler has been taken out of GattClient declaration and an instantiation requires the actual implementation and the type that handle events.
2019-02-26 13:18:17 +00:00
Vincent Coubard 0749100676 BLE - Devirtualize pal::Gap
The event handler has been taken out of Gap declaration and the instantiation must provide an implementation and the type that plays the event handler role.
2019-02-26 13:18:17 +00:00
Vincent Coubard 6514bbd1f0 BLE - Devirtualize pal::ConnectionEventMonitor
The event handler has been extracted out of the monitor declaration.
2019-02-26 13:18:17 +00:00
Vincent Coubard 71b8d8a2f3 BLE - devirtualize pal::AttClientToGattClientAdapter 2019-02-26 13:18:17 +00:00
Vincent Coubard 333a31507b BLE - devirtualize pal::AttClient 2019-02-26 13:18:17 +00:00
Vincent Coubard 7e78433cec BLE - replace some usages of Gap::Handle_t by ble::connection_handle_t 2019-02-26 13:18:17 +00:00
Vincent Coubard bc098d0272 BLE - add static interface helper. 2019-02-26 13:18:17 +00:00
Desmond Chen 0143229bd0 Fix Cordio Gatts descriptor configuring write permission 2019-02-26 11:30:57 +08:00
Cruz Monrreal d0881ad259
Merge pull request #9813 from paul-szczepanek-arm/cordio-cfg
BLE: Cordio build time configuration through mbed_lib.json
2019-02-25 17:28:56 -06:00
Cruz Monrreal 8ec8674e4e
Merge pull request #9833 from donatieng/remove_beetle
Remove Arm Beetle target for Mbed OS 5.12
2019-02-25 17:27:22 -06:00
paul-szczepanek-arm f62217b3dd typos 2019-02-25 15:33:52 +00:00
paul-szczepanek-arm a7297186b5 fixed names 2019-02-25 15:30:55 +00:00
paul-szczepanek-arm e75c534445 stray comma 2019-02-25 15:23:35 +00:00
Donatien Garnier 176e5779ce Remove Arm Beetle target
Deprecation in preparation for Mbed OS 5.12 and move to IAR8 and ARMC6
2019-02-25 12:09:03 +00:00
paul-szczepanek-arm 6842c8718b revert macros 2019-02-25 09:52:21 +00:00
paul-szczepanek-arm 6a2b6b891a use existing macro names 2019-02-25 09:49:16 +00:00
Lei Zhang a47b365776 PSOC6: send HCI reset after patch RAM download
After the patch RAM download is completed, a HCI reset should be sent in order to initialize the registers. Some of the initialization won't be called if the HCI reset is not sent after firmware download.
2019-02-22 23:43:52 -08:00
paul-szczepanek-arm 4b0296a6e1 prepared writes options 2019-02-22 13:52:21 +00:00
paul-szczepanek-arm 4470f64581 mention config in readme 2019-02-22 11:33:23 +00:00
paul-szczepanek-arm 86546440d7 put cordio cfg in mbed_lib.json 2019-02-22 11:28:28 +00:00
Volodymyr Medvid b0a33273ff Correctly include EventQueue.h
There are two EventQueue.h in mbed-os codebase:
events/EventQueue.h
features/FEATURE_BLE/ble/pal/EventQueue.h

By accident, `mbed compile` generates includes.txt with the correct
order of include search paths. This is not the case for the CMake
exporter: targets with FEATURE_BLE enables fail to compile with errors:

mbed-os/features/cellular/framework/AT/ATHandler.h:99:60: error:
'events' has not been declared

Update all places to always include either "events/EventQueue.h"
or "ble/pal/EventQueue.h": to always find the correct header.
2019-02-21 17:59:05 +02:00
Cruz Monrreal b1d0d9e95c
Merge pull request #9776 from ConradBraam/adv_builder
adv builder helper now returns an object
2019-02-20 12:04:51 -06:00
Conrad Braam 57033ee91a adv builder helper now returns an object 2019-02-20 13:54:38 +00:00
Martin Kojtal 2d30d0ff99
Merge pull request #9762 from vmedcy/psoc6-target-updates
PSOC6: update the psoc6pdl and HAL to the latest version
2019-02-20 11:23:54 +01:00
paul-szczepanek-arm db4aecb275 fixed initialisation order 2019-02-19 17:26:43 +00:00
Volodymyr Medvid cefc7452c9 PSOC6: do not reconfigure BT GPIO pins in CYW43XXX HCIDriver 2019-02-19 17:59:04 +02:00
Desmond Chen 79e8bf4bc9 BLE:Cordio: ATTS setting for write cback should use bitwise or 2019-02-19 14:19:44 +08:00
paul-szczepanek-arm d801ed340e removed redundant qualifier tripping up GCC 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm cdd5c9f3b0 fix nrf52 mtu 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 193092f6d9 added spdx licence ident 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm f52b20c169 move cpp to sources 2019-02-14 12:34:35 +00:00
paul-szczepanek-arm 1cea53b6a7 use grandfathered convention for class members names and initialise them 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 3808db90b2 require pal event handler to be complete 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm de60b2a56a remove unused converter 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm 03b747a6f6 Get the pal event handler from pal gattclient 2019-02-14 12:34:34 +00:00
paul-szczepanek-arm b628285254 route mtu changed events to server and client instead of gap 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm a3f635eb88 fix type name 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm c10fc2eb8e add API to trigger MTU negotiation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm 02d5391cd0 fix possible truncation 2019-02-14 12:34:33 +00:00
paul-szczepanek-arm b6df6d54a1 change event names 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 356ec39d02 fix style 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 21ad886e9e handle mtu and data len events for softdevice 2019-02-14 12:34:32 +00:00
paul-szczepanek-arm 06a2a403e9 fix typos 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm 108d6908be route ble events to gap 2019-02-14 12:34:31 +00:00
paul-szczepanek-arm c452d8ff0e add mtu events 2019-02-14 12:34:31 +00:00
Naveen Kaje 0563276466 btle: fix build warning about unused clockConfiguration
Fix the following build warning seen with both GCC and ARM_CC
[Warning] btle.cpp@115,0:  #177-D: variable "clockConfiguration"  was declared but never referenced
2019-02-13 10:42:48 -06:00
Cruz Monrreal 58cba25799
Merge pull request #9372 from pan-/fix-cryptotoolbox
BLE - Nordic: Release crypto cell when not in use.
2019-02-11 18:45:17 -06:00
Volodymyr Medvid a16811532b PSoC6: add implementation of BLE HCI driver for CYW4343W/CYW43012
Add Cypress HCI driver implementation in TARGET_Cypress directory.

Update targets.json to enable CORDIO stack for Cypress PSoC 6 boards
with CYW43XXX radios with compatible HCI driver implementation:
CYW4343W and CYW43012.
2019-02-07 18:24:56 +02:00
Volodymyr Medvid a304c2216a CYW4343X: move HCI driver to TARGET_STM
TARGET_CYW4343X Bluetooth HCI driver is specific to STM32 targets
derived from USI_WM_BN_BM_22. Move the driver implementation to
TARGET_STM folder to not interfere with Cypress implementation at
TARGET_Cypress/TARGET_CYW43XXX/HCIDriver.cpp that is enabled for
PSoC 6 targets which also include the CYW4343X label.
2019-02-07 18:24:55 +02:00
Senthil Ramakrishnan 2030d03590 Modified fixes with review comments 2019-02-01 17:49:49 -06:00
Senthil Ramakrishnan ea30ed7a36 Fix for ARMc6 compiler errors 2019-02-01 17:46:50 -06:00
paul-szczepanek-arm d9c919b7e1 review fixes 2019-01-30 12:19:04 +00:00
paul-szczepanek-arm e1a8fb5a7a check scanning status first 2019-01-30 11:45:26 +00:00
paul-szczepanek-arm 7f888f86bf scan timeout for 4.2 controllers using new API 2019-01-30 11:37:17 +00:00
Cruz Monrreal 66cda8a8fe
Merge pull request #9499 from bridadan/remove_yotta_modules
Remove unused yotta module metadata
2019-01-28 10:37:30 -06:00
Cruz Monrreal b49d949b50
Merge pull request #9393 from pan-/fix-safe-enum-type-safety
BLE: Fix SafeEnum type safety
2019-01-28 10:31:52 -06:00
Brian Daniels ee5281abef Remove unused yotta module metadata 2019-01-24 15:30:20 -06:00
Martin Kojtal 4019efb21d
Merge pull request #9399 from paul-szczepanek-arm/fix-null-check
BLE: fix missing null checks on Gap event handler
2019-01-21 13:43:16 +01:00
Martin Kojtal ad5bcfc1de
Merge pull request #9427 from paul-szczepanek-arm/fix-truncation
BLE: fix possible truncation
2019-01-21 13:42:07 +01:00
paul-szczepanek-arm 42e4290160 error when there is no handler 2019-01-18 14:55:38 +00:00
paul-szczepanek-arm 001919e81a fix truncation 2019-01-18 12:10:30 +00:00
Cruz Monrreal fd2a96e7ad
Merge pull request #9339 from costanic/fix_oob
Fix Out-Of-Band (OOB) data generation for BLE OOB pairing
2019-01-17 21:51:54 -06:00
Cruz Monrreal 3b43a2d976
Merge pull request #9333 from offirko/offir_doxygen
Minor Doxygen fixes for BufferedBlockDevice and iBeacon
2019-01-17 21:51:14 -06:00
Martin Kojtal 284781a565
Merge pull request #9096 from pan-/fix-enforce-size-limits
BLE: Enforce advertising data payload limits
2019-01-17 12:41:57 +01:00
Cruz Monrreal d0665c8458
Merge pull request #9365 from lrusinowicz/cordio_ble_fix
Fix for asserion failing in BLE::callDispatcher with gcc debug profile.
2019-01-16 22:03:16 -06:00
Vincent Coubard 79bd3ea982 BLE: Fix relationnal operator of SafeEnum
The relationnal operators were targeting the base class which defines an implicit constructor to an integral value. This is wrong as it allows SafeEnum instances to be compared against integers.

The fix is simple: define relationnal operators for the derived class. The derived class is known as it is passed as a template parameter of the base class.

For extra safety the SafeEnum constructor is now explicit and protected.
2019-01-16 16:06:21 +00:00
Vincent Coubard f8ef143ed7 BLE: Fix comparison expression between an integer and a SafeEnum 2019-01-16 16:06:21 +00:00
paul-szczepanek-arm fa36ed02ee add missing null checks 2019-01-16 14:56:54 +00:00
Vincent Coubard a10a10a3d7 BLE - Nordic: Release crypto cell when not in use.
Previously, the CryptoToolbox was allocated once as part of the security manager.
This was inneficient memory wise as it is only use to prepare key at initialization
and when we need to compute shared keys.
This was also inneficient power consumption wise as the Crypto cell was kept enabled even
when it wasn't used.

This fix creates a CryptoToolbox whenever it is needed and release it once it has fulfilled its
purpose. Note that CryptoToolbox allocation happens on the heap as mbed tls data structure are huge
and there's an high risk of crushing the stack.
2019-01-14 16:56:07 +00:00
Leszek Rusinowicz f294447c25 Moved nextTimeout variable out of critical section in BLE::callDispatcher.
Initialization of Timeout object contains critical section inside constructor. Initialization inside critical section caused assertion failing under "debug" profile.
2019-01-14 11:13:28 +01:00
Nic Costa 7795e30bce Remove own_oob and peer_oob flags from Nordic PAL
the own_oob and peer_oob flags were not being set to 1 even though
an OOB pairing request was in progress, which therefore prevented
OOB data from being passed down to the softdevice during a OOB
pairing operation, thus causing the OOB pairing process to fail.
2019-01-11 08:54:30 -06:00
Nic Costa 24d793ce5d Fix parameters provided to oob generator function
The function in the Nordic SDK for generating OOB data,
sd_ble_gap_lesc_oob_data_get, requires local LE Secure Connection
P256 Public Keys in {X,Y} format, but was being supplied with
the local secret key.  This caused the generated OOB data to
fail to correspond to the Public Keys, which caused a mismatch
during the OOB pairing phase of the OOB confirmation value by
a remote peer when attempting to verify the OOB data against
the Public Keys, ultimately causing the OOB pairing request to
fail with a Confirm Value Failed (0x04) error.
2019-01-11 08:54:30 -06:00
Nic Costa 55507eaf75 Fix race condition when generating OOB data
The GenericSecurityManager tracks the most recent OOB data generated
by the PAL and the PAL function to generate OOB data is expected to
be asynchronous such that the OOB data is returned via a callback.

There was a race condition on the security manager's oob data variable
because it was cleared (set to all zeros) after calling PAL generate.
The expectation was that the clear operation would occur before the
callback executed, but this is proving to not be the case.  Instead,
the callback is being executed as if it were syncronous with PAL
generate, then PAL generate returns and the oob data is cleared,
thereby losing the generated oob data that was set in the callback.

To fix the issue, clear the oob data variables before calling into
the PAL.
2019-01-11 08:54:30 -06:00
Guy Wild 9b3adc2795 Update iBeacon.h
Technical author review
2019-01-10 17:04:23 +02:00
Jarno Lamsa d9e24b25e4 Update and cleanup BLE.h doxygen 2019-01-10 16:12:56 +02:00
offirko b21576c8cf Review updates 2019-01-10 15:42:28 +02:00
offirko 61926092a2 Minor Doxygen fixes for BufferedBlockDevice and iBeacon 2019-01-10 14:35:09 +02:00
Cruz Monrreal 54f759176b
Merge pull request #9210 from AnttiKauppila/mbed_h_fix
mbed.h includes removed
2019-01-04 10:27:30 -06:00
Donatien Garnier 9dae672ac0 Fixes for features/FEATURE_BLE/ble/services/EddystoneConfigService.h 2019-01-04 09:54:14 +00:00
Donatien Garnier bc2bd89f83 Fixes for features/FEATURE_BLE/ble/services/EddystoneService.h 2019-01-04 09:50:24 +00:00
Martin Kojtal 0f7381d436
Merge pull request #9058 from pan-/fix-scan-timeout
BLE: suppress scan timeout if we disabled scanning
2019-01-04 08:41:36 +00:00
paul-szczepanek-arm 3be792a3b3 simplify for statement 2019-01-03 12:24:33 +00:00
Desmond Chen f281e06e46 BLE: NRF52 returns tx/rx phy on phy update callback 2019-01-03 10:11:14 +08:00
paul-szczepanek-arm dd1d473375 future proof return size 2019-01-02 15:42:14 +00:00
paul-szczepanek-arm a66ffa34be add constructor suggested by Vincent 2019-01-02 15:34:50 +00:00
paul-szczepanek-arm 8b39071cd8 make function name longer 2019-01-02 14:29:30 +00:00
Antti Kauppila 02b0f79e15 mbed.h includes removed 2018-12-28 14:36:10 +02:00
Desmond Chen 30ca813f07 Fix BLE long write execution failure 2018-12-19 08:08:16 -08:00
paul-szczepanek-arm 67db321500 check illegal adv params combimnation 2018-12-13 17:52:18 +00:00
paul-szczepanek-arm ff0a2a907e check connectible sizes 2018-12-13 17:52:00 +00:00
paul-szczepanek-arm c5bad804e2 add asserts for illegal compinations of adv params 2018-12-13 17:51:45 +00:00
paul-szczepanek-arm 7dd90e1810 Docuement active set length and add informative call for querying the limit 2018-12-13 17:51:10 +00:00
paul-szczepanek-arm e1cf516100 fix max payload and hci length values 2018-12-13 17:50:53 +00:00
paul-szczepanek-arm 50d1818d72 call advertising end even if stopped by us 2018-12-13 17:33:36 +00:00
Naveen Kaje 448c4d5d89 BLE: Update toolchain.h with mbed_toolchain.h
Fixes the following warning

[Warning] toolchain.h@24,0: #1215-D: #warning directive:
toolchain.h has been replaced by mbed_toolchain.h,
please update to mbed_toolchain.h [since mbed-os-5.3]
2018-12-10 13:57:52 -06:00
Cruz Monrreal 23022dd0f9
Merge pull request #8998 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-10 10:36:05 -06:00
paul-szczepanek-arm 13a10f3efa suppress scan timeout if we disabled scanning 2018-12-10 16:31:34 +00:00
paul-szczepanek-arm a545da7790 remove noreturn error function to avoid compilation issues 2018-12-10 13:54:09 +00:00
paul-szczepanek-arm c998287170 fixed ARM compilation problem caused by noreturn 2018-12-10 13:47:14 +00:00
paul-szczepanek-arm 97df8f5ed9 working ARM lib 2018-12-10 13:46:26 +00:00
paul-szczepanek-arm 642b2dfb57 working libs for GCC and IAR 2018-12-10 09:12:03 +00:00
Donatien Garnier 6f94339aed Replace ARMCC libs 2018-12-08 08:43:20 +00:00
Donatien Garnier db6b09a70f ARMCC only likes armar 2018-12-07 23:45:26 +00:00
Donatien Garnier 3f00595e62 Remove use of GPIOs (LEDs and diag pins) from Cordio LL for Nordic 2018-12-07 22:46:27 +00:00
Donatien Garnier 674ff288d6 Remove duplicate symbols in libcordio_stack.a 2018-12-07 22:04:19 +00:00
paul-szczepanek-arm a48369691e iar libs for cordio 2018-12-07 17:56:36 +00:00
paul-szczepanek-arm bdabada477 added arm version of libs 2018-12-07 17:41:50 +00:00
paul-szczepanek-arm c13dcf3387 baseband clock rate increased to 1 000 000 2018-12-07 17:12:58 +00:00
Vincent Coubard e7f81fe7e8 BLE: Fix the number of advertising sets supported
The number of advertising sets supported is the minimum of advertising sets supported beween the host and the controller.
2018-12-07 13:26:35 +00:00
Vincent Coubard 4e5240b743 BLE: Set the number of the advertising sets supported by the host to 3. 2018-12-07 13:24:52 +00:00
Vincent Coubard 57b79d9659 BLE: Set the number of supported phy by the host to 3. 2018-12-07 13:24:28 +00:00
Vincent Coubard 20e0cd1b0e BLE: Inject random static address during reset sequence. 2018-12-07 12:35:20 +00:00
Vincent Coubard a36b04fde5 BLE: Add an option to inject the random static address during the reset sequence. 2018-12-07 12:33:31 +00:00
Vincent Coubard 0d398bc8c8 BLE: Revert changes introduced by debugging. 2018-12-07 09:33:26 +00:00
Vincent Coubard 1c71713e1b BLE: Fix recursion in ble::advertising_data_status_t raw constructor. 2018-12-07 00:05:02 +00:00
Vincent Coubard 698447b622 BLE: Fix address type allowed to create a periodic sync. 2018-12-07 00:04:29 +00:00
Vincent Coubard df95a1f8bd BLE: Allow null value for periodic interval in advertising report event. 2018-12-07 00:03:50 +00:00
Amanda Butler aa4b5a5dc7
Edit PortingGuide.md
Edit file for active voice.
2018-12-06 13:24:10 -06:00
Amanda Butler 61c2599587
Edit CordioHCIDriver.h
Edit file for active voice.
2018-12-06 13:22:20 -06:00
paul-szczepanek-arm df443c20ca copy periodic payload 2018-12-06 17:54:13 +00:00
paul-szczepanek-arm 22a117a6e4 always set filter policy 2018-12-06 15:43:45 +00:00
paul-szczepanek-arm 5735456487 fix swapped errors 2018-12-06 15:05:35 +00:00
paul-szczepanek-arm 58c7c3868e check return value of DmSyncStart 2018-12-06 15:04:23 +00:00
paul-szczepanek-arm d372f16bc4 fix return value 2018-12-06 15:04:00 +00:00
Vincent Coubard c83dccf65c BLE: Set advertising random address when appropriate. 2018-12-06 11:25:50 +00:00
Vincent Coubard 0543442cc3 BLE: Fix conversion of advertising type
Previously, we were passing the event_properties as defined by the Bluetooth spec which is not what DmAdvConfig expect as the advertising type passed to DmAdvConfig is Cordio tailored (and incomplete).
2018-12-06 11:23:45 +00:00
Vincent Coubard d9d4a214b8 BLE: Revert change in stack setup initialisation.
While good this change breaks some old application that were adding GATT services before the initialisation of BLE.

This patch revert temporarily this change for now
2018-12-06 11:21:43 +00:00
Vincent Coubard e3d8b28483
Update features/FEATURE_BLE/targets/TARGET_CORDIO/driver/CordioHCIDriver.h
Fix doxygen as suggested by @pan-

Co-Authored-By: donatieng <donatien.garnier@arm.com>
2018-12-06 10:19:57 +00:00
Donatien Garnier 4485531173 Update Porting Guide with memory pool changes 2018-12-05 19:24:44 +00:00
Donatien Garnier 7e6efc2571 Cordio: Update CY8C63XX Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier f9b236184a Cordio: Update CYW4343X Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 218bf3f80c Cordio: Update ODIN-W2 Driver to use default memory pool 2018-12-05 19:24:44 +00:00
Donatien Garnier 2978cd8404 Cordio: Make allocating too much memory for pool a warning, not a fatal assert 2018-12-05 19:24:44 +00:00
Donatien Garnier 101c5697e5 Cordio Nordic LL: Readjust memory pool requirements for NRF52840 2018-12-05 19:24:44 +00:00
Donatien Garnier c99f2497c3 Cordio Nordic LL: Optimize memory for smaller targets 2018-12-05 19:24:44 +00:00
Donatien Garnier 7a33feca23 Cordio: Split get_buffer_pool_description() in pure virtual + default implementation to avoid allocating two memory pools in a static fashion 2018-12-05 19:24:44 +00:00
Donatien Garnier b83c4fde66 Cordio: Assert if memory pool is not exactly the right size 2018-12-05 19:24:44 +00:00
Cruz Monrreal b3b050170e
Merge pull request #8879 from pan-/ble-extended-advertising-doc-fixes
Ble extended advertising doc fixes
2018-12-04 11:51:44 -06:00
Martin Kojtal 403405c44c
Merge pull request #8953 from ARMmbed/yennster-patch-1
Update FEATURE_BLE README
2018-12-04 14:32:14 +01:00
Mel W f92cc7b30b
Capitalization and punctuation 2018-12-04 12:34:48 +02:00
Martin Kojtal c1c94c83c5
Merge pull request #8904 from pan-/ble-extended-advertising-fixes
Ble extended advertising fixes
2018-12-04 09:50:36 +01:00
Jenny Plunkett fa191259b7
Update FEATURE_BLE README
Remove all outdated information including supported services and old documentation links
2018-12-03 13:09:01 -06:00
Vincent Coubard 472c57205b BLE: Fix doxygen parameter declaration order. 2018-12-03 18:03:30 +00:00
Vincent Coubard d1b0642ad2 BLE: rename AdvertisingReportEvent::getAdvertisingData into getPayload.
This change makes it consistent with PeriodicAdvertisingReportEvent.
2018-12-03 17:56:54 +00:00
Vincent Coubard ed426c5b45 BLE: rename ConnectionParameters::getFilterPolicy into getFilter for consistency. 2018-12-03 17:11:28 +00:00
Vincent Coubard 5abf2f08fa BLE: Reintroduce refactored type identifier in privacy configuration structures. 2018-12-03 17:04:38 +00:00
Vincent Coubard dc3ff6a5e0 BLE: Rename ConnectionParameters::setFilterPolicy into setFilter for consistency. 2018-12-03 16:56:20 +00:00
Vincent Coubard e026bce881 BLE: Change parameter order of ble::Gap::startScan 2018-12-03 16:50:10 +00:00
Martin Kojtal ce11081db7
Merge pull request #8884 from pan-/fix-cordio-connection-iteration
BLE: Fix iteration on connections in CordioGattServer.
2018-12-03 13:40:23 +01:00
Paul Szczepanek 0c21112482
fix DM_CONN_ID_NONE loop condition 2018-11-30 08:16:17 +00:00
Vincent Coubard 8c4a1a7b7a BLE: Improve scan response process explanation. 2018-11-29 13:52:04 +00:00
Vincent Coubard da3720138e BLE: Fix common/Duration.h doc. 2018-11-29 13:52:04 +00:00
Vincent Coubard e8972a72a4 BLE: provide better default connection parameters. 2018-11-29 12:32:36 +00:00
Vincent Coubard 4ed3f5620f BLE: Fix name of DisconnectionEvent into DisconnectionCompleteEvent for consistency. 2018-11-29 12:28:38 +00:00
Vincent Coubard 3ddcdf24a3 BLE: Fix ble::Gap::getMaxAdvertisingDataLength return type. 2018-11-29 12:26:40 +00:00
Vincent Coubard 402a4479d2 BLE: Ensure scan process is stopped before connecting. 2018-11-29 12:22:34 +00:00
Vincent Coubard 78468fb6e3 BLE: Use RANDOM address per default for Advertising, Scan and Connection parameter.
Unlike the public address, the RANDOM address is guaranteed to exist.
If privacy is enabled, it means the controller will generates random resolvable addresses or non resolvable addresses depending on the config.
If privacy is not enabled then the device will use the device's random static address that doesn't change between radio processes.
2018-11-29 12:18:11 +00:00
Vincent Coubard e7ef0b764e BLE: protect event signaling flag from concurent accesses. 2018-11-28 17:25:44 +00:00
Vincent Coubard c23911e3d8 BLE: Fix extraction of advertising element type. 2018-11-28 17:15:54 +00:00
Vincent Coubard c99824892c BLE: Reintroduce changes to address types lost. 2018-11-28 11:29:40 +00:00
Steve Cartmell 353e991410 doc(pan-cordio): Add toolchain version used to compile cordio-ll readme 2018-11-28 10:26:14 +00:00
Steve Cartmell a3bae1c48d doc(pan-cordio): Add readme and license documents for cordio link layer 2018-11-28 10:26:14 +00:00
Donatien Garnier 5a87cfa13d Fix a few more rebasing issues 2018-11-28 10:26:14 +00:00
Donatien Garnier 89aabaec0d Fix some rebasing quirks 2018-11-28 10:26:14 +00:00
Donatien Garnier f9808140df Add number of advertising sets 2018-11-28 10:26:14 +00:00
Donatien Garnier 3ce1d91d35 Amend Nordic HCI driver to support BLE5 features 2018-11-28 10:26:14 +00:00
Steve Cartmell 1b3efa4ccd doc(pan-cordio): Add documentation to README on how to enable Cordio LL 2018-11-28 10:26:14 +00:00
Steve Cartmell 12fdab312e feat(pan-cordio): Add nordic softdevice sources back into repository 2018-11-28 10:26:14 +00:00
Donatien Garnier c68c150bf8 Fix buffer size for NRF Cordio HCI driver 2018-11-28 10:26:13 +00:00
Steve Cartmell 93bf68df0b fix(pan-cordio): Remove erroneous files added after rebasing 2018-11-28 10:26:13 +00:00
Steve Cartmell 1e1486ed18 fix(pan-cordio): Replace the compiled uECC library with the sources 2018-11-28 10:19:08 +00:00
Donatien Garnier 01620b9ba2 Use uECC C99 implementation 2018-11-28 10:19:08 +00:00
Steve Cartmell 0f4ded19ac feat(pan-cordio): Replace NRF51 softdevice BLE stack with cordio 2018-11-28 10:19:08 +00:00
Steve Cartmell f583596fea refactor(pan-cordio): Replace the uECC source with a precompiled library 2018-11-28 10:19:08 +00:00
Steve Cartmell 93267699b8 fix(pan-nordic): Fix memory allocation sizes to resolve NRF52832 issues 2018-11-28 10:19:08 +00:00
Steve Cartmell 815d0d5efc feat(pan-cordio): Add cordio-ll libraries and NORDIC implementation 2018-11-28 10:19:08 +00:00
Steve Cartmell ca2efcdd11 fix(pan-cordio): Reset timer after updating to reduce chance of overflow 2018-11-28 10:19:08 +00:00
Steve Cartmell e5aa84308f refactor(pan-cordio): Use Timer class instead of raw ticker for timing 2018-11-28 10:19:08 +00:00
Steve Cartmell 299ae1d9c6 fix(pan-cordio): Override WSF handler size in a platform specific manner 2018-11-28 10:19:08 +00:00
Steve Cartmell 5782e93a19 fix(pan-cordio): Wrap call to wsfOsReadyToSleep in a critical section
The function wsfOsReadyToSleep should only be called when interrupts are
disabled. Entering a critical section before calling the function fixes
any potential issues.
2018-11-28 10:19:08 +00:00
Steve Cartmell f60c2c9aa8 fix(pan-cordio): Increase the maximum number of supported WSF handlers
NRF52480 fails to complete BLE initialisation due to attempting to set
more event handlers than are supported by the WSF library.

Increasing the number of handlers fixes this issue.
2018-11-28 10:19:08 +00:00
Steve Cartmell 065bad6fa6 fix(pan-cordio): Move stack BLE stack setup to later in initialisation 2018-11-28 10:19:08 +00:00
Vincent Coubard d115e73e7e BLE: Fix iteration on connections in CordioGattServer. 2018-11-27 16:01:56 +00:00
paul-szczepanek-arm 5302a7f599 consistent errors 2018-11-27 15:38:01 +00:00
Vincent Coubard 1a6246f130 BLE: Remove double handling of DM_CONN_OPEN_IND . 2018-11-27 15:30:56 +00:00
Vincent Coubard daee12d623 BLE: Fix set check in GenerigGap::stopAdvertising. 2018-11-27 15:29:52 +00:00
Vincent Coubard 6677fab856 BLE: Move source/Gap.cpp -> source/LegacyGap.cpp 2018-11-27 09:12:28 +00:00
Amanda Butler bbb67a69c8
Edit Types.h
Edit file.
2018-11-26 19:35:43 -06:00
Amanda Butler d00ad8bc96
Edit ScanParameters.h
Edit file, mostly to fix typos.
2018-11-26 19:18:24 -06:00
Amanda Butler fa784c2aff
Edit URIBeaconCOnfigService.h
Edit file for active voice and comma use.
2018-11-26 19:15:31 -06:00
Amanda Butler 08ef3f7209
Edit iBeacon.h
Add commas between two independent clauses joined by a coordinating conjunction.
2018-11-26 19:14:14 -06:00
Amanda Butler 431402c14d
Edit Gap.h
Edit most of file, mostly for U.S. spelling and typos.
2018-11-26 19:08:41 -06:00
Amanda Butler b4c34557d9
Edit Events.h
Edit file for person, capitalization and to fix typos.
2018-11-26 18:47:49 -06:00
Amanda Butler 2e02869173
Edit ConnectionParameters.h
Edit file, mostly for agreement.
2018-11-26 18:40:55 -06:00
Amanda Butler c904ac898a
Edit AdvertisingParameters.h
Edit file, mostly for active voice and U.S. spelling.
2018-11-26 18:32:35 -06:00
Amanda Butler 31a73fc007
Edit AdvertisitngDataSimpleBuilder.h
Edit file, mostly for consistent tense and typos.
2018-11-26 18:17:22 -06:00
Donatien Garnier 5347a8ae4a
Update Duration.h in consistent casing 2018-11-27 00:16:33 +00:00
Amanda Butler 7df90ba3bc
Edit AdvertisingDataBuilder.h
Edit file, mostly to fix typos and standardize hyphen use.
2018-11-26 18:12:56 -06:00
Amanda Butler 451f9aad12
Edit Bounded.h
Edit file, mostly for consistent capitalization and active voice.
2018-11-26 18:01:30 -06:00
Amanda Butler ecf8c7320f
Edit Gap.h
Edit file for capitalization and active voice.
2018-11-26 17:58:50 -06:00
Vincent Coubard a65296e9ee BLE: removed resolved TODO. 2018-11-26 23:44:23 +00:00
Vincent Coubard 7b1e225012 BLE: Fix address name in NRF targets. 2018-11-26 23:36:43 +00:00
Vincent Coubard 66a9e635bd BLE: report correct event type for legacy advertising report. 2018-11-26 23:28:30 +00:00
Vincent Coubard 0c9ce24638 BLE: remove unwanted trace. 2018-11-26 23:16:31 +00:00
paul-szczepanek-arm b552f8c3f0 fix return code for implemented func 2018-11-26 23:06:06 +00:00
Vincent Coubard ef1552a8f5 BLE: report legacy connection event in new event handler. 2018-11-26 23:03:21 +00:00
paul-szczepanek-arm a14f143c85 set active set to false when stoping advertising 2018-11-26 23:00:29 +00:00
paul-szczepanek-arm 4d986bf376 fix is feature enabled condition and made in consistent 2018-11-26 21:11:34 +00:00
Vincent Coubard 56185582aa BLE: Report legacy advertising with new API. 2018-11-26 21:01:14 +00:00
Vincent Coubard 0ef7a40475 BLE: Fix set advertising paylaod dispatch. 2018-11-26 21:00:46 +00:00
Vincent Coubard daf0f429c8 BLE: Fix advertising set issues on legacy controllers. 2018-11-26 19:14:48 +00:00
paul-szczepanek-arm 3ae38ac1e8 always set existing set for legacy handle 2018-11-26 18:53:49 +00:00
Vincent Coubard 7f33145760 BLE: Fix extended advertising check. 2018-11-26 17:12:50 +00:00
Vincent Coubard ac47736259 BLE: Enable cordio extended modules if available. 2018-11-26 16:57:47 +00:00
paul-szczepanek-arm bf535af159 check feature support before calling extended functnions 2018-11-26 16:57:07 +00:00
paul-szczepanek-arm bed7677c81 stop advertising before reseting 2018-11-26 16:51:28 +00:00
paul-szczepanek-arm 6f3a9ca107 legacy handle starts off present in _existing_sets 2018-11-26 16:29:33 +00:00
paul-szczepanek-arm f4a560dace reset advertising sets on reset 2018-11-26 16:25:33 +00:00
paul-szczepanek-arm 2b94b66fd2 deprecate services that are not useless 2018-11-26 15:42:12 +00:00
paul-szczepanek-arm e54e3eaee0 cast no longer needed 2018-11-26 15:42:12 +00:00
Vincent Coubard f71e08ccf1 BLE: tag API uses in GenericGap. 2018-11-26 15:26:24 +00:00
Vincent Coubard 2d63714f2e BLE: Implement connection parameter management in GAP. 2018-11-26 15:25:46 +00:00
Vincent Coubard 89355b9fb0 BLE: Check supervision timeout value in connect. 2018-11-26 15:24:42 +00:00
Vincent Coubard d1b5c8cbb5 BLE: Mark LEGACY_ADVERTISING_HANDLE as active in initialization. 2018-11-26 15:23:53 +00:00
Vincent Coubard 93b6ecfa7e BLE: initialize properly deprecated and non deprecated flags. 2018-11-26 15:23:24 +00:00
Vincent Coubard 3aa91ecbba BLE: return phy_set_t in ConnectionParameters::getPhySet 2018-11-26 15:22:50 +00:00
Vincent Coubard a915748cbe BLE: Fallback to legacy connect when required. 2018-11-26 14:13:07 +00:00
Vincent Coubard 190b9bc125 BLE: Fix address type in ::ble::Gap::connect 2018-11-26 14:13:07 +00:00
paul-szczepanek-arm c9e8501b22 make PHY case consistent 2018-11-26 12:30:57 +00:00
Vincent Coubard d3d93e1ef9 BLE: Improve ble::Gap documentation. 2018-11-26 11:51:00 +00:00
paul-szczepanek-arm bee115c39e replace magic numbers 2018-11-26 11:31:03 +00:00
paul-szczepanek-arm f3a64feaf1 replace magic numbers 2018-11-26 11:26:26 +00:00
paul-szczepanek-arm a03aaa2342 simplify and explain swapping 2018-11-26 11:26:13 +00:00
paul-szczepanek-arm e0e186c831 replace consts with a private enum 2018-11-26 11:21:37 +00:00
paul-szczepanek-arm 528deb168f fix wrong variable being swapped 2018-11-26 11:16:23 +00:00
paul-szczepanek-arm 208b1bd3e9 fix size calculation for UUID data payload 2018-11-26 11:10:39 +00:00
Vincent Coubard 8cbc53617f BLE: Add a simple builder for AdvertisingData. 2018-11-26 10:24:35 +00:00
Vincent Coubard d4a66ae034 BLE: Add an AdvertisingDataParser 2018-11-26 10:24:35 +00:00
Vincent Coubard 09ba26ce4b BLE: Move advertising data types in their own file. 2018-11-26 10:24:35 +00:00
Vincent Coubard be7cc41da4 BLE: doxygen fixes. 2018-11-26 10:24:35 +00:00
Vincent Coubard 0407ee8c81 BLE: move privacy configuration type in ble namespace. 2018-11-26 10:24:35 +00:00
Vincent Coubard dff8f25d49 BLE: Improve Duration documentation. 2018-11-26 10:24:35 +00:00
Vincent Coubard 78d4a9b6c8 BLE: Cleanup enum duplicates in gap/Types.h 2018-11-26 10:24:35 +00:00
Vincent Coubard 884d870b68 BLE: Improve gap/Types.h documentation. 2018-11-26 10:24:35 +00:00
Vincent Coubard 9621b26cab BLE: Reorganize ble::gap documentation group. 2018-11-26 10:24:35 +00:00
Vincent Coubard 27011fd954 BLE: Document ble::ScanParameters. 2018-11-26 10:24:35 +00:00