xil_printf - 2023.1 English

Standalone Library Documentation: BSP and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2023-05-16
Version
2023.1 English

xil_printf() is a light-weight implementation of printf. It is much smaller in size (only 1 Kb). It does not have support for floating point numbers. xil_printf() also does not support printing of long (such as 64-bit) numbers.

About format string support:

The format string is composed of zero or more directives: ordinary characters (not %), which are copied unchanged to the output stream; and conversion specifications, each of which results in fetching zero or more subsequent arguments. Each conversion specification is introduced by the character %, and ends with a conversion specifier. In between, there can be (in order) zero or more flags, an optional minimum field width and a optional precision. Supported flag characters are: The character % is followed by zero or more of the following flags:
  • 0: The value should be zero padded. For d, x conversions, the converted value is padded on the left with zeros rather than blanks. If the 0 and - flags both appear, the 0 flag is ignored.
  • The converted value is to be left adjusted on the field boundary. (The default is right justification.) Except for n conversions, the converted value is padded on the right with blanks, rather than on the left with blanks or zeros. A - overrides a 0 if both are given.

About supported field widths

Field widths are represented with an optional decimal digit string (with a nonzero in the first digit) specifying a minimum field width. If the converted value has fewer characters than the field width, it is padded with spaces on the left (or right, if the left-adjustment flag has been given). The supported conversion specifiers are:
  • d: The int argument is converted into a signed decimal notation.
  • l: The int argument is converted into a signed long notation.
  • x: The unsigned int argument is converted to unsigned hexadecimal notation. The letters abcdef are used for x conversions.
  • c: The int argument is converted to an unsigned char, and the resulting character is written.
  • s: The const char* argument is expected to be a pointer to an array of character type (pointer to a string). Characters from the array are written up to (but not including) a terminating NULL character. If a precision is specified, no more than the number specified are written. If a precision s given, no null character needs be present; if the precision is not specified, or is greater than the size of the array, the array must contain a terminating NULL character.
  • p: Used for pointer arguments to display the argument as an address in the hexadecimal digits. Applicable only for 64-bit Arm.

Prototype

void xil_printf(const *char ctrl1,...);