Skip to content

Repository files navigation

Lightweight printf stdio manager

LwPRINTF is a lightweight stdio manager optimized for embedded systems. It includes implementation of standard output functions such as printf, vprintf, snprintf, sprintf and vsnprintf in an embedded-systems optimized way.

Open documentation

Features

  • Written in C (C11), compatible with size_t and uintmax_t types for some specifiers
  • Implements output functions compatible with printf, vprintf, snprintf, sprintf and vsnprintf
  • Low-memory footprint, suitable for embedded systems
  • Reentrant access to all API functions
  • Ships with CMSIS-OS, pthread, ThreadX and Win32 system ports
  • Requires single output function to be implemented by user for printf-like API calls
  • Optional functions for operating systems to protect multiple threads printing to the same output stream
  • Allows multiple output stream functions (unlike standard printf which supports only one) to separate parts of application
  • Added additional specifiers vs standard library, including %k for hex byte-array output and engineering notation for floats
  • Optional config to fully replace standard library printf, sprintf and other functions with its own implementation
  • Release-stripped lwprintf_debug and lwprintf_debug_cond macros for debug printouts
  • User friendly MIT license

Contribute

Fresh contributions are always welcome. Simple instructions to proceed:

  1. Fork Github repository
  2. Follow C style & coding rules and use clang-format to format the code
  3. Create a pull request to develop branch with new features or bug fixes

Alternatively you may:

  1. Report a bug
  2. Ask for a feature request

Releases

Sponsor this project

Packages

Used by

Contributors

Languages