Skip to content

Commit d1f1e5f

Browse files
committed
Add SparkFun Variable Loader (SV Loader) for Artemis
Added menu options to select either the standard SparkFun Variable Loader (SVL) or the Ambiq Secure Bootloader (which is an advanced option. It will overwrite the SVL and so should only be used by experienced individuals) Recompiled tools for Mac and Linux, renamed tools for Windows
1 parent e682d2d commit d1f1e5f

File tree

372 files changed

+1321
-614
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

372 files changed

+1321
-614
lines changed

boards.txt

Lines changed: 117 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -18,93 +18,161 @@
1818
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1919
# SOFTWARE.
2020

21+
# Menu Options
22+
menu.svl_baud=SVL Baud Rate
23+
menu.loader=Bootloader
24+
25+
26+
2127
###############################################################
2228

2329
artemis.name=SparkFun Artemis Module
2430
artemis.build.variant=SparkFun_Artemis
2531
artemis.build.board=SFE_ARTEMIS
26-
artemis.upload.tool=artemis_uart
2732
artemis.upload.maximum_size=960000
2833
artemis.build.arch=APOLLO3
2934
artemis.build.mcu=cortex-m4
3035
artemis.build.f_cpu=48000000L
3136
artemis.build.core=arduino
32-
artemis.build.defs=
37+
artemis.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
3338
artemis.build.includes=-I{build.variant.path}/config
39+
artemis.build.defs=
3440
artemis.build.libs=
35-
artemis.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
36-
artemis.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
37-
artemis.upload.maximum_size=960000
38-
edge.upload.use_menu_baud=0
39-
artemis.upload.baud=115200
41+
artemis.menu.svl_baud.921600=921600
42+
artemis.menu.svl_baud.460800=460800
43+
artemis.menu.svl_baud.230400=230400
44+
artemis.menu.svl_baud.115200=115200
45+
artemis.menu.svl_baud.57600=57600
46+
artemis.menu.loader.sparkfun_svl=SparkFun Variable Loader (Recommended)
47+
artemis.menu.loader.ambiq_sbl=Ambiq Secure Bootloader (Advanced)
48+
49+
artemis.menu.svl_baud.57600.upload.baud=57600
50+
artemis.menu.svl_baud.115200.upload.baud=115200
51+
artemis.menu.svl_baud.230400.upload.baud=230400
52+
artemis.menu.svl_baud.460800.upload.baud=460800
53+
artemis.menu.svl_baud.921600.upload.baud=921600
54+
55+
artemis.menu.loader.ambiq_sbl.upload.tool=ambiq_bin2board
56+
artemis.menu.loader.ambiq_sbl.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
57+
58+
artemis.menu.loader.sparkfun_svl.upload.tool=artemis_svl
59+
artemis.menu.loader.sparkfun_svl.build.ldscript={build.variant.path}/linker_scripts/gcc/artemis_sbl_svl_app.ld
60+
4061

4162
###############################################################
4263

