--- /dev/null
+The UprintC component uses the uprintf() function. The MSP430 libc provides
+uprintf(), which can be trivially created for any other platform. The benefits
+of uprintf are:
+
+* No internal buffer; data are written as the format string is parsed.
+* By using a pointer to a putc() function, the function is usable for
+ multiple UARTs, when appropriate.
+
+An example of using UprintC is shown below.
+
+configuration AppC {
+ ...
+ components PlatformUartC as UartC;
+ AppP.UartResource -> UartC;
+ AppP.UartByte -> UartC;
+
+ components new UprintC();
+ AppP.Uprint -> UprintC;
+ UprintC.UartByte -> UartC;
+ ...
+}
+
+module AppP {
+ ...
+ #define cprintf(fmt, args...) uprintf(call Uprint.uptr(), fmt, ## args)
+ ...
+ cprintf("Hello, world!\r\n");
+ ...
+}