Advertisement
Guest User

Untitled

a guest
Mar 20th, 2024
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. mkdir STM32_example_cmake
  2. cd STM32_example_cmake
  3. git clone --recurse-submodules https://github.com/STMicroelectronics/STM32CubeF1
  4. git clone https://github.com/ObKo/stm32-cmake
  5. mkdir blink
  6. cd blink
  7.  
  8. cat <<EOF >> blink.c
  9. #include "stm32f1xx.h"
  10. #include "stm32f1xx_ll_bus.h"
  11. #include "stm32f1xx_ll_gpio.h"
  12.  
  13. void GPIO_config(void) {
  14. LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
  15. LL_GPIO_SetPinMode(GPIOC, LL_GPIO_PIN_13, LL_GPIO_MODE_OUTPUT);
  16. LL_GPIO_SetPinOutputType(GPIOC, LL_GPIO_PIN_13, LL_GPIO_OUTPUT_PUSHPULL);
  17. LL_GPIO_SetPinSpeed(GPIOC, LL_GPIO_PIN_13, LL_GPIO_SPEED_FREQ_LOW);
  18. }
  19.  
  20. int main(void) {
  21. GPIO_config();
  22.  
  23. for (;;) {
  24. LL_GPIO_ResetOutputPin(GPIOC, LL_GPIO_PIN_13);
  25. for (volatile int i = 0; i < 100000; i++);
  26. LL_GPIO_SetOutputPin(GPIOC, LL_GPIO_PIN_13);
  27. for (volatile int i = 0; i < 100000; i++);
  28. }
  29. }
  30. EOF
  31.  
  32. cat <<EOF >> CMakeLists.txt
  33. cmake_minimum_required(VERSION 3.16)
  34.  
  35. project(stm32-blink C ASM)
  36. set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  37.  
  38. find_package(CMSIS COMPONENTS STM32F1 REQUIRED)
  39. find_package(HAL COMPONENTS STM32F1 LL_RCC LL_GPIO REQUIRED)
  40.  
  41. add_executable(blink blink.c)
  42. target_link_libraries(blink
  43. HAL::STM32::F1::LL_RCC
  44. HAL::STM32::F1::LL_GPIO
  45. CMSIS::STM32::F103C8
  46. STM32::NoSys
  47. )
  48. stm32_generate_hex_file(blink)
  49. stm32_print_size_of_target(blink)
  50. EOF
  51.  
  52. mkdir build
  53. cd build
  54. cmake -DCMAKE_TOOLCHAIN_FILE=../../STM32_example_cmake/stm32-cmake/cmake/stm32_gcc.cmake -DSTM32_CUBE_F1_PATH=../../STM32_example_cmake/STM32CubeF1/ -DCMAKE_BUILD_TYPE=Release ..
  55. make
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement