Devlog: UARTprintf(“%s\n”, hellovar);

(Post from 17.11.2025 (DD.MM.YYYY))

So yes, like the title says, I made a printf, to be fair, thats a couple of days ago, i don’t post directly after i finished something.

My english is still not perfect, but I hope it's understandable.

What i made.

I made a printf function, its a simpler one from the printf you know in C. Without going to deep into details, if its sees a modifyer like %s, it looks into the parameters given with “valist”, this allows me to get an undefined amount of parameters in a function, and takes the next parameter from the list and treat it as a string (in the case of %s). But even it sounds simple enough, it was a bit harder then i thoughed, i didn’t understand valist at first and got confused why it gets promoted to int if its less then 32-bit, even then, now i have it, and it works.

Here you see it in action:

It works more or less the same like “Devlog: UART_print(“Hello, World!);”. It helps a lot with Debugging and Development. Especialy on things that are not always the same and more dynamic.

Then is printf important?

Its very helpfull for debugging, especially because many things in a program aren’t static and can change to value’s you don’t know. With the Option to know at anytime what is in a Variable you can find more easily also bugs.

What did i learn?

I learned about va_arg’s and how to make variables (like Integer or pointer) to transfer to a string, extracting the Numbers and put them together again for the string.

So, what comes next?

I am currently working on the “dtb” (Device Tree Blob) to parse it and to make an Kernel Alocator, this is… in some way hard, but only because its big and information are spreaded, but more about this soon.

Thank you for Reading :D

-Littleclone