Some functions for work with stm32 arm microcontrollers in EMACS.
Video of work: https://youtu.be/M7RBQsq5_lc
- cmake-ide
- python
- cmake
- clang
- st-link https://github.com/texane/stlink //5) https://github.com/SL-RU/STM32CubeMX_cmake
- clone repository to /.emacs.d/stm32
- execute "git submodule update --init" to clone STM32CubeMX_cmake to /.emacs.d/stm32/STM32CubeMX_cmake
- Change paths to yours in stm32.el
- add to your init file (require 'stm32)
- install cmake-ide and configure
WORK IN PROGRESS!!!
- Create STM32CubeMx project and generate it for SW4STM32
- M-x stm32-new-project RET select CubeMX project path
- open main.c
- C-c . C to compile
- connect stlink to your PC
- stm32-run-st-util to start gdb server
- start GDB debugger with stm32-start-gdb
- in gdb) "load" to upload file to MC and "cont" to run.For more see https://github.com/texane/stlink
- good luck!
After CubeMx project regeneration or adding new libraries or new sources you need to do M-x stm32-cmake-build
In cmsis_gcc.h replace line:
__ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc");
with lines:
#ifdef __clang__
__builtin_arm_set_fpscr(0xdeadbeef);
#else
__ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc");
#endif
This program is distributed under the terms of GNU General Public License, version 3 or any later version. See COPYING for details.