4364
amap3blackboard.name=SparkFun BlackBoard Artemis
4465
amap3blackboard.build.variant=SparkFun_BlackBoard_Artemis
4566
amap3blackboard.build.board=AM_AP3_SFE_BB_ARTEMIS
46-
amap3blackboard.upload.tool=artemis_uart
4767
amap3blackboard.upload.maximum_size=960000
4868
amap3blackboard.build.arch=APOLLO3
4969
amap3blackboard.build.mcu=cortex-m4
5070
amap3blackboard.build.f_cpu=48000000L
5171
amap3blackboard.build.core=arduino
52-
amap3blackboard.build.defs=
5372
amap3blackboard.build.includes=-I{build.variant.path}/config
54-
amap3blackboard.build.libs=
55-
amap3blackboard.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
5673
amap3blackboard.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
74+
amap3blackboard.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
5775
amap3blackboard.upload.maximum_size=960000
58-
edge.upload.use_menu_baud=0
59-
amap3blackboard.upload.baud=115200
76+
amap3blackboard.build.defs=
77+
amap3blackboard.build.libs=
78+
amap3blackboard.menu.svl_baud.921600=921600
79+
amap3blackboard.menu.svl_baud.460800=460800
80+
amap3blackboard.menu.svl_baud.230400=230400
81+
amap3blackboard.menu.svl_baud.115200=115200
82+
amap3blackboard.menu.svl_baud.57600=57600
83+
amap3blackboard.menu.loader.sparkfun_svl=SparkFun Variable Loader (Recommended)
84+
amap3blackboard.menu.loader.ambiq_sbl=Ambiq Secure Bootloader (Advanced)
85+
86+
amap3blackboard.menu.svl_baud.57600.upload.baud=57600
87+
amap3blackboard.menu.svl_baud.115200.upload.baud=115200
88+
amap3blackboard.menu.svl_baud.230400.upload.baud=230400
89+
amap3blackboard.menu.svl_baud.460800.upload.baud=460800
90+
amap3blackboard.menu.svl_baud.921600.upload.baud=921600
91+
92+
amap3blackboard.menu.loader.ambiq_sbl.upload.tool=ambiq_bin2board
93+
amap3blackboard.menu.loader.ambiq_sbl.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
94+
95+
amap3blackboard.menu.loader.sparkfun_svl.upload.tool=artemis_svl
96+
amap3blackboard.menu.loader.sparkfun_svl.build.ldscript={build.variant.path}/linker_scripts/gcc/artemis_sbl_svl_app.ld
6097

6198
###############################################################
6299

63100
amap3nano.name=SparkFun BlackBoard Artemis Nano
64101
amap3nano.build.variant=SparkFun_BlackBoard_Artemis_Nano
65102
amap3nano.build.board=AM_AP3_SFE_BB_ARTEMIS_NANO
66-
amap3nano.upload.tool=artemis_uart
67103
amap3nano.upload.maximum_size=960000
68104
amap3nano.build.arch=APOLLO3
69105
amap3nano.build.mcu=cortex-m4
70106
amap3nano.build.f_cpu=48000000L
71107
amap3nano.build.core=arduino
72-
amap3nano.build.defs=
73108
amap3nano.build.includes=-I{build.variant.path}/config
74-
amap3nano.build.libs=
75-
amap3nano.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
76109
amap3nano.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
77-
amap3nano.upload.maximum_size=960000
78-
edge.upload.use_menu_baud=0
79-
amap3nano.upload.baud=115200
110+
amap3nano.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
111+
amap3nano.build.defs=
112+
amap3nano.build.libs=
113+
amap3nano.menu.svl_baud.921600=921600
114+
amap3nano.menu.svl_baud.460800=460800
115+
amap3nano.menu.svl_baud.230400=230400
116+
amap3nano.menu.svl_baud.115200=115200
117+
amap3nano.menu.svl_baud.57600=57600
118+
amap3nano.menu.loader.sparkfun_svl=SparkFun Variable Loader (Recommended)
119+
amap3nano.menu.loader.ambiq_sbl=Ambiq Secure Bootloader (Advanced)
120+
121+
amap3nano.menu.svl_baud.57600.upload.baud=57600
122+
amap3nano.menu.svl_baud.115200.upload.baud=115200
123+
amap3nano.menu.svl_baud.230400.upload.baud=230400
124+
amap3nano.menu.svl_baud.460800.upload.baud=460800
125+
amap3nano.menu.svl_baud.921600.upload.baud=921600
126+
127+
amap3nano.menu.loader.ambiq_sbl.upload.tool=ambiq_bin2board
128+
amap3nano.menu.loader.ambiq_sbl.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
129+
130+
amap3nano.menu.loader.sparkfun_svl.upload.tool=artemis_svl
131+
amap3nano.menu.loader.sparkfun_svl.build.ldscript={build.variant.path}/linker_scripts/gcc/artemis_sbl_svl_app.ld
80132

81133
###############################################################
82134

