From c5f63cb309689c69c83e1645b40504bf6048c504 Mon Sep 17 00:00:00 2001 From: Patrick Zacharias <1475802+Fighter19@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:43:46 +0100 Subject: [PATCH 1/3] Fix detection of PIC32MM family of chips --- toolchain.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/toolchain.cmake b/toolchain.cmake index 86a1429..a72c705 100644 --- a/toolchain.cmake +++ b/toolchain.cmake @@ -76,6 +76,7 @@ list(APPEND MICROCHIP_FAMILIES_16 # known 32-bit MCU families list(APPEND MICROCHIP_FAMILIES_32 + PIC32MM PIC32MX PIC32MZ ) @@ -97,7 +98,7 @@ elseif(MICROCHIP_MCU STREQUAL "generic32") set(MICROCHIP_MCU_MODEL "generic") set(CMAKE_SYSTEM_PROCESSOR "PIC_32") -elseif(MICROCHIP_MCU MATCHES "^(dsPIC|PIC)(32M[XZ]|[0-9]+[A-Z])([A-Z0-9]+)$") +elseif(MICROCHIP_MCU MATCHES "^(dsPIC|PIC)(32M[MXZ]|[0-9]+[A-Z])([A-Z0-9]+)$") set(MICROCHIP_MCU_FAMILY "${CMAKE_MATCH_1}${CMAKE_MATCH_2}") set(MICROCHIP_MCU_MODEL "${CMAKE_MATCH_2}${CMAKE_MATCH_3}") From ce7309a8256c08e9fed5b8d9638d8cf58397aa11 Mon Sep 17 00:00:00 2001 From: Patrick Zacharias <1475802+Fighter19@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:48:16 +0100 Subject: [PATCH 2/3] Specify processor flag in CMAKE_C_FLAGS rather than a compile option When CMake is testing if the compiler works, it will rely on these flags being set. Setting them as compile options considers them too late. --- Modules/Platform/MicrochipMCU-C-XC32.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Platform/MicrochipMCU-C-XC32.cmake b/Modules/Platform/MicrochipMCU-C-XC32.cmake index 9addb1e..ccf975e 100644 --- a/Modules/Platform/MicrochipMCU-C-XC32.cmake +++ b/Modules/Platform/MicrochipMCU-C-XC32.cmake @@ -33,9 +33,9 @@ set(CMAKE_FIND_ROOT_PATH ${MICROCHIP_XC32_PATH}) set(CMAKE_C_COMPILER xc32-gcc) set(MICROCHIP_C_COMPILER_ID XC32) -add_compile_options( +string(APPEND CMAKE_C_FLAGS "-mprocessor=${MICROCHIP_MCU_MODEL}" ) -string(APPEND CMAKE_C_LINK_FLAGS - " -mprocessor=${MICROCHIP_MCU_MODEL}" +string(APPEND CMAKE_CXX_FLAGS + "-mprocessor=${MICROCHIP_MCU_MODEL}" ) From d2afe44eff143a2cf0a1335e78d6dfb8c7ccb26b Mon Sep 17 00:00:00 2001 From: Patrick Zacharias <1475802+Fighter19@users.noreply.github.com> Date: Fri, 14 Mar 2025 12:12:22 +0100 Subject: [PATCH 3/3] XC32: Set the processor flag in CMAKE_C_FLAGS_INIT instead --- Modules/Platform/MicrochipMCU-C-XC32.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Platform/MicrochipMCU-C-XC32.cmake b/Modules/Platform/MicrochipMCU-C-XC32.cmake index ccf975e..3ac6a79 100644 --- a/Modules/Platform/MicrochipMCU-C-XC32.cmake +++ b/Modules/Platform/MicrochipMCU-C-XC32.cmake @@ -33,9 +33,9 @@ set(CMAKE_FIND_ROOT_PATH ${MICROCHIP_XC32_PATH}) set(CMAKE_C_COMPILER xc32-gcc) set(MICROCHIP_C_COMPILER_ID XC32) -string(APPEND CMAKE_C_FLAGS - "-mprocessor=${MICROCHIP_MCU_MODEL}" +string(APPEND CMAKE_C_FLAGS_INIT + " -mprocessor=${MICROCHIP_MCU_MODEL} " ) -string(APPEND CMAKE_CXX_FLAGS - "-mprocessor=${MICROCHIP_MCU_MODEL}" +string(APPEND CMAKE_CXX_FLAGS_INIT + " -mprocessor=${MICROCHIP_MCU_MODEL} " )