@@ -168,21 +168,31 @@ if (NOT TARGET pico_standard_link)
168168 pico_set_modified_binary_type(${TARGET} ${TYPE} RAM ${XIP_SRAM_BASE} ${XIP_SRAM_END} -${XIP_SRAM_BASE} -4k SCRATCH_X ${XIP_SRAM_END} -4k 2k SCRATCH_Y ${XIP_SRAM_END} -2k 2k)
169169 return ()
170170 elseif (TYPE STREQUAL "no_flash_using_xip_ram" OR TYPE STREQUAL "copy_to_ram_using_xip_ram" )
171- function (pico_internal_add_xip_text_section)
171+ function (pico_internal_add_xip_text_section STORE_AT )
172172 set (ADDITIONAL_PRE_DATA "set(ADDITIONAL_PRE_DATA \"
173173 .xip_text : {
174174 __xip_ram_text_start__ = .;
175175 . = ALIGN(4);
176176 *(.time_critical.text*)
177177 . = ALIGN(4);
178178 __xip_ram_text_end__ = .;
179- } > XIP_RAM AT> FLASH
179+ } > XIP_RAM ${STORE_AT}
180180 __xip_ram_text_source__ = LOADADDR(.xip_text);\" )" PARENT_SCOPE)
181181
182182 pico_get_addressmap_value(XIP_SRAM_BASE)
183183 pico_get_addressmap_value(XIP_SRAM_END)
184184 set (ADDITIONAL_MEMORY "set(ADDITIONAL_MEMORY \" XIP_RAM(rwx) : ORIGIN = ${XIP_SRAM_BASE} , LENGTH = ${XIP_SRAM_END} - ${XIP_SRAM_BASE} \" )" PARENT_SCOPE)
185185 endfunction ()
186+ function (pico_internal_add_xip_text_section_no_flash)
187+ pico_internal_add_xip_text_section("" )
188+ set (ADDITIONAL_PRE_DATA ${ADDITIONAL_PRE_DATA} PARENT_SCOPE)
189+ set (ADDITIONAL_MEMORY ${ADDITIONAL_MEMORY} PARENT_SCOPE)
190+ endfunction ()
191+ function (pico_internal_add_xip_text_section_copy_to_ram)
192+ pico_internal_add_xip_text_section("AT> FLASH" )
193+ set (ADDITIONAL_PRE_DATA ${ADDITIONAL_PRE_DATA} PARENT_SCOPE)
194+ set (ADDITIONAL_MEMORY ${ADDITIONAL_MEMORY} PARENT_SCOPE)
195+ endfunction ()
186196 target_compile_definitions (${TARGET} PRIVATE PICO_DATA_COPY_EXTRA_SECTIONS_FILE="data_cpy_xip_text.S" PICO_USE_XIP_CACHE_AS_RAM=1)
187197 file (CONFIGURE OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /data_cpy_xip_text.S CONTENT "
188198.word __xip_ram_text_source__
@@ -191,9 +201,9 @@ if (NOT TARGET pico_standard_link)
191201" @ONLY)
192202 target_include_directories (${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR} )
193203 if (TYPE STREQUAL "no_flash_using_xip_ram" )
194- pico_set_modified_binary_type(${TARGET} sram EXTRAS pico_internal_add_xip_text_section )
204+ pico_set_modified_binary_type(${TARGET} sram EXTRAS pico_internal_add_xip_text_section_no_flash )
195205 elseif (TYPE STREQUAL "copy_to_ram_using_xip_ram" )
196- pico_set_modified_binary_type(${TARGET} copy_flash_sram EXTRAS pico_internal_add_xip_text_section )
206+ pico_set_modified_binary_type(${TARGET} copy_flash_sram EXTRAS pico_internal_add_xip_text_section_copy_to_ram )
197207 endif ()
198208 return ()
199209 endif ()
0 commit comments