83135
amap3mega.name=SparkFun BlackBoard Artemis Mega
84136
amap3mega.build.variant=SparkFun_BlackBoard_Artemis_Mega
85137
amap3mega.build.board=AM_AP3_SFE_BB_ARTEMIS_MEGA
86-
amap3mega.upload.tool=artemis_uart
87138
amap3mega.upload.maximum_size=960000
88139
amap3mega.build.arch=APOLLO3
89140
amap3mega.build.mcu=cortex-m4
90141
amap3mega.build.f_cpu=48000000L
91142
amap3mega.build.core=arduino
92-
amap3mega.build.defs=
93143
amap3mega.build.includes=-I{build.variant.path}/config
94-
amap3mega.build.libs=
95144
amap3mega.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
96145
amap3mega.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
97-
amap3mega.upload.maximum_size=960000
98-
edge.upload.use_menu_baud=0
99-
amap3mega.upload.baud=115200
146+
amap3mega.build.defs=
147+
amap3mega.build.libs=
148+
amap3mega.menu.svl_baud.921600=921600
149+
amap3mega.menu.svl_baud.460800=460800
150+
amap3mega.menu.svl_baud.230400=230400
151+
amap3mega.menu.svl_baud.115200=115200
152+
amap3mega.menu.svl_baud.57600=57600
153+
amap3mega.menu.loader.sparkfun_svl=SparkFun Variable Loader (Recommended)
154+
amap3mega.menu.loader.ambiq_sbl=Ambiq Secure Bootloader (Advanced)
155+
156+
amap3mega.menu.svl_baud.57600.upload.baud=57600
157+
amap3mega.menu.svl_baud.115200.upload.baud=115200
158+
amap3mega.menu.svl_baud.230400.upload.baud=230400
159+
amap3mega.menu.svl_baud.460800.upload.baud=460800
160+
amap3mega.menu.svl_baud.921600.upload.baud=921600
161+
162+
amap3mega.menu.loader.ambiq_sbl.upload.tool=ambiq_bin2board
163+
amap3mega.menu.loader.ambiq_sbl.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
164+
165+
amap3mega.menu.loader.sparkfun_svl.upload.tool=artemis_svl
166+
amap3mega.menu.loader.sparkfun_svl.build.ldscript={build.variant.path}/linker_scripts/gcc/artemis_sbl_svl_app.ld
100167

101168
###############################################################
102169

103170
edge.name=SparkFun Edge
104171
edge.build.variant=SparkFun_Edge
105172
edge.build.board=SFE_EDGE
106-
edge.upload.tool=artemis_bin2board
173+
edge.upload.tool=ambiq_bin2board
107174
edge.upload.maximum_size=960000
175+
edge.upload.baud=115200
108176
edge.build.arch=APOLLO3
109177
edge.build.mcu=cortex-m4
110178
edge.build.f_cpu=48000000L
@@ -113,48 +181,42 @@ edge.build.defs=
113181
edge.build.includes=-I{build.variant.path}/config
114182
edge.build.libs=
115183
edge.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
116-
edge.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
117-
edge.upload.use_menu_baud=0
118-
edge.upload.baud=921600
119-
120-
###############################################################
121-
122-
amap3SBL.name=Abmiq SBL
123-
amap3SBL.build.variant=SparkFun_Ambiq_SBL
124-
amap3SBL.build.board=SFE_AMB_SBL
125-
amap3SBL.upload.tool=artemis_bin2board
126-
amap3SBL.upload.maximum_size=960000
127-
amap3SBL.build.arch=APOLLO3
128-
amap3SBL.build.mcu=cortex-m4
129-
amap3SBL.build.f_cpu=48000000L
130-
amap3SBL.build.core=arduino
131-
amap3SBL.build.defs=
132-
amap3SBL.build.includes=-I{build.variant.path}/config
133-
amap3SBL.build.libs=
134-
amap3SBL.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
135-
amap3SBL.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
136-
amap3SBL.upload.use_menu_baud=0
137-
amap3SBL.upload.baud=115200
184+
edge.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
138185

139186
###############################################################
140187

141188
# edgeV2.name=SparkFun Edge V2
142189
# edgeV2.build.variant=SparkFun_Edge_V2
143190
# edgeV2.build.board=SFE_EDGE_V2
144-
# edgeV2.upload.tool=artemis_uart
145191
# edgeV2.upload.maximum_size=960000
146192
# edgeV2.build.arch=APOLLO3
147193
# edgeV2.build.mcu=cortex-m4
148194
# edgeV2.build.f_cpu=48000000L
149195
# edgeV2.build.core=arduino
150-
# edgeV2.build.defs=
151196
# edgeV2.build.includes=-I{build.variant.path}/config
152-
# edgeV2.build.libs=
153197
# edgeV2.build.extra_flags=-DPART_apollo3 -DAM_PACKAGE_BGA -DAM_PART_APOLLO3
154198
# edgeV2.build.ldscript={build.variant.path}/linker_scripts/gcc/flash_with_bootloader.ld
155-
# edgeV2.upload.maximum_size=960000
156-
# edge.upload.use_menu_baud=0
157-
# edgeV2.upload.baud=115200
199+
# edgeV2.build.defs=
200+
# edgeV2.build.libs=
201+
# edgeV2.menu.svl_baud.921600=921600
202+
# edgeV2.menu.svl_baud.460800=460800
203+
# edgeV2.menu.svl_baud.230400=230400
204+
# edgeV2.menu.svl_baud.115200=115200
205+
# edgeV2.menu.svl_baud.57600=57600
206+
# edgeV2.menu.loader.sparkfun_svl=SparkFun Variable Loader (Recommended)
207+
# edgeV2.menu.loader.ambiq_sbl=Ambiq Secure Bootloader (Advanced)
208+
209+
# edgeV2.menu.svl_baud.57600.upload.baud=57600
210+
# edgeV2.menu.svl_baud.115200.upload.baud=115200
211+
# edgeV2.menu.svl_baud.230400.upload.baud=230400
212+
# edgeV2.menu.svl_baud.460800.upload.baud=460800
213+
# edgeV2.menu.svl_baud.921600.upload.baud=921600
214+
215+
# edgeV2.menu.loader.ambiq_sbl.upload.tool=ambiq_bin2board
216+
# edgeV2.menu.loader.ambiq_sbl.build.ldscript={build.variant.path}/linker_scripts/gcc/ambiq_sbl_app.ld
217+
218+
# edgeV2.menu.loader.sparkfun_svl.upload.tool=artemis_svl
219+
# edgeV2.menu.loader.sparkfun_svl.build.ldscript={build.variant.path}/linker_scripts/gcc/artemis_sbl_svl_app.ld
158220

159221
# ###############################################################
160222

platform.txt

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -126,37 +126,45 @@ recipe.preproc.macros="{compiler.path}/{compiler.cmd.cpp}" {compiler.flags.cpp}
126126

127127
##### The following tool settings are for the Ambiq SBL
128128

129-
# Host-specific definitions for upload tool
130-
# Default host
131-
tools.artemis_bin2board.pgm={runtime.platform.path}/tools/artemis/macosx/artemis_bin_to_board/artemis_bin_to_board
132-
tools.artemis_bin2board.args=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b {upload.baud} -port "{serial.port}" -r 2 {upload.verbose}
129+
# Host-specific definitions for upload tool (using Ambiq's Secure Bootloader SBL)
130+
# Linux
131+
tools.ambiq_bin2board.pgm={runtime.platform.path}/tools/ambiq/linux/ambiq_bin_to_board/ambiq_bin_to_board
132+
tools.ambiq_bin2board.args=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port "{serial.port}" -r 2 {upload.verbose}
133133

134134
# MacOSX
135-
tools.artemis_bin2board.pgm.macosx={runtime.platform.path}/tools/artemis/macosx/artemis_bin_to_board/artemis_bin_to_board
136-
tools.artemis_bin2board.args.macosx=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b {upload.baud} -port "{serial.port}" -r 2 {upload.verbose}
135+
tools.ambiq_bin2board.pgm.macosx={runtime.platform.path}/tools/ambiq/macosx/ambiq_bin_to_board/ambiq_bin_to_board
136+
tools.ambiq_bin2board.args.macosx=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port "{serial.port}" -r 2 {upload.verbose}
137137

138138
# Windows
139-
tools.artemis_bin2board.pgm.windows="{runtime.platform.path}/tools/artemis/windows/artemis_bin_to_board/artemis_bin_to_board.exe"
140-
tools.artemis_bin2board.args.windows=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b {upload.baud} -port "{serial.port}" -r 2 {upload.verbose}
139+
tools.ambiq_bin2board.pgm.windows="{runtime.platform.path}/tools/ambiq/windows/ambiq_bin_to_board/ambiq_bin_to_board.exe"
140+
tools.ambiq_bin2board.args.windows=--bin "{build.path}/{build.project_name}.bin" --load-address-blob 0x20000 --magic-num 0xCB -o {build.path}/{build.project_name} --version 0x0 --load-address-wired 0xC000 -i 6 --options 0x1 -b 115200 -port "{serial.port}" -r 2 {upload.verbose}
141141

142142
# Additional Loader Parameters
143-
tools.artemis_bin2board.upload.protocol=ap3
144-
tools.artemis_bin2board.upload.params.verbose=-v
145-
tools.artemis_bin2board.upload.params.quiet=
143+
tools.ambiq_bin2board.upload.protocol=ap3
144+
tools.ambiq_bin2board.upload.params.verbose=-v
145+
tools.ambiq_bin2board.upload.params.quiet=
146146

147147
# Upload tool pattern
148-
tools.artemis_bin2board.upload.pattern={pgm} {args}
148+
tools.ambiq_bin2board.upload.pattern={pgm} {args}
149149

150-
##### The following tool settings are for the SparkFun variable bootloader
150+
##### The following tool settings are for the SparkFun variable bootloader (Artemis SVL) (Saturn Five Loader)
151+
152+
# Linux
153+
tools.artemis_svl.pgm={runtime.platform.path}/tools/ambiq/linux/artemis_svl/artemis_svl
154+
tools.artemis_svl.args="{serial.port}" -f "{build.path}/{build.project_name}.bin" -b {upload.baud} {upload.verbose}
155+
156+
# MacOSX
157+
tools.artemis_svl.pgm.macosx={runtime.platform.path}/tools/ambiq/macosx/artemis_svl/artemis_svl
158+
tools.artemis_svl.args.macosx="{serial.port}" -f "{build.path}/{build.project_name}.bin" -b {upload.baud} {upload.verbose}
151159

152160
# Windows
153-
tools.artemis_uart.pgm.windows="{runtime.platform.path}/tools/artemis/windows/artemis_uart_loader.exe"
154-
tools.artemis_uart.args.windows="{serial.port}" -f "{build.path}/{build.project_name}.bin" -b {upload.baud} {upload.verbose}
161+
tools.artemis_svl.pgm.windows="{runtime.platform.path}/tools/artemis/windows/artemis_svl.exe"
162+
tools.artemis_svl.args.windows="{serial.port}" -f "{build.path}/{build.project_name}.bin" -b {upload.baud} {upload.verbose}
155163

156164
# Additional Loader Parameters
157-
tools.artemis_uart.upload.protocol=ap3
158-
tools.artemis_uart.upload.params.verbose=-v
159-
tools.artemis_uart.upload.params.quiet=
165+
tools.artemis_svl.upload.protocol=ap3
166+
tools.artemis_svl.upload.params.verbose=-v
167+
tools.artemis_svl.upload.params.quiet=
160168

161169
# Upload tool pattern
162-
tools.artemis_uart.upload.pattern={pgm} {args}
170+
tools.artemis_svl.upload.pattern={pgm} {args}

0 commit comments

Comments
 (0)