#include "stdint.h" #include "stdio.h" #include "stdarg.h" #include "head.h" #include "rtthread.h" #define PRINT_BASE_ADDR *(uint8_t *)0x40000000 int my_putc(int c) { PRINT_BASE_ADDR = c; return c; } int my_puts(const char *s,int len) { for (int i = 0;i < len;i++) { my_putc(s[i]); } return 0; } static char g_print_buff[1024]; int my_printf(const char* fmt, ...) { int len = 0; va_list args; va_start(args, fmt); len = vsnprintf(g_print_buff, 1024, fmt, args); va_end(args); my_puts(g_print_buff, len); return len; } char g_string[] = "string from ram"; void task1(void* par) { (void)par; while (1) { my_printf("task1: %s\n", g_string); rt_thread_delay(500); } } int main() { my_printf("Hello World! %s\n", "Andy"); // cpu_test(); rt_thread_t t = rt_thread_create("task1", task1, 0, 1024, 10, 10); (void)t; rt_thread_startup(t); my_printf("enter while 1\n"); while (1) { my_printf("main: %s\n", g_string); rt_thread_delay(1000); } return 0; }