Skip to content

Commit 4615254

Browse files
committed
feat: added user handles to pick board features.
Including the handling of default values given the capabilities of the board. also: - misc bug fixes - argparse
1 parent d9c69f2 commit 4615254

12 files changed

+24235
-366
lines changed

CI/update/templates/boards_db.cmake

+26-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ set({{pnum}}_VARIANT_PATH "${CMAKE_CURRENT_LIST_DIR}/../variants/{{config.build.
66
set({{pnum}}_MAXSIZE {{config.upload.maximum_size}})
77
set({{pnum}}_MAXDATASIZE {{config.upload.maximum_data_size}})
88
set({{pnum}}_MCU {{config.build.mcu}})
9-
{% if config._fpconf != "-" %}
10-
set({{pnum}}_FPCONF {{config._fpconf}})
11-
{% endif %}
9+
set({{pnum}}_FPCONF "{{config._fpconf}}")
1210
add_library({{pnum}} INTERFACE)
1311
target_compile_options({{pnum}} INTERFACE
1412
"SHELL:{{config.build.st_extra_flags}}"
@@ -45,4 +43,29 @@ target_link_libraries({{pnum}} INTERFACE
4543
{{config.build.cmsis_lib_gcc}}
4644
)
4745

46+
{% for label,subconfig in config.menu.xserial | dictsort %}
47+
add_library({{pnum}}_serial_{{label}} INTERFACE)
48+
target_compile_options({{pnum}}_serial_{{label}} INTERFACE
49+
"SHELL:{{subconfig.build.xSerial}}"
50+
)
51+
{% endfor %}
52+
{% for label,subconfig in config.menu.usb | dictsort %}
53+
add_library({{pnum}}_usb_{{label}} INTERFACE)
54+
target_compile_options({{pnum}}_usb_{{label}} INTERFACE
55+
"SHELL:{{subconfig.build.enable_usb}}"
56+
)
57+
{% endfor %}
58+
{% for label,subconfig in config.menu.xusb | dictsort %}
59+
add_library({{pnum}}_xusb_{{label}} INTERFACE)
60+
target_compile_options({{pnum}}_xusb_{{label}} INTERFACE
61+
"SHELL:{{subconfig.build.usb_speed}}"
62+
)
63+
{% endfor %}
64+
{% for label,subconfig in config.menu.virtio | dictsort %}
65+
add_library({{pnum}}_virtio_{{label}} INTERFACE)
66+
target_compile_options({{pnum}}_virtio_{{label}} INTERFACE
67+
"SHELL:{{subconfig.build.enable_virtio}}"
68+
)
69+
{% endfor %}
70+
4871
{% endfor %}

CMakeLists.txt

+4-105
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@ include(ensure_CMSIS)
77
project("Arduino_Core_STM32" CXX C ASM)
88

99

10-
set(FEAT_XSERIAL "GENERIC" CACHE STRING "USART support")
11-
set(FEAT_USB "NONE" CACHE STRING "USB support")
12-
set(FEAT_XUSB "FS" CACHE STRING "USB speed")
1310
set(FEAT_NANOC ON CACHE BOOL "Use nano libc?")
1411
set(FEAT_FPF OFF CACHE BOOL "nanolibc: enable %f in printf?")
1512
set(FEAT_FSF OFF CACHE BOOL "nanolibc: enable %f in scanf?")
16-
set(FEAT_VIRTIO "DISABLED" CACHE STRING "Virtual serial support")
1713
set(FEAT_TIMER ON CACHE BOOL "Timer support")
1814

1915
set(BUILD_OPT "s" CACHE STRING "Optimization level")
@@ -22,9 +18,6 @@ set(BUILD_LTO OFF CACHE BOOL "Enable Link-Time-Optimisations")
2218
set(BUILD_RELPATH ON CACHE BOOL "make __FILE__ be relative instead of absolute")
2319
set(BUILD_NDEBUG ON CACHE BOOL "define the NDEBUG macro?")
2420

25-
set(USB_PID 0)
26-
set(USB_VID 0)
27-
2821

2922
set(BUILD_CORE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cores/arduino")
3023
set(BUILD_SYSTEM_PATH "${CMAKE_CURRENT_SOURCE_DIR}/system")
@@ -47,67 +40,6 @@ if(${BUILD_NDEBUG})
4740
add_compile_definitions(base_config INTERFACE NDEBUG)
4841
endif()
4942

50-
# configuration specifics
51-
if (${FEAT_XSERIAL} STREQUAL "GENERIC")
52-
target_compile_definitions(base_config INTERFACE
53-
HAL_UART_MODULE_ENABLED
54-
)
55-
elseif (${FEAT_XSERIAL} STREQUAL "NONE")
56-
target_compile_definitions(base_config INTERFACE
57-
HAL_UART_MODULE_ENABLED
58-
HWSERIAL_NONE
59-
)
60-
elseif (${FEAT_XSERIAL} STREQUAL "DISABLED")
61-
# nothing
62-
else()
63-
message(SEND_ERROR "Bad value for FEAT_XSERIAL: got `${FEAT_XSERIAL}`, expected GENERIC, NONE or DISABLED.")
64-
endif()
65-
66-
# define USB_SPEED
67-
if (${FEAT_XUSB} STREQUAL "FS")
68-
set(USB_SPEED "")
69-
elseif (${FEAT_XUSB} STREQUAL "HS")
70-
set(USB_SPEED "USE_USB_HS")
71-
elseif (${FEAT_XUSB} STREQUAL "HSFS")
72-
set(USB_SPEED "USE_USB_HS;USE_USB_HS_IN_FS")
73-
else()
74-
message(SEND_ERROR "Bad value for FEAT_XUSB: got `${FEAT_XUSB}`, expected FS, HS or HSFS.")
75-
endif()
76-
77-
# consume USB_SPEED
78-
if (${FEAT_USB} STREQUAL "NONE")
79-
#nothing
80-
elseif (${FEAT_USB} STREQUAL "CDCGEN")
81-
target_compile_definitions(base_config INTERFACE
82-
USBCON
83-
${USB_SPEED}
84-
USBD_VID=${USB_VID}
85-
USBD_PID=${USB_PID}
86-
HAL_PCD_MODULE_ENABLED
87-
USBD_USE_CDC
88-
)
89-
elseif (${FEAT_USB} STREQUAL "CDC")
90-
target_compile_definitions(base_config INTERFACE
91-
USBCON
92-
${USB_SPEED}
93-
USBD_VID=${USB_VID}
94-
USBD_PID=${USB_PID}
95-
HAL_PCD_MODULE_ENABLED
96-
USBD_USE_CDC
97-
DISABLE_GENERIC_SERIALUSB
98-
)
99-
elseif (${FEAT_USB} STREQUAL "HID")
100-
target_compile_definitions(base_config INTERFACE
101-
USBCON
102-
${USB_SPEED}
103-
USBD_VID=${USB_VID}
104-
USBD_PID=${USB_PID}
105-
HAL_PCD_MODULE_ENABLED
106-
USBD_USE_HID_COMPOSITE
107-
)
108-
else()
109-
message(SEND_ERROR "Bad value for FEAT_USB: got `${FEAT_USB}`, expected NONE, CDCGEN, CDC or HID.")
110-
endif()
11143

11244
if (${FEAT_NANOC})
11345
target_link_options(base_config INTERFACE
@@ -125,43 +57,6 @@ if (${FEAT_NANOC})
12557
endif()
12658
endif()
12759

128-
if (${FEAT_VIRTIO} STREQUAL "DISABLED")
129-
# nothing
130-
elseif (${FEAT_VIRTIO} STREQUAL "GENERIC")
131-
target_compile_definitions(base_config INTERFACE
132-
VIRTIOCON
133-
NO_ATOMIC_64_SUPPORT
134-
METAL_INTERNAL
135-
METAL_MAX_DEVICE_REGIONS=2
136-
VIRTIO_SLAVE_ONLY
137-
VIRTIO_LOG
138-
)
139-
target_include_directories(base_config INTERFACE
140-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP
141-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/open-amp/lib/include
142-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/libmetal/lib/include
143-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/virtual_driver
144-
)
145-
elseif (${FEAT_VIRTIO} STREQUAL "ENABLED")
146-
target_compile_definitions(base_config INTERFACE
147-
VIRTIOCON
148-
NO_ATOMIC_64_SUPPORT
149-
METAL_INTERNAL
150-
METAL_MAX_DEVICE_REGIONS=2
151-
VIRTIO_SLAVE_ONLY
152-
VIRTIO_LOG
153-
DISABLE_GENERIC_SERIALVIRTIO
154-
)
155-
target_include_directories(base_config INTERFACE
156-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP
157-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/open-amp/lib/include
158-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/libmetal/lib/include
159-
${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/virtual_driver
160-
)
161-
else()
162-
message(SEND_ERROR "Bad value for FEAT_VIRTIO: got `${FEAT_VIRTIO}`, expected DISABLED, GENERIC or ENABLED.")
163-
endif()
164-
16560
if (${FEAT_TIMER})
16661
target_compile_definitions(base_config INTERFACE
16762
HAL_TIM_MODULE_ENABLE
@@ -241,6 +136,10 @@ target_include_directories(base_config INTERFACE
241136
"${CMSIS5_PATH}/CMSIS/DSP/PrivateInclude"
242137
"${CMSIS5_PATH}/CMSIS/Core/Include/"
243138
"${CMSIS5_PATH}/CMSIS"
139+
"${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP"
140+
"${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/open-amp/lib/include"
141+
"${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/libmetal/lib/include"
142+
"${BUILD_SYSTEM_PATH}/Middlewares/OpenAMP/virtual_driver"
244143

245144
"${BUILD_LIB_PATH}/SrcWrapper/src"
246145
)

0 commit comments

Comments
 (0)