Hello, i try write some string in memory and during the code is executed nothing is broken, but after restart the uC i received a erro, in bellow.
Basicly i write a string from 32bytes in 3 sector, 0x1E20, 0x1E40 and 0x1E60 when i received the package from BLE, in bellow my write and read function.
void writeStringToMemory(const char* str, uint32_t addr) {
int len = strlen(str) + 1; // Sum null-terminator ‘\0’
int i = 0;
while (i < len) {
uint32_t word = 0;
memcpy(&word, str + i, min(4, len - i)); // Maximum 4 bytes
FlashMemory.writeWord(addr + i, word);
i += 4;
}
}
void readStringFromMemory(char* buffer, uint32_t addr, int maxLen) {
int i = 0;
while (i < maxLen) {
uint32_t word = FlashMemory.readWord(addr + i);
memcpy(buffer + i, &word, min(4, maxLen - i)); // Copy back to buffer
i += 4;
if (buffer[i - 1] == ‘\0’) break; // Stop if find null-terminator
}
}
The error!
Boot Loader <==
== RAM Start ==
Build @ 17:32:16, Oct 24 2024
$8735b>interface 0 is initialized
interface 1 is initialized
cfg_size_lib = 40, cfg_size_user = 40
Initializing WIFI …[Driver]: [HALMAC]
11692M HALMAC_MAJOR_VER = 1
HALMAC_PROTOTYPE_VER = 4
HALMAC_MINOR_VER = 20
HALMAC_PATCH_VER =
[Driver]: The driver include MP
[Driver]: Ver = libwlan:2024.10.24.17.49_b9.6_2e6d0195b6b821c8df060f1392ff528c46a039df
RFE type = 0
start_addr=(0x4000), end_addr=(0x8000), buffer_size=(0x4000), smp_number_max=(2048)
WIFI initialized
Bluetooth init BT_ADDR in cfgbuf [40:f4:c9:12:de:bd]
hci_platform_controller_reset:482(info) BT Reset OK!
MemManage Fault:
SCB Configurable Fault Status Reg = 0x00000001
MemManage Fault Status:
MemManage Fault Address Reg is invalid
Instruction access violation: the processor attempted an instruction fetch from a location that does not permit execution.
S-domain exception from Thread mode, Extended Stack frame on S-PSP
Registers Saved to stack
Stacked:
R0 = 0x10004415
R1 = 0x000006c0
R2 = 0x55555555
R3 = 0x00000000
R4 = 0xf8acf001
R5 = 0x55555555
R6 = 0x55555555
R7 = 0x00000163
R8 = 0x00000000
R9 = 0x7039494c
R10 = 0x10101010
R11 = 0x11111111
R12 = 0x00000016
LR = 0x7018b433
PC = 0xf8acf000
PSR = 0x41100000
Current:
LR = 0xffffffed
MSP = 0x20003fd8
PSP = 0x7040ad58
xPSR = 0x40000004
CFSR = 0x00000001
HFSR = 0x00000000
DFSR = 0x00000000
MMFAR = 0x00000000
BFAR = 0x00000000
AFSR = 0x00000000
PriMask = 0x00000000
SVC priority: 0x00
PendSVC priority: 0xf0
Systick priority: 0xf0
MSP Data:
20003FD8: 702992BC FFFFFFF9 20004000 000003E8
20003FE8: E000E000 702992BC 07070707 701384A5
20003FF8: 70138518 21000000 F76BC70C 54875265
20004008: FAF94FB6 F7A635E9 D6C81FF7 09FC8F24
20004018: 5AF87F3F F9BADFFD 9BFB1E4F D579BE0F
20004028: 4F9F45FA EE9AFDCC FCE5CB50 0FB22E92
20004038: F9AA73D5 F59B9FEB 19BB341C 45965E72
20004048: B067BEEF 153974DF DA06237F 175D1168
20004058: EE7FC991 97B46886 FD89DB6A 58042943
20004068: F3700B9F 4B8359BF 01346BBF 42061FC9
20004078: E82F2381 74D17518 50F94A4A 332C7C58
20004088: C7FECC2F CD2A36F4 332C7840 C8CD2238
20004098: D52EA71F BD597362 9722AFEC CA2DE83A
200040A8: DA50BFD6 3152C81D C564E129 56D8B093
200040B8: D7CDA105 6DDCADDF BE13A036 023BC67D
200040C8: 5032C0AF 88062FF8 5270E3C3 1F686392
PSP Data:
7040AD58: 10004415 000006C0 55555555 00000000
7040AD68: 00000016 7018B433 F8ACF000 41100000
7040AD78: 703EC3C0 00000000 00003C00 00004C00
7040AD88: 00000000 703EC3C0 00000011 FFFFFFFF
7040AD98: 0000000A 70194BA7 00000000 00000000
7040ADA8: 00046048 00046048 7040FF40 703CF06C
7040ADB8: 0000000A 70185867 00000000 70196BEB
7040ADC8: 00000000 55555555 00000000 00000002
7040ADD8: 00000000 703CF06C 0000000A 70196D77
7040ADE8: 00000000 00000002 703CF06C 703CF069
7040ADF8: 703EC0F4 70196F05 70196ED9 7018BD6F
7040AE08: 703F3E40 70188BB9 0000003C 703E83E0
7040AE18: 00000001 70189453 701890C1 703E83E0
7040AE28: 00000001 7028F0E5 70394988 70394951
7040AE38: 7028F0DB 7016CD71 00000003 7014526F
7040AE48: 00000012 000000DE 000000BD 05050505
== NS Dump ==
CFSR_NS = 0x00000000
HFSR_NS = 0x00000000
DFSR_NS = 0x00000000
MMFAR_NS = 0x00000000
BFAR_NS = 0x00000000
AFSR_NS = 0x00000000
MSP_NS = 0x00000000
PSP_NS = 0x00000000
NS HardFault Status Reg = 0x00000000
SCB Configurable Fault Status Reg = 0x00000000
No Back Trace!
We have any possibility to read the core dump in this uC?
Thank you