Inspired by the article on Habr.
Software required:
- STM32 Cube MX
- Cmake 3.8+
- ARM GCC compiler
- GCC compiler for Linux, or Visual Studio 16 2019 for Windows
- mingw32-makefile (only for Windows)
- Baical server executable
- uP7 library archive
Hardware required:
- WeAct STM32F411 MiniF4 ("blackpill")
.
|-- up7_client : STM32 USB-CDC device with uP7 library integrated
| |-- Core, Drivers, Middlewares, USB_DEVICE : directories generated by STM32Cube
| |-- startup_stm32f411xe.s, STM32F411CEUx_FLASH.ld : toolchain files generated by STM32Cube
| |-- Makefile, up7_client.ioc, .mxproject : project files generated by STM32Cube
| |-- CMakeLists.txt, gcc_cm4f.cmake, stm32cube.cmake : custom CMake scripts to wrap over STM32Cube project
| |-- App : directory with source files of the demo application
| `-- up7 : uP7lib files
| |-- lib : library sources
| `-- preproc : directory for the preprocessor output (originally contains an .xml file only)
`-- up7_utils : Utilities to make demo work
|-- P7lib, uP7lib, uP7proxyLib : libraries from the original uP7 archive
|-- uP7preProcessor : preprocessor tool to generate some headers and meta information for server
`-- up7_serial_proxy : custom proxy server to make a bridge between USB-CDC serial port and Baical UDP port
-
Build utilities first:
cd up7_utils ./cmake_build.sh
-
Then build STM32 client:
cd up7_client ./cmake_build.sh
-
Flash STM32 firmware in the way you like (via bootloader, Openocd, ST-Link utility or similar).
-
Run Baical server executable
-
Run proxy server (run executable without arguments to see the help):
cd up7_utils/build/up7_serial_proxy ./up7_serial_proxy ../../../up7_client/up7/preproc /dev/ttyACM0 115200 1000 127.0.0.1 9009
-
If all is good you will see online client in the Baical main window