55#endif
66#endif
77
8+ #ifndef PICO_CRT0_INCLUDE_PICOBIN_VECTOR_TABLE_ITEM
9+ // If no_flash bin, then include a vector table item
10+ #if PICO_NO_FLASH && !PICO_RP2040
11+ #define PICO_CRT0_INCLUDE_PICOBIN_VECTOR_TABLE_ITEM 1
12+ #endif
13+ #endif
14+
15+ #ifndef PICO_CRT0_INCLUDE_PICOBIN_ENTRY_POINT_ITEM
16+ // On RISC-V the default entry point from bootrom is the start of the binary, but
17+ // we have our vtable at the start, so we must include an entry point
18+ #ifdef __riscv
19+ #define PICO_CRT0_INCLUDE_PICOBIN_ENTRY_POINT_ITEM 1
20+ #endif
21+ #endif
22+
823#ifndef PICO_CRT0_INCLUDE_PICOBIN_BLOCK
924#define PICO_CRT0_INCLUDE_PICOBIN_BLOCK PICO_CRT0_INCLUDE_PICOBIN_IMAGE_TYPE_ITEM
1025#endif
@@ -73,9 +88,7 @@ embedded_block:
7388.hword PICO_CRT0_VERSION_MAJOR
7489#endif
7590
76- #ifdef __riscv
77- // On RISC-V the default entry point from bootrom is the start of the binary, but
78- // we have our vtable at the start, so we must include an entry point
91+ #if PICO_CRT0_INCLUDE_PICOBIN_ENTRY_POINT_ITEM
7992.byte PICOBIN_BLOCK_ITEM_1BS_ENTRY_POINT
8093.byte 0x3 // word size to next item
8194.byte 0 // pad
@@ -84,15 +97,12 @@ embedded_block:
8497.word SRAM_END // stack pointer
8598#endif
8699
87- #if !PICO_RP2040
88- #if PICO_NO_FLASH
89- // If no_flash bin, then include a vector table item
100+ #if PICO_CRT0_INCLUDE_PICOBIN_VECTOR_TABLE_ITEM
90101.byte PICOBIN_BLOCK_ITEM_1BS_VECTOR_TABLE
91102.byte 0x2
92103.hword 0
93104.word __vectors
94105#endif
95- #endif
96106
97107.byte PICOBIN_BLOCK_ITEM_2BS_LAST
98108.hword (embedded_block_end - embedded_block - 16 ) / 4 // total size of all
@@ -106,4 +116,4 @@ embedded_block:
106116#endif
107117.word PICOBIN_BLOCK_MARKER_END
108118embedded_block_end:
109- #endif
119+ #endif
0 commit comments