stm32f103rb_hal_blink

Non-blocking, event triggered blink example using HAL library
Index Commits Files Refs README
ModeNameSize
d---------Core.
d---------Drivers.
d---------app.
-rw-r--r--.cproject340L
-rw-r--r--.gitignore55L
-rw-r--r--.mxproject25L
-rw-r--r--.project32L
-rw-r--r--README.md29L
-rw-r--r--STM32F103RBTX_FLASH.ld187L
-rw-r--r--stm32f103rb_hal_blink.cfg43L
-rw-r--r--stm32f103rb_hal_blink.ioc162L

Non-blocking blink example

This is an example/template of a bare metal, event triggered application that runs tasks secuentally for STM32 boards using HAL library, in particular STM32F103RB on NUCLEO-F103RB board.

Execution stack

The main loop calls the main app and then this app executes the attached tasks secuentially in order: task_sensor, task_system and task_actuator.

Debug

In Stm32CubeIDE Project Explorer view right click over the project, then debug configurations. In Debugger tab set Debug probe as ST-LINK (OpenOCD) and after pressing Show generator options setupReset Mode as Software system reset. In Startup tab add 'monitor arm semihosting enable' to the initialization commands. Finally Apply and Close (or Debug).

Running without IDE

By default the code is written to run with the Stm32CubeIDE opened and in debug mode, this by using semihosting. Semihosting is a way to log to the host console via the attached debugger (without using an additional serial port). But if a host console is not detected during initilization the program will halt.

To run code without debug mode or without having the IDE opened semihosting needs to be disabled. This is done by defining the macro LOGGER_CONFIG_USE_SEMIHOSTING as 0 instead of 1 in the file app/logger.h.