ST released oficial tool which is used for uploading of your code to STM32 microcontrollers.
STM32 Cube Programmer tool is working on all common operating systems - Windows, Linux and MacOS.
This software supports SWD and JTAG interfaces and also UART and DFU interfaces.
The STM32 Cube Programmer is used for uploading, verification, erase the memory and set the configuration bits.
Input dat formats: Motorola S19, Intel HEX, ELF and binary files
You can control the software through GUI and also CLI (command-line interface).