Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/BlueNRGDevice.cpp
- Revision:
- 173:821942ac7d5a
- Parent:
- 169:485bbcddf0c3
- Child:
- 177:65d9b1b75fca
- Child:
- 183:3bc6d59b9c81
diff -r 29d7c514a636 -r 821942ac7d5a source/BlueNRGDevice.cpp --- a/source/BlueNRGDevice.cpp Mon Nov 09 08:36:16 2015 +0100 +++ b/source/BlueNRGDevice.cpp Tue Nov 10 06:25:29 2015 +0100 @@ -140,6 +140,14 @@ irq_.mode(PullDown); // betzw: set irq mode irq_.rise(&HCI_Isr); + // betzw - WORKAROUND: exploit current mbed 'InterruptIn' implementation + // to handle spurious BlueNRG interrupts + irq_.fall(&HCI_Isr); // attach IRQ handler & enable IRQ + irq_.fall(NULL); // this doesn't clear the attachment but just disables the IRQ! + // In this way spurious BlueNRG interrupts (e.g. IRQs happening + // even without being enabled) end up in a real IRQ handler + // function rather than in a NULL pointer (i.e. in a hard fault). + /* ToDo: Clear memory contents, reset the SD, etc. */ // By default, we set the device GAP role to PERIPHERAL btle_init(BlueNRGGap::getInstance().getIsSetAddress(), GAP_PERIPHERAL_ROLE_IDB04A1);