- Sat Feb 04, 2023 9:39 am
#238803
Hello -
I'm having trouble reading a lot of the Apollo3 registers. The following code reads the first register appropriately, but trying to read the second causes a hard fault. My casual observation is that registers below 0x50000000 can be read and trying to read those above causes a fault. This is on a Redboard Artemis Nano, but the same thing is happening with the Artemis Module. Does anyone know how to read all registers successfully?
void setup() {
Serial.begin(9600);
delay(3000);
Serial.println("begin serial");
Serial.print("Reg value: ");
Serial.println(GPIO->CFGE, HEX); //this address is 0x40010050
Serial.println(BLEIF->CLKCFG, HEX); //this address is 0x5000C200
}
void loop() {
}
The resulting output:
begin serial
Reg value: 0
++ MbedOS Fault Handler ++
FaultType: HardFault
Context:
R0: 10000F40
R1: 10006964
R2: 1
R3: 5000C000
R4: 10000F40
R5: 0
R6: 0
R7: 0
R8: 0
R9: 0
R10: 0
R11: 0
R12: 22739
SP : 100069D0
LR : 11153
PC : 1062A
xPSR : 61000000
PSP : 100069B0
MSP : 1005FF70
CPUID: 410FC241
HFSR : 40000000
MMFSR: 0
BFSR : 82
UFSR : 0
DFSR : 0
AFSR : 0
BFAR : 5000C200
Mode : Thread
Priv : Privileged
Stack: PSP
-- MbedOS Fault Handler --
++ MbedOS Error Info ++
Error Status: 0x80FF013D Code: 317 Module: 255
Error Message: Fault exception
Location: 0x1062A
Error Value: 0x10005980
Current Thread: main Id: 0x10003F20 Entry: 0x22589 StackSize: 0x1000 StackMem: 0x100059E0 SP: 0x100069D0
For more info, visit: https://mbed.com/s/error?error=0x80FF01 ... TEMIS_NANO
-- MbedOS Error Info --
I'm having trouble reading a lot of the Apollo3 registers. The following code reads the first register appropriately, but trying to read the second causes a hard fault. My casual observation is that registers below 0x50000000 can be read and trying to read those above causes a fault. This is on a Redboard Artemis Nano, but the same thing is happening with the Artemis Module. Does anyone know how to read all registers successfully?
void setup() {
Serial.begin(9600);
delay(3000);
Serial.println("begin serial");
Serial.print("Reg value: ");
Serial.println(GPIO->CFGE, HEX); //this address is 0x40010050
Serial.println(BLEIF->CLKCFG, HEX); //this address is 0x5000C200
}
void loop() {
}
The resulting output:
begin serial
Reg value: 0
++ MbedOS Fault Handler ++
FaultType: HardFault
Context:
R0: 10000F40
R1: 10006964
R2: 1
R3: 5000C000
R4: 10000F40
R5: 0
R6: 0
R7: 0
R8: 0
R9: 0
R10: 0
R11: 0
R12: 22739
SP : 100069D0
LR : 11153
PC : 1062A
xPSR : 61000000
PSP : 100069B0
MSP : 1005FF70
CPUID: 410FC241
HFSR : 40000000
MMFSR: 0
BFSR : 82
UFSR : 0
DFSR : 0
AFSR : 0
BFAR : 5000C200
Mode : Thread
Priv : Privileged
Stack: PSP
-- MbedOS Fault Handler --
++ MbedOS Error Info ++
Error Status: 0x80FF013D Code: 317 Module: 255
Error Message: Fault exception
Location: 0x1062A
Error Value: 0x10005980
Current Thread: main Id: 0x10003F20 Entry: 0x22589 StackSize: 0x1000 StackMem: 0x100059E0 SP: 0x100069D0
For more info, visit: https://mbed.com/s/error?error=0x80FF01 ... TEMIS_NANO
-- MbedOS Error Info --