Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mkdir STM32_example_cmake
- cd STM32_example_cmake
- git clone --recurse-submodules https://github.com/STMicroelectronics/STM32CubeF1
- git clone https://github.com/ObKo/stm32-cmake
- mkdir blink
- cd blink
- cat <<EOF >> blink.c
- #include "stm32f1xx.h"
- #include "stm32f1xx_ll_bus.h"
- #include "stm32f1xx_ll_gpio.h"
- void GPIO_config(void) {
- LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
- LL_GPIO_SetPinMode(GPIOC, LL_GPIO_PIN_13, LL_GPIO_MODE_OUTPUT);
- LL_GPIO_SetPinOutputType(GPIOC, LL_GPIO_PIN_13, LL_GPIO_OUTPUT_PUSHPULL);
- LL_GPIO_SetPinSpeed(GPIOC, LL_GPIO_PIN_13, LL_GPIO_SPEED_FREQ_LOW);
- }
- int main(void) {
- GPIO_config();
- for (;;) {
- LL_GPIO_ResetOutputPin(GPIOC, LL_GPIO_PIN_13);
- for (volatile int i = 0; i < 100000; i++);
- LL_GPIO_SetOutputPin(GPIOC, LL_GPIO_PIN_13);
- for (volatile int i = 0; i < 100000; i++);
- }
- }
- EOF
- cat <<EOF >> CMakeLists.txt
- cmake_minimum_required(VERSION 3.16)
- project(stm32-blink C ASM)
- set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
- find_package(CMSIS COMPONENTS STM32F1 REQUIRED)
- find_package(HAL COMPONENTS STM32F1 LL_RCC LL_GPIO REQUIRED)
- add_executable(blink blink.c)
- target_link_libraries(blink
- HAL::STM32::F1::LL_RCC
- HAL::STM32::F1::LL_GPIO
- CMSIS::STM32::F103C8
- STM32::NoSys
- )
- stm32_generate_hex_file(blink)
- stm32_print_size_of_target(blink)
- EOF
- mkdir build
- cd build
- 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 ..
- make
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement