Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gemarcano/svl
Sparkfun Variable Bootloader -- meson edition
https://github.com/gemarcano/svl
Last synced: about 2 months ago
JSON representation
Sparkfun Variable Bootloader -- meson edition
- Host: GitHub
- URL: https://github.com/gemarcano/svl
- Owner: gemarcano
- License: other
- Created: 2023-11-10T02:37:38.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-21T00:51:32.000Z (8 months ago)
- Last Synced: 2024-05-21T02:21:45.573Z (8 months ago)
- Language: Python
- Size: 112 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sparkfun Variable Loader
This is a meson-ified repository of the Sparkfun Variable Loader bootloader for
the Artemis module. It has also been refactored and cleaned up, increasing
transfer rates and reducing code size. Thanks to the use of a patched
AmbiqSuiteSDK-3.0.0, it also supports being built with LTO to further reduce
size.## Dependencies
- https://github.com/gemarcano/AmbiqSuiteSDK
In order for the libraries to be found, `pkgconf` must know where they are. The
special meson cross-file property `sys_root` is used for this, and the
`artemis` cross-file already has a shortcut for it-- it just needs a
variable to be overriden. To override a cross-file constant, you only need to
provide a second cross-file with that variable overriden. For example:Contents of `crossfile`:
```
[constants]
prefix = '/home/gabriel/.local/redboard'
```# Configuring
```
mkdir build
cd build
# The `artemis` cross-file is assumed to be installed per recommendations from
# the `AmbiqSuiteSDK` repository
meson setup --prefix [prefix-where-sdk-installed] --cross-file artemis --cross-file ../crossfile --buildtype release
```One of two GPIOs can be used to determine whether or not to skip the bootloader
completely, which happens when the pin is held low. GPIO 47 is the default, and
it is the same pin used by the Ambiq Secondary Secure Bootloader (SBBL) to also
skip itself if the pin is low. However, this pin is not pinned out on the
Sparkfun Redboard Artemis ATP, so an alternative of GPIO 42 is also offered.
The final option is "none", which skips the GPIO check completely and always
runs the bootloader.These GPIOs can be selected via `meson configure`. For example:
```
meson configure -Dboot_gpio=42
```# Compiling
```
meson compile
```# Installing
Make sure to set the `tty` meson configuration to the path of the serial device
the bootloader is connected to. For example:```
meson configure -Dtty=/dev/ttyUSB0
```And finally,
```
make compile flash
```# Flashing applications
The SVL will flash applications to address 0x10000 in flash memory. The ARM
vector table must be first in memory in the application, as the SVL will jump
to the address at 0x10004, normally the application's reset vector.To flash applications, use the `svl.py` script, or a reimplementation of that
script in rust in `github.com/gemarcano/artemis_flash_utils-rs`.An example project template that supports being loaded by the SVL can be found
here: `https://github.com/gemarcano/redboard_template`# License
See the license file for details. In summary, most of this project is licensed
BSD 3-clause licensed as it is copied from The AmbiqSuiteSDK repository. Other
files are licensed Apache-2.0.