Skip to content

Commit f41fd9f

Browse files
Refactor cmake for define reuse, update p.io scripts
1 parent b19288f commit f41fd9f

File tree

8 files changed

+51
-67
lines changed

8 files changed

+51
-67
lines changed

lib/rp2350-riscv/libipv4-big.a

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

lib/rp2350-riscv/libipv4-ipv6.a

0 Bytes
Binary file not shown.

lib/rp2350-riscv/libipv4.a

0 Bytes
Binary file not shown.

lib/rp2350-riscv/libpico.a

0 Bytes
Binary file not shown.

tools/libpico/CMakeLists.txt

Lines changed: 15 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,18 @@ pico_sdk_init()
3333

3434
add_library(common-${cpu} INTERFACE)
3535

36+
if (${cpu} MATCHES "rp2350$")
37+
set(xcda
38+
LIB_PICO_DOUBLE_PICO=1
39+
LIB_PICO_FLOAT_PICO=1
40+
LIB_PICO_FLOAT_PICO_VFP=1)
41+
elseif (${cpu} MATCHES "rp2350-riscv$")
42+
set(xcda
43+
LIB_PICO_DOUBLE_COMPILER=1
44+
LIB_PICO_FLOAT_COMPILER=1
45+
PICO_RISCV=1)
46+
endif()
47+
3648
if (${cpu} MATCHES "rp2040")
3749
set(xcd
3850
PICO_RP2040_B0_SUPPORTED=1
@@ -45,7 +57,7 @@ if (${cpu} MATCHES "rp2040")
4557
PICO_DOUBLE_SUPPORT_ROM_V1=1
4658
PICO_RP2040=1
4759
PICO_CYW43_SUPPORTED=1)
48-
elseif (${cpu} MATCHES "rp2350$")
60+
elseif (${cpu} MATCHES "rp2350")
4961
set(xcd
5062
CFG_TUSB_DEBUG=0
5163
CFG_TUSB_MCU=OPT_MCU_RP2040
@@ -60,66 +72,8 @@ elseif (${cpu} MATCHES "rp2350$")
6072
LIB_PICO_DIVIDER=1
6173
LIB_PICO_DIVIDER_COMPILER=1
6274
LIB_PICO_DOUBLE=1
63-
LIB_PICO_DOUBLE_PICO=1
6475
LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1
6576
LIB_PICO_FLOAT=1
66-
LIB_PICO_FLOAT_PICO=1
67-
LIB_PICO_FLOAT_PICO_VFP=1
68-
LIB_PICO_INT64_OPS=1
69-
LIB_PICO_INT64_OPS_COMPILER=1
70-
LIB_PICO_MEM_OPS=1
71-
LIB_PICO_MEM_OPS_COMPILER=1
72-
LIB_PICO_NEWLIB_INTERFACE=1
73-
LIB_PICO_PLATFORM=1
74-
LIB_PICO_PLATFORM_COMPILER=1
75-
LIB_PICO_PLATFORM_PANIC=1
76-
LIB_PICO_PLATFORM_SECTIONS=1
77-
LIB_PICO_RUNTIME=1
78-
LIB_PICO_RUNTIME_INIT=1
79-
LIB_PICO_STANDARD_BINARY_INFO=1
80-
LIB_PICO_STANDARD_LINK=1
81-
LIB_PICO_SYNC=1
82-
LIB_PICO_SYNC_CRITICAL_SECTION=1
83-
LIB_PICO_SYNC_MUTEX=1
84-
LIB_PICO_SYNC_SEM=1
85-
LIB_PICO_TIME=1
86-
LIB_PICO_TIME_ADAPTER=1
87-
LIB_PICO_UNIQUE_ID=1
88-
LIB_PICO_UTIL=1
89-
LIB_TINYUSB_BOARD=1
90-
LIB_TINYUSB_DEVICE=1
91-
PICO_XOSC_STARTUP_DELAY_MULTIPLIER=64
92-
PICO_32BIT=1
93-
PICO_BOARD=\"solderparty_rp2350_stamp_xl\"
94-
PICO_BUILD=1
95-
PICO_COPY_TO_RAM=0
96-
PICO_CXX_ENABLE_EXCEPTIONS=0
97-
PICO_NO_FLASH=0
98-
PICO_NO_HARDWARE=0
99-
PICO_ON_DEVICE=1
100-
PICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1
101-
PICO_RP2040_USB_DEVICE_UFRAME_FIX=1
102-
PICO_RP2350=1
103-
PICO_USE_BLOCKED_RAM=0)
104-
elseif (${cpu} MATCHES "rp2350-riscv")
105-
set(xcd
106-
CFG_TUSB_DEBUG=0
107-
CFG_TUSB_MCU=OPT_MCU_RP2040
108-
CFG_TUSB_OS=OPT_OS_PICO
109-
LIB_BOOT_STAGE2_HEADERS=1
110-
LIB_PICO_ATOMIC=1
111-
LIB_PICO_BIT_OPS=1
112-
LIB_PICO_BIT_OPS_PICO=1
113-
LIB_PICO_CLIB_INTERFACE=1
114-
LIB_PICO_CRT0=1
115-
LIB_PICO_CXX_OPTIONS=1
116-
LIB_PICO_DIVIDER=1
117-
LIB_PICO_DIVIDER_COMPILER=1
118-
LIB_PICO_DOUBLE=1
119-
LIB_PICO_DOUBLE_COMPILER=1
120-
LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1
121-
LIB_PICO_FLOAT=1
122-
LIB_PICO_FLOAT_COMPILER=1
12377
LIB_PICO_INT64_OPS=1
12478
LIB_PICO_INT64_OPS_COMPILER=1
12579
LIB_PICO_MEM_OPS=1
@@ -152,11 +106,11 @@ elseif (${cpu} MATCHES "rp2350-riscv")
152106
PICO_NO_FLASH=0
153107
PICO_NO_HARDWARE=0
154108
PICO_ON_DEVICE=1
155-
PICO_RISCV=1
156109
PICO_RP2040_USB_DEVICE_ENUMERATION_FIX=1
157110
PICO_RP2040_USB_DEVICE_UFRAME_FIX=1
158111
PICO_RP2350=1
159-
PICO_USE_BLOCKED_RAM=0)
112+
PICO_USE_BLOCKED_RAM=0
113+
${xcda})
160114
endif()
161115

162116
if (${cpu} MATCHES "rp2040")

tools/libpico/make-libpico.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ rm -rf build-rp2350-riscv
1111
mkdir build-rp2350-riscv
1212
cd build-rp2350-riscv
1313
CPU=rp2350-riscv cmake ..
14-
make -j VERBOSE=1
14+
make -j
1515
exit
1616

1717
rm -rf build-rp2040

tools/platformio-build.py

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def is_pio_build():
120120
("PICO_FLASH_SIZE_BYTES", board.get("upload.maximum_size"))
121121
]
122122
)
123-
elif chip == "rp2350":
123+
elif (chip == "rp2350") or (chip == "rp2350-riscv"):
124124
env.Append(
125125
CPPDEFINES=[
126126
("ARDUINO", 10810),
@@ -139,11 +139,8 @@ def is_pio_build():
139139
("LIB_PICO_DIVIDER", "1"),
140140
("LIB_PICO_DIVIDER_COMPILER", "1"),
141141
("LIB_PICO_DOUBLE", "1"),
142-
("LIB_PICO_DOUBLE_PICO", "1"),
143142
("LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION", "1"),
144143
("LIB_PICO_FLOAT", "1"),
145-
("LIB_PICO_FLOAT_PICO", "1"),
146-
("LIB_PICO_FLOAT_PICO_VFP", "1"),
147144
("LIB_PICO_INT64_OPS", "1"),
148145
("LIB_PICO_INT64_OPS_COMPILER", "1"),
149146
("LIB_PICO_MEM_OPS", "1"),
@@ -186,11 +183,29 @@ def is_pio_build():
186183
("PICO_FLASH_SIZE_BYTES", board.get("upload.maximum_size"))
187184
]
188185
)
186+
if chip == "rp2350":
187+
env.Append(
188+
CPPDEFINES=[
189+
("LIB_PICO_DOUBLE_PICO", "1"),
190+
("LIB_PICO_FLOAT_PICO", "1"),
191+
("LIB_PICO_FLOAT_PICO_VFP", "1")
192+
]
193+
)
194+
elif chip == "rp2350-riscv":
195+
env.Append(
196+
CPPDEFINES=[
197+
("LIB_PICO_DOUBLE_COMPILER", "1"),
198+
("LIB_PICO_FLOAT_COMPILER", "1"),
199+
("PICO_RISCV", "1")
200+
]
201+
)
189202

190203
if chip == "rp2040":
191204
toolopts = ["-march=armv6-m", "-mcpu=cortex-m0plus", "-mthumb"]
192205
elif chip == "rp2350":
193206
toolopts = ["-mcpu=cortex-m33", "-mthumb", "-march=armv8-m.main+fp+dsp", "-mfloat-abi=softfp", "-mcmse"]
207+
elif chip == "rp2350-riscv":
208+
toolopts = ["-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb", "-mabi=ilp32"]
194209

195210
env.Append(
196211
CCFLAGS=[
@@ -229,7 +244,22 @@ def is_pio_build():
229244
"-Wl,--gc-sections",
230245
"-Wl,--unresolved-symbols=report-all",
231246
"-Wl,--warn-common",
232-
"-Wl,--undefined=runtime_init_install_ram_vector_table"
247+
"-Wl,--undefined=runtime_init_install_ram_vector_table",
248+
"-Wl,--undefined=__pre_init_runtime_init_clocks",
249+
"-Wl,--undefined=__pre_init_runtime_init_bootrom_reset",
250+
"-Wl,--undefined=__pre_init_runtime_init_early_resets",
251+
"-Wl,--undefined=__pre_init_runtime_init_usb_power_down",
252+
"-Wl,--undefined=__pre_init_runtime_init_clocks",
253+
"-Wl,--undefined=__pre_init_runtime_init_post_clock_resets",
254+
"-Wl,--undefined=__pre_init_runtime_init_spin_locks_reset",
255+
"-Wl,--undefined=__pre_init_runtime_init_boot_locks_reset",
256+
"-Wl,--undefined=__pre_init_runtime_init_bootrom_locking_enable",
257+
"-Wl,--undefined=__pre_init_runtime_init_mutex",
258+
"-Wl,--undefined=__pre_init_runtime_init_default_alarm_pool",
259+
"-Wl,--undefined=__pre_init_first_per_core_initializer",
260+
"-Wl,--undefined=__pre_init_runtime_init_per_core_bootrom_reset"
261+
"-Wl,--undefined=__pre_init_runtime_init_per_core_h3_irq_registers",
262+
"-Wl,--undefined=__pre_init_runtime_init_per_core_irq_priorities"
233263
] + toolopts,
234264

235265
LIBSOURCE_DIRS=[os.path.join(FRAMEWORK_DIR, "libraries")],

0 commit comments

Comments
 (0)