Description
Hi,
i have a little problem with my nano ble sense and think this could be a bug in ArduinoBLE lib.
In my project, I scan for BLE devices nearby and check if the found one equals a previous defined address. This works very fine at home, but when I tested it at work, the arduino hangs and shows a "MbedOS Fault Handler"-message over Serial1 right after the call of BLEDevice
peripheral = BLE.available()
.
I discovered that there are only a few BLE devices at home, but at work, there are like 30 and more nearby.
Because I can't send you my huge code, I've tested the behaviour with the smaller code below. The code is the ArduinoBLE PeripheralExplorer example with a few lines of code for adding a 1 s delay to simulate the delay in my bigger program at work.
Without the delay, the arduino seems to work. But in my code, there are several functions which need time, so I can't call "BLEDevice peripheral = BLE.available();" any faster. (in the bigger code, the time alternates between 20 ms and up to 6 min)
With the code below I get the following output in my console:
11157<\r><\n>
12157<\r><\n>
13157<\r><\n>
14157<\r><\n>
15157<\r><\n>
16157<\r><\n>
17158<\r><\n>
18158<\r><\n>
19158<\r><\n>
20158<\r><\n>
21158<\r><\n>
22158<\r><\n>
23158<\r><\n>
24158<\r><\n>
25158<\r><\n>
HCI EVENT RX <- 043E2202010000D2119820357116020105030212180319C1030A0968616D612042525333B5<\r><\n>
HCI EVENT RX <- 043E1702010400D211982035710B0A0968616D612042525333B5<\r><\n>
Found 71:35:20:98:11:d2 'hama BRS3' 1812<\r><\n>
26158<\r><\n>
27158<\r><\n>
28158<\r><\n>
29159<\r><\n>
30159<\r><\n>
31159<\r><\n>
32159<\r><\n>
33160<\r><\n>
34160<\r><\n>
35160<\r><\n>
36160<\r><\n>
37160<\r><\n>
38161<\r><\n>
39161<\r><\n>
40161<\r><\n>
41161<\r><\n>
42161<\r><\n>
43161<\r><\n>
44161<\r><\n>
45161<\r><\n>
46161<\r><\n>
47161<\r><\n>
48161<\r><\n>
49161<\r><\n>
50161<\r><\n>
51162<\r><\n>
52162<\r><\n>
53162<\r><\n>
54162<\r><\n>
55162<\r><\n>
56162<\r><\n>
57162<\r><\n>
HCI EVENT RX <- 043E22020100003A129820357116020105030212180319C1030A0968616D612042525333A9<\r><\n>
HCI EVENT RX <- 043E17020104003A12982035710B0A0968616D612042525333A9<\r><\n>
HCI EVENT RX <- 043E220201000013139820357116020105030212180319C1030A0968616D612042525333B0<\r><\n>
HCI EVENT RX <- 043E22020100001C0F9820357116020105030212180319C1030A0968616D612042525333AB<\r><\n>
HCI EVENT RX <- 043E17020104001C0F982035710B0A0968616D612042525333AB<\r><\n>
HCI EVENT RX <- 043E2202010000A1149820357116020105030212180319C1030A0968616D612042525333A5<\r><\n>
HCI EVENT RX <- 043E17020104001313982035710B0A0968616D612042525333AF<\r><\n>
HCI EVENT RX <- 043E1702010400A114982035710B0A0968616D612042525333B2<\r><\n>
HCI EVENT RX <- 040404043E2B02<\r><\n>
1<\r><\n>
3<\r><\n>
1<\r><\n>
E0<\r><\n>
A5<\r><\n>
24<\r><\n>
35<\r><\n>
9E<\r><\n>
D<\r><\n>
1F<\r><\n>
Found 71:35:20:98:12:3a 'hama BRS3' 1812<\r><\n>
58162<\r><\n>
Found 71:35:20:98:13:13 'hama BRS3' 1812<\r><\n>
59162<\r><\n>
<\n>
++ MbedOS Fault Handler ++<\n>
<\n>
FaultType: HardFault<\n>
<\n>
Context:<\n>
R0 : 20000D98<\n>
R1 : 00000003<\n>
R2 : 00000215<\n>
R3 : 43480020<\n>
R4 : 20000B78<\n>
R5 : 20000D98<\n>
R6 : 00000000<\n>
R7 : 00051E41<\n>
R8 : 00051E2E<\n>
R9 : 00000000<\n>
R10 : 00000000<\n>
R11 : 00000000<\n>
R12 : 00000000<\n>
SP : 2000F488<\n>
LR : 000141A5<\n>
PC : 43480020<\n>
xPSR : 80000000<\n>
PSP : 2000F468<\n>
MSP : 2003FFC0<\n>
CPUID: 410FC241<\n>
HFSR : 40000000<\n>
MMFSR: 00000001<\n>
BFSR : 00000000<\n>
UFSR : 00000000<\n>
DFSR : 00000000<\n>
AFSR : 00000000<\n>
Mode : Thread<\n>
Priv : Privileged<\n>
Stack: PSP<\n>
<\n>
-- MbedOS Fault Handler --<\n>
<\n>
<\n>
<\n>
++ MbedOS Error Info ++<\n>
Error Status: 0x80FF013D Code: 317 Module: 255<\n>
Error Message: Fault exception<\n>
Location: 0x43480020<\n>
Error Value: 0x20006FCC<\n>
Current Thread: main Id: 0x2000F574 Entry: 0x47925 StackSize: 0x8000 StackMem: 0x20007550 SP: 0x2000F488 <\n>
For more info, visit: https://mbed.com/s/error?error=0x80FF013D&tgt=ARDUINO_NANO33BLE<\n>
-- MbedOS Error Info --<\n>
To simulate the condition at work, I use some BLE buttons. hama brs3
At millis = 25000, I powered on one BLE shutter button which works fine. But at 55000 ms, I powered on 5 more at the same time which leads to the error message.
Do you have any idea how I can fix this behaviour?
/*
Peripheral Explorer
This example scans for BLE peripherals until one with a particular name ("LED")
is found. Then connects, and discovers + prints all the peripheral's attributes.
The circuit:
- Arduino MKR WiFi 1010, Arduino Uno WiFi Rev2 board, Arduino Nano 33 IoT,
Arduino Nano 33 BLE, or Arduino Nano 33 BLE Sense board.
You can use it with another board that is compatible with this library and the
Peripherals -> LED example.
This example code is in the public domain.
*/
#include <ArduinoBLE.h>
unsigned long prevMillis = 0 ;
int shutdownPin = 2;
void setup() {
pinMode(shutdownPin, OUTPUT);
digitalWrite(shutdownPin, HIGH);
Serial1.begin(115200);
while (!Serial1);
// begin initialization
if (!BLE.begin()) {
Serial1.println("starting BLE failed!");
while (1);
}
BLE.debug(Serial1);
Serial1.println("BLE Central - Peripheral Explorer");
// start scanning for peripherals
BLE.scan();
}
void loop() {
// check if a peripheral has been discovered
if (millis() - prevMillis >= 1000){
Serial1.println (millis());
prevMillis = millis();
BLEDevice peripheral = BLE.available();
if (peripheral) {
// discovered a peripheral, print out address, local name, and advertised service
Serial1.print("Found ");
Serial1.print(peripheral.address());
Serial1.print(" '");
Serial1.print(peripheral.localName());
Serial1.print("' ");
Serial1.print(peripheral.advertisedServiceUuid());
Serial1.println();
// see if peripheral is a LED
if (peripheral.localName() == "LED") {
// stop scanning
BLE.stopScan();
explorerPeripheral(peripheral);
// peripheral disconnected, we are done
while (1) {
// do nothing
}
}
}
}
}
void explorerPeripheral(BLEDevice peripheral) {
// connect to the peripheral
Serial1.println("Connecting ...");
if (peripheral.connect()) {
Serial1.println("Connected");
} else {
Serial1.println("Failed to connect!");
return;
}
// discover peripheral attributes
Serial1.println("Discovering attributes ...");
if (peripheral.discoverAttributes()) {
Serial1.println("Attributes discovered");
} else {
Serial1.println("Attribute discovery failed!");
peripheral.disconnect();
return;
}
// read and print device name of peripheral
Serial1.println();
Serial1.print("Device name: ");
Serial1.println(peripheral.deviceName());
Serial1.print("Appearance: 0x");
Serial1.println(peripheral.appearance(), HEX);
Serial1.println();
// loop the services of the peripheral and explore each
for (int i = 0; i < peripheral.serviceCount(); i++) {
BLEService service = peripheral.service(i);
exploreService(service);
}
Serial1.println();
// we are done exploring, disconnect
Serial1.println("Disconnecting ...");
peripheral.disconnect();
Serial1.println("Disconnected");
}
void exploreService(BLEService service) {
// print the UUID of the service
Serial1.print("Service ");
Serial1.println(service.uuid());
// loop the characteristics of the service and explore each
for (int i = 0; i < service.characteristicCount(); i++) {
BLECharacteristic characteristic = service.characteristic(i);
exploreCharacteristic(characteristic);
}
}
void exploreCharacteristic(BLECharacteristic characteristic) {
// print the UUID and properties of the characteristic
Serial1.print("\tCharacteristic ");
Serial1.print(characteristic.uuid());
Serial1.print(", properties 0x");
Serial1.print(characteristic.properties(), HEX);
// check if the characteristic is readable
if (characteristic.canRead()) {
// read the characteristic value
characteristic.read();
if (characteristic.valueLength() > 0) {
// print out the value of the characteristic
Serial1.print(", value 0x");
printData(characteristic.value(), characteristic.valueLength());
}
}
Serial1.println();
// loop the descriptors of the characteristic and explore each
for (int i = 0; i < characteristic.descriptorCount(); i++) {
BLEDescriptor descriptor = characteristic.descriptor(i);
exploreDescriptor(descriptor);
}
}
void exploreDescriptor(BLEDescriptor descriptor) {
// print the UUID of the descriptor
Serial1.print("\t\tDescriptor ");
Serial1.print(descriptor.uuid());
// read the descriptor value
descriptor.read();
// print out the value of the descriptor
Serial1.print(", value 0x");
printData(descriptor.value(), descriptor.valueLength());
Serial1.println();
}
void printData(const unsigned char data[], int length) {
for (int i = 0; i < length; i++) {
unsigned char b = data[i];
if (b < 16) {
Serial1.print("0");
}
Serial1.print(b, HEX);
}
}
I added a Serial1.print in https://github.com/arduino-libraries/ArduinoBLE/blob/master/src/utility/HCICordioTransport.cpp#L262 as suggested in #102 which leads to the following output (even without the man-made one second delay in the code):
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
HCI EVENT RX <- 04043E0C020104011D73A7180A6F00C204040404043E2202010000A1149820357116020105030212180319C1030A0968616D612042525333AE0404043E17020104<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
0<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
3A<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
12<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
98<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
20<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
35<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
71<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
B<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
A<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
9<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
68<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
61<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
6D<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
61<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
20<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
42<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
52<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
53<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
33<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
AE<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
HCI EVENT RX <- 04040404043E2B<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\n>
In HCICordioTransportClass::read()<\r><\r><\n>
++ MbedOS Fault Handler ++<\r><\n>
<\r><\n>
FaultType: HardFault<\r><\n>
<\r><\n>
Context:<\r><\n>
R0 : 2000159C<\r><\n>
R1 : 00000096<\r><\n>
R2 : 00000215<\r><\n>
R3 : 3DA30000<\r><\n>
R4 : 2000137C<\r><\n>
R5 : 2000159C<\r><\n>
R6 : 00000000<\r><\n>
R7 : 00055431<\r><\n>
R8 : 0005541E<\r><\n>
R9 : 00000000<\r><\n>
R10 : 00000000<\r><\n>
R11 : 00000000<\r><\n>
R12 : FFFFFFFF<\r><\n>
SP : 20010500<\r><\n>
LR : 000141C9<\r><\n>
PC : 3DA30000<\r><\n>
xPSR : 800B0000<\r><\n>
PSP : 20010498<\r><\n>
MSP : 2003FFC0<\r><\n>
CPUID: 410FC241<\r><\n>
HFSR : 40000000<\r><\n>
MMFSR: 00000000<\r><\n>
BFSR : 00000001<\r><\n>
UFSR : 00000000<\r><\n>
DFSR : 00000000<\r><\n>
AFSR : 00000000<\r><\n>
Mode : Thread<\r><\n>
Priv : Privileged<\r><\n>
Stack: PSP<\r><\n>
<\r><\n>
-- MbedOS Fault Handler --<\r><\n>
<\r><\n>
<\r><\n>
<\r><\n>
++ MbedOS Error Info ++<\r><\n>
Error Status: 0x80FF013D Code: 317 Module: 255<\r><\n>
Error Message: Fault exception<\r><\n>
Location: 0x3DA30000<\r><\n>
Error Value: 0x20007FBC<\r><\n>
Current Thread: main Id: 0x200105EC Entry: 0x48EFB StackSize: 0x8000 StackMem: 0x200085C8 SP: 0x20010500 <\r><\n>
For more info, visit: https://mbed.com/s/error?error=0x80FF013D&tgt=ARDUINO_NANO33BLE<\r><\n>
-- MbedOS Error Info --<\r><\n>