Hello,
i´ve followed all tutorials/threads trying to send printf() to the Debug(Printf)Viewer but not luck untill now. i can see the corrects characters within the ITM Stimulus Port Register 0, so i guess my code is right (i paste it at the buttom of the message) I have also checked and SB10 solder bridge is made in my board.
i´m using ST-LINK/V2 for debbuging, and i also updated the trace setting in Options for target like that:
-> Core Clock to 72MHz -> Trace Enable checked -> ITM Stimulus Ports: www.keil.com/.../ulinkpro_trace_itm_viewer_port0_0.png
Where else should i look when Register are correctly updated but they are not showed in the Debug(Printf)Viewer?
/************************************************************************/
/#include <stdio.h> #include <rt_misc.h> #include "stm32f30x.h" #pragma import(__use_no_semihosting_swi)
struct __FILE { int handle; /* Add whatever you need here */ }; FILE __stdout; FILE __stdin;
int fputc(int ch, FILE *f) { ITM_SendChar(ch); return(ch); }
int fgetc(FILE *f) { char ch; ch = 1; return((int)ch); }
int ferror(FILE *f) { /* Your implementation of ferror */ return EOF; }
void _sys_exit(int return_code) { label: goto label; /* endless loop */ }
PROBLEM SOLVED:
The solder bridge SB10 IS NOT MADE in the STM32F303VCT, no matter what it says in the documentacion.
Afterwards soldering it, printf is working fine.
Seriously? You need separate SWO to read trace regs?