Makes sense. I had removed heap_4.c.
BTW, I should note that I have newlib version 3.3, so I get this warning when I compile heap_useNewlib_NXP.c:
This wrapper was verified for newlib versions 2.5 - 3.1; please ensure newlib's external requirements for malloc-family are unchanged!
I reread Dave’s instructions, and revised my linker script slightly:
MY_HEAP_SIZE = 0x7000; /* 28 kB */
.heap (NOLOAD):
{
__HeapBase = .;
__end__ = .;
end = __end__;
KEEP(*(.heap*))
. = ALIGN(8);
. = . + MY_HEAP_SIZE;
. = ALIGN(8);
__HeapLimit = .;
} > ram
/* (int)&HEAP_SIZE; // that's (&__HeapLimit)-(&__HeapBase) */
HEAP_SIZE = __HeapLimit - __HeapBase;
With configUSE_NEWLIB_REENTRANT 1
I end up at Call Stack:
0 ??() ?????? ?????? 0x584E5F62 (All)
1 __sfvwrite_r() ?????? ?????? 0x1009C840 (All)
2 _puts_r() ?????? ?????? 0x1009DD32 (All)
3 Cy_SysLib_ProcessingFault() main_cm4.c 372 0x10090ACC (All)
4 Cy_SysLib_FaultHandler(const uint32_t * faultStackAddr = <optimized out>) Generated_Source\PSoC6\pdl\drivers\peripheral\syslib\cy_syslib.c 444 0x100969EE (All)
5 UsageFault_Handler() gcc/startup_psoc6_01_cm4.S 455 0x1008034E (All)
6 <signal handler called>() ?????? ?????? 0xFFFFFFE1 (All)
7 ??() ?????? ?????? 0x584E5F62 (All)
8 __sflush_r() ?????? ?????? 0x1009C2D8 (All)
9 ??() ?????? ?????? 0x77AFFA9C (All)
0x1009C2D8 is in here:
0x1009C2CA E00A b.n 1009c2e2 <__sflush_r+0xce>
0x1009C2CC 6A6C ldr r4, [r5, #24] ; 0x24
0x1009C2CE 69E9 ldr r1, [r5, #1c]
0x1009C2D0 4633 mov r3, r6
0x1009C2D2 463A mov r2, r7
0x1009C2D4 4640 mov r0, r8
0x1009C2D6 47A0 blx r4
0x1009C2D8 1E04 subs r4, r0, #0
0x1009C2DA EBA60604 sub.w r6, r6, r4
0x1009C2DE 4427 add r7, r4
0x1009C2E0 DD17 ble.n 1009c312 <__sflush_r+0xfe>
Registers:
r 0=,0x080304E8,r1=,0x4E657375,r2=,0x100B0188,r3=,0x0000000F,r4=,0x100B00E1,
r5=,0x584E5F62,r6=,0x100B0188,r7=,0x0000000F,r8=,0x0802FA20,r9=,0x080304E8,
r10=,0x0802FA34,r11=,0x7FFFFC00,r12=,0xFFFFFFFF,sp=,0x0802F9EC,lr=,0x1009C841,
pc=,0x584E5F62,xpsr=,0x20070003,msp=,0x0802F9EC,psp=,0x08026F18,
lr=,0x1009C841, is pointing in here:
0x1009C838 D04F beq.n 1009c8da <__sfvwrite_r+0xe6>
0x1009C83A 69E1 ldr r1, [r4, #1c]
0x1009C83C 6A65 ldr r5, [r4, #24] ; 0x24
0x1009C83E 47A8 blx r5
0x1009C840 2800 cmp r0, #0
0x1009C842 DD5B ble.n 1009c8fc <__sfvwrite_r+0x108>
0x1009C844 F8D83008 ldr.w r3, [r8, #8]
0x1009C848 1A1B subs r3, r3, r0
0x1009C84A 4406 add r6, r0
0x1009C84C 1A3F subs r7, r7, r0
0x1009C84E F8C83008 str.w r3, [r8, #8]
0x1009C852 2B00 cmp r3, #0
0x1009C854 D1E9 bne.n 1009c82a <__sfvwrite_r+0x36>