sprintf / _sbrk make error
Hi Tarek,
The semihosting was working in my application while the syscall.c file is exclude from build and in using the linker miscellaneous flags :
-specs=nosys.specs -specs=nano.specs -specs=rdimon.specs -lc -lrdimon
I tried the solution you proposed but it generates link errors.
Here are my steps :
- I removed the linker miscellaneous flags;
- I restore the syscall.c file (it was excluded from build);
Clean + Build but I get the following link errors :
../src/syscalls.c:63:27: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'asm' register char * stack_ptr asm("sp"); ../src/syscalls.c: In function '_sbrk': ../src/syscalls.c:116:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'asm' extern char end asm("end"); ../src/syscalls.c:116:18: warning: implicit declaration of function 'asm' [-Wimplicit-function-declaration] ../src/syscalls.c:121:15: error: 'end' undeclared (first use in this function) heap_end = &end; ../src/syscalls.c:121:15: note: each undeclared identifier is reported only once for each function it appears in ../src/syscalls.c:124:24: error: 'stack_ptr' undeclared (first use in this function) if (heap_end + incr > stack_ptr) make: *** [src/syscalls.o] Error 1
After several trials, I noticed that these errors were linked to the C99 standard.
All errors vanished when C Dialect option is empty unfortunately, the semihosting is not functional :
nothing is displayed in OpenOCD tab.
What is missing?
Thank you for helping