@@ -99,13 +99,30 @@ def is_pio_build():
9999    ASFLAGS = env .get ("CCFLAGS" , [])[:],
100100)
101101
102+ # add platform_def file GCC format to CPPDEFINES 
103+ def  add_defines_from_platform_def (file ):
104+     with  open (file , "r" ) as  fp :
105+         lines  =  fp .readlines ()
106+     for  line  in  lines :
107+         line  =  line .strip ()
108+         if  line .startsWith ("-D" ):
109+             defn  =  line [2 :].split ('=' )
110+             env .Append ( CPPDEFINES = [ (defn [0 ], defn [1 ]) ] )
111+ 
112+ add_defines_from_platform_def (os .path .join (FRAMEWORK_DIR , "lib" , "platform_def.txt" ))
113+ add_defines_from_platform_def (os .path .join (FRAMEWORK_DIR , "lib" , chip , "platform_def.txt" ))
114+ env .Append (
115+     CPPDEFINES = [
116+         ("ARDUINO" , 10810 ),
117+         "ARDUINO_ARCH_RP2040" ,
118+         ("F_CPU" , "$BOARD_F_CPU" ),
119+         ("BOARD_NAME" , '\\ "%s\\ "'  %  env .subst ("$BOARD" )),
120+     ]
121+ )
122+ 
102123if  chip  ==  "rp2040" :
103124    env .Append (
104125        CPPDEFINES = [
105-             ("ARDUINO" , 10810 ),
106-             "ARDUINO_ARCH_RP2040" ,
107-             ("F_CPU" , "$BOARD_F_CPU" ),
108-             ("BOARD_NAME" , '\\ "%s\\ "'  %  env .subst ("$BOARD" )),
109126            "ARM_MATH_CM0_FAMILY" ,
110127            "ARM_MATH_CM0_PLUS" ,
111128            "TARGET_RP2040" ,
@@ -118,82 +135,14 @@ def is_pio_build():
118135elif  (chip  ==  "rp2350" ) or  (chip  ==  "rp2350-riscv" ):
119136    env .Append (
120137        CPPDEFINES = [
121-             ("ARDUINO" , 10810 ),
122-             "ARDUINO_ARCH_RP2040" ,
123-             ("F_CPU" , "$BOARD_F_CPU" ),
124-             ("BOARD_NAME" , '\\ "%s\\ "'  %  env .subst ("$BOARD" )),
125-             ("CFG_TUSB_MCU" , "OPT_MCU_RP2040" ),
126-             ("CFG_TUSB_OS" , "OPT_OS_PICO" ),
127-             ("LIB_BOOT_STAGE2_HEADERS" , "1" ),
128-             ("LIB_PICO_ATOMIC" , "1" ),
129-             ("LIB_PICO_BIT_OPS" , "1" ),
130-             ("LIB_PICO_BIT_OPS_PICO" , "1" ),
131-             ("LIB_PICO_CLIB_INTERFACE" , "1" ),
132-             ("LIB_PICO_CRT0" , "1" ),
133-             ("LIB_PICO_CXX_OPTIONS" , "1" ),
134-             ("LIB_PICO_DIVIDER" , "1" ),
135-             ("LIB_PICO_DIVIDER_COMPILER" , "1" ),
136-             ("LIB_PICO_DOUBLE" , "1" ),
137-             ("LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION" , "1" ),
138-             ("LIB_PICO_FLOAT" , "1" ),
139-             ("LIB_PICO_INT64_OPS" , "1" ),
140-             ("LIB_PICO_INT64_OPS_COMPILER" , "1" ),
141-             ("LIB_PICO_MEM_OPS" , "1" ),
142-             ("LIB_PICO_MEM_OPS_COMPILER" , "1" ),
143-             ("LIB_PICO_NEWLIB_INTERFACE" , "1" ),
144-             ("LIB_PICO_PLATFORM" , "1" ),
145-             ("LIB_PICO_PLATFORM_COMPILER" , "1" ),
146-             ("LIB_PICO_PLATFORM_PANIC" , "1" ),
147-             ("LIB_PICO_PLATFORM_SECTIONS" , "1" ),
148-             ("LIB_PICO_RUNTIME" , "1" ),
149-             ("LIB_PICO_RUNTIME_INIT" , "1" ),
150-             ("LIB_PICO_STANDARD_BINARY_INFO" , "1" ),
151-             ("LIB_PICO_STANDARD_LINK" , "1" ),
152-             ("LIB_PICO_SYNC" , "1" ),
153-             ("LIB_PICO_SYNC_CRITICAL_SECTION" , "1" ),
154-             ("LIB_PICO_SYNC_MUTEX" , "1" ),
155-             ("LIB_PICO_SYNC_SEM" , "1" ),
156-             ("LIB_PICO_TIME" , "1" ),
157-             ("LIB_PICO_TIME_ADAPTER" , "1" ),
158-             ("LIB_PICO_UNIQUE_ID" , "1" ),
159-             ("LIB_PICO_UTIL" , "1" ),
160-             ("LIB_TINYUSB_BOARD" , "1" ),
161-             ("LIB_TINYUSB_DEVICE" , "1" ),
162-             ("PICO_32BIT" , "1" ),
163-             ("PICO_BOARD" , '\\ "pico2\\ "' ),
164-             ("PICO_BUILD" , "1" ),
165-             ("PICO_COPY_TO_RAM" , "0" ),
166-             ("PICO_CXX_ENABLE_EXCEPTIONS" , "0" ),
167-             ("PICO_NO_FLASH" , "0" ),
168-             ("PICO_NO_HARDWARE" , "0" ),
169-             ("PICO_ON_DEVICE" , "1" ),
170-             ("PICO_RP2040_USB_DEVICE_ENUMERATION_FIX" , "1" ),
171-             ("PICO_RP2040_USB_DEVICE_UFRAME_FIX" , "1" ),
172138            ("PICO_RP2350" , "1" ),
173-             ("PICO_USE_BLOCKED_RAM" , "0" ),
174139            "TARGET_RP2350" ,
175140            ("PICO_RP2350" , "1" ),
176141            # at this point, the main.py builder script hasn't updated upload.maximum_size yet, 
177142            # so it's the original value for the full flash. 
178143            ("PICO_FLASH_SIZE_BYTES" , board .get ("upload.maximum_size" ))
179144        ]
180145    )
181-     if  chip  ==  "rp2350" :
182-         env .Append (
183-             CPPDEFINES = [
184-                 ("LIB_PICO_DOUBLE_PICO" , "1" ),
185-                 ("LIB_PICO_FLOAT_PICO" , "1" ),
186-                 ("LIB_PICO_FLOAT_PICO_VFP" , "1" )
187-             ]
188-         )
189-     elif  chip  ==  "rp2350-riscv" :
190-         env .Append (
191-             CPPDEFINES = [
192-                 ("LIB_PICO_DOUBLE_COMPILER" , "1" ),
193-                 ("LIB_PICO_FLOAT_COMPILER" , "1" ),
194-                 ("PICO_RISCV" , "1" )
195-             ]
196-         )
197146
198147if  chip  ==  "rp2040" :
199148    toolopts  =  ["-march=armv6-m" , "-mcpu=cortex-m0plus" , "-mthumb" ]
0 commit comments