From 46d1e933f5c1b658fa544f5bfac4f871ab3675cb Mon Sep 17 00:00:00 2001 From: andy <1414772332@qq.com> Date: Thu, 17 Apr 2025 19:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0printf=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- riscv/main.c | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/riscv/main.c b/riscv/main.c index 2f7ce0b..efc1d72 100644 --- a/riscv/main.c +++ b/riscv/main.c @@ -1,5 +1,6 @@ #include "stdint.h" - +#include "stdio.h" +#include "stdarg.h" #define PRINT_BASE_ADDR *(uint8_t *)0x40000000 @@ -9,29 +10,44 @@ int my_putc(int c) { } -int my_puts(char *s) { - while (*s) { - my_putc(*s); - s++; +int my_puts(char *s,int len) { + for (int i = 0;i < len;i++) { + my_putc(s[i]); } - // for (int i = 0;i < 10;i++) { - // my_putc(*s); - // s++; - // } 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; +} + + int add(int a, int b) { return a+b; } + +char g_string[] = "string from ram"; + + int main() { - // int a=1; - // int b=2; - // int c = add(a, b); - my_puts("Hello World!\n"); + int a=1; + int b=2; + int c = add(a, b); + my_printf("Hello World! %s\n", "Andy"); + my_printf("add(%d, %d)=%d\n", a, b, c); + a = 67;b = 78; + my_printf("mul(%d, %d)=%d\n", a, b, a * b); + my_printf("ram_val test: %s\n", g_string); return 0; } \ No newline at end of file