File tree Expand file tree Collapse file tree 2 files changed +20
-2
lines changed
features/FEATURE_BLE/targets/TARGET_NORDIC/TARGET_NORDIC_CORDIO/TARGET_NRF5x Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -297,6 +297,21 @@ void NRFCordioHCIDriver::start_reset_sequence()
297
297
CordioHCIDriver::start_reset_sequence ();
298
298
}
299
299
300
+ bool NRFCordioHCIDriver::get_random_static_address (ble::address_t & address)
301
+ {
302
+ /* Load address from nRF configuration. */
303
+ uint64_t devAddr = (((uint64_t )NRF_FICR->DEVICEADDR [0 ]) << 0 ) |
304
+ (((uint64_t )NRF_FICR->DEVICEADDR [1 ]) << 32 );
305
+
306
+ for (size_t i = 0 ; i < address.size (); ++i) {
307
+ address[i] = devAddr >> (i * 8 );
308
+ }
309
+
310
+ address[5 ] |= 0xC0 ; /* cf. "Static Address" (Vol C, Part 3, section 10.8.1) */
311
+ return true ;
312
+ }
313
+
314
+
300
315
ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver () {
301
316
static NRFCordioHCITransportDriver transport_driver;
302
317
@@ -328,6 +343,4 @@ void PlatformLoadBdAddress(uint8_t *pDevAddr)
328
343
pDevAddr[i] = devAddr >> (i * 8 );
329
344
i++;
330
345
}
331
-
332
- pDevAddr[5 ] |= 0xC0 ; /* cf. "Static Address" (Vol C, Part 3, section 10.8.1) */
333
346
}
Original file line number Diff line number Diff line change @@ -59,6 +59,11 @@ class NRFCordioHCIDriver : public cordio::CordioHCIDriver {
59
59
*/
60
60
// virtual void handle_reset_sequence(uint8_t *msg);
61
61
62
+ /* *
63
+ * @copydoc cordio::CordioHCIDriver::get_random_static_address
64
+ */
65
+ virtual bool get_random_static_address (ble::address_t & address);
66
+
62
67
private:
63
68
/* *
64
69
* Initialize the chip.
You can’t perform that action at this time.
0 commit comments