int main (int argc, char* argv[]) { const char n[] = "Hello World!\n"; printf_normal(n); printf_syscall(n); printf_write(n); }
void debug_printf(char *format,...) { #if 1 va_list opt; static char out[32] ATTRIBUTE_ALIGN(32)=" "; int val; char *s; va_start(opt, format); int fd; int message; static int one=1; static u32 buffer[8]; static u32 queuehandle2=-1; if(one) { queuehandle2 = os_message_queue_create(buffer, 8); one=0; } else os_message_queue_receive(queuehandle2, (void *)&message, 0); internal=internal_debug_printf; if(internal & 2) goto salir; if(index_dev & 1) { if(internal) fd = FAT_Open("usb:/ffs_log.txt" ,O_WRONLY | O_APPEND); else fd=os_open("usb:/ffs_log.txt" ,O_WRONLY | O_APPEND); } else { if(internal) fd = FAT_Open("sd:/ffs_log.txt" ,O_WRONLY | O_APPEND); else fd=os_open("sd:/ffs_log.txt" ,O_WRONLY | O_APPEND); } if(fd<0) goto salir; while(format[0]) { if(format[0]!='%') {out[0]=*format++; printf_write(fd, out, strlen(out));} else { format++; switch(format[0]) { case 'd': case 'i': val=va_arg(opt,int); int_char(val); printf_write(fd, mem_cad, strlen(mem_cad)); break; case 'u': val=va_arg(opt, unsigned); uint_char(val); //printf_write(fd, mem_cad, strlen(mem_cad)); printf_write(fd, mem_cad, strlen(mem_cad)); break; case 'x': val=va_arg(opt,int); hex_char((u32) val); printf_write(fd, mem_cad, strlen(mem_cad)); break; case 's': s=va_arg(opt,char *); printf_write(fd, s, strlen(s)); break; } format++; } } va_end(opt); if(internal) FAT_Close(fd); else os_close(fd); salir: os_message_queue_send(queuehandle2, 0, 0); #endif }