Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


You are viewing a reply to printf through uart  

printf through uart

France
In fact there is a simpler way to do that; all these functions are already implemented in the syscalls.c file provided in projects created by Ac6 System Workbench. The only think you need to provide are the blocking USART read/write routins that should be defined as:
int __io_putchar(int ch) {
    // Code to write character 'ch' on the UART
}

int __io_getchar(void) {
    // Code to read a character from the UART
}

The only thing that was not (yet) done by the provided code s to allow to open several “files” on various devices and write or read from them. For this to work you should just redefine _open, _read and _write, probably by modifying the syscalls.c file, and this will work seamlessly.

Furthermore, if you use some RTOS (like FreeRTOS) you can write your low-level I/O routines to sleep while waiting characters and send output using a buffer and interrupts; probably this would need modifying the _read and _write routines in a quite natural way.

Bernard