Hay everybody,
I am working with the S32 Studio on a S32R274 Processor.
I have the issue that sprintf is not working properly and saw that there are already many (old) threads about this.
In one of them a relation between the sbrk function an the sprintf was mentioned. This seems important to me, as I was facing the following error:
C:/NXP/S32DS_Power_v2017.R1/Cross_Tools/powerpc-eabivle-4_9/powerpc-eabivle/newlib/lib/e200z4/fp\libnosys.a(sbrk.o): In function `sbrk':
sbrk.c:(.text.sbrk+0x10): undefined reference to `end'
sbrk.c:(.text.sbrk+0x16): undefined reference to `end'
collect2.exe: error: ld returned 1 exit status
and solved it by changing the sections.ld file to:
 /* Core 0 stack */
 .c0_stack_and_heap (NOLOAD) : ALIGN(16) 
 {
 __HEAP = . ;
 . += __C0_HEAP_SIZE ;
 PROVIDE (_end = . );
 PROVIDE (end = . ); 
 __HEAP_END = . ;
 
 _stack_end = . ;
 . += __C0_STACK_SIZE ;
 _stack_addr = . ;
 __SP_INIT = . ;
 } > c0_stack_and_heap
Building the Project worked great, but I faced IVOR1 errors during runtime.
I found, that:
char str[80];
char test_str_1[] = "test_1";
char test_str_2[] = "test_2";
int test1 = 1;
int test2 = 2;
sprintf(str, "%s", test_str_1);
worked for every library, but:
sprintf(str, "%02i%02i", test1, test2);
only worked with the "newlib_nano no I/O" library, whereas:
sprintf(str, "%s%s", test_str_1, test_str_2);
Did not work for any library.
Do you have any idea, why sprintf is not working?
Thanks and best regards,
Roger
 
					
				
		
 jiri_kral
		
			jiri_kral
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi Jiri,
Thanks for your fast response and the test project, it helped me to solve the problem.
Also at my S32 Studio your test project worked well, so I compared all settings and ended up that the projects mainly differ in the chosen library. I did not use test the ewl_c library because i had build errors with the "abs" function. So i changed all my abs(x) calls to (int)fabs((double)x) ones, which worked, because fabs is in the math.h library.
Afterwards building was possible and also the sprintf command worked.
Best regards,
Roger
