From c7eddf71bb3bc75ab1163e3edb41b976c3e48fb3 Mon Sep 17 00:00:00 2001 From: dragonmux Date: Wed, 29 Nov 2023 00:06:10 +0000 Subject: [PATCH] stm32/f1: Created a Meson build system for the STM32F1 series support --- lib/stm32/f1/meson.build | 102 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 lib/stm32/f1/meson.build diff --git a/lib/stm32/f1/meson.build b/lib/stm32/f1/meson.build new file mode 100644 index 0000000000..7987de6e9e --- /dev/null +++ b/lib/stm32/f1/meson.build @@ -0,0 +1,102 @@ +# This file is part of the libopencm3 project. +# +# Copyright (C) 2023 1BitSquared +# Written by Rachel Mant +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +stm32f1_cm3 = declare_dependency( + sources: cm3_sources, + include_directories: cm3_includes, + dependencies: stm32f1_vector_nvic, +) + +# Sources specific to the F1 series +libstm32f1_sources = files( + 'adc.c', + 'flash.c', + 'gpio.c', + #'i2c.c', # XXX: This source is unused for some reason + 'rcc.c', + 'rtc.c', + 'timer.c', +) + +libstm32f1_compile_args = [ + '-mcpu=cortex-m3', + '-mthumb', + '-DSTM32F1', +] + +# Build a static library for the target platform +libstm32f1 = static_library( + 'opencm3_stm32f1', + [ + libstm32f1_sources, + libstm32_adc_v1_sources, + libstm32_crc_v1_sources, + libstm32_dac_v1_sources, + libstm32_desig_v1_sources, + libstm32_dma_sources, + libstm32_exti_sources, + libstm32_flash_f01_sources, + libstm32_gpio_sources, + libstm32_iwdg_sources, + libstm32_i2c_v1_sources, + libstm32_pwr_v1_sources, + libstm32_rcc_sources, + libstm32_spi_v1_sources, + libstm32_timer_sources, + libstm32_usart_f124_sources, + libstm32_can_sources, + usb_stm32_f107_sources, + ethernet_common_sources, + ethernet_stm32_sources, + ethernet_phy_ksz80x1_sources, + ], + c_args: libstm32f1_compile_args, + include_directories: common_includes, + implicit_include_directories: false, + dependencies: [ + stm32f1_cm3, + usb_common, + usb_stm32_dwc, + libstm32_usb_fs_v1, + ], + pic: false, +) + +# Make the dependency available to use +libopencm3_stm32f1 = declare_dependency( + compile_args: libstm32f1_compile_args, + include_directories: common_includes, + link_with: libstm32f1, + link_args: [ + f'-L@locm3_ld_script_path@', + ], +) + +meson.override_dependency('opencm3_stm32f1', libopencm3_stm32f1)