{"id":21711814,"url":"https://github.com/gemarcano/svl","last_synced_at":"2025-03-20T18:21:49.159Z","repository":{"id":237888980,"uuid":"716856484","full_name":"gemarcano/svl","owner":"gemarcano","description":"Sparkfun Variable Bootloader -- meson edition","archived":false,"fork":false,"pushed_at":"2024-12-20T23:49:00.000Z","size":117,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-25T16:44:42.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gemarcano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-10T02:37:38.000Z","updated_at":"2024-12-20T23:49:04.000Z","dependencies_parsed_at":"2024-11-26T00:15:44.850Z","dependency_job_id":null,"html_url":"https://github.com/gemarcano/svl","commit_stats":null,"previous_names":["gemarcano/svl"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2Fsvl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2Fsvl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2Fsvl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gemarcano%2Fsvl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gemarcano","download_url":"https://codeload.github.com/gemarcano/svl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244666705,"owners_count":20490304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T23:29:47.080Z","updated_at":"2025-03-20T18:21:49.131Z","avatar_url":"https://github.com/gemarcano.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sparkfun Variable Loader\n\nThis is a meson-ified repository of the Sparkfun Variable Loader bootloader for\nthe Artemis module. It has also been refactored and cleaned up, increasing\ntransfer rates and reducing code size. Thanks to the use of a patched\nAmbiqSuiteSDK-3.0.0, it also supports being built with LTO to further reduce\nsize.\n\n## Dependencies\n\n - https://github.com/gemarcano/AmbiqSuiteSDK\n\nIn order for the libraries to be found, `pkgconf` must know where they are. The\nspecial meson cross-file property `sys_root` is used for this, and the\n`artemis` cross-file already has a shortcut for it-- it just needs a\nvariable to be overriden. To override a cross-file constant, you only need to\nprovide a second cross-file with that variable overriden. For example:\n\nContents of `crossfile`:\n```\n[constants]\nprefix = '/home/gabriel/.local/redboard'\n```\n\n# Configuring\n\n```\nmkdir build\ncd build\n# The `artemis` cross-file is assumed to be installed per recommendations from\n# the `AmbiqSuiteSDK` repository\nmeson setup --prefix [prefix-where-sdk-installed] --cross-file artemis --cross-file ../crossfile --buildtype release\n```\n\nOne of two GPIOs can be used to determine whether or not to skip the bootloader\ncompletely, which happens when the pin is held low. GPIO 47 is the default, and\nit is the same pin used by the Ambiq Secondary Secure Bootloader (SBBL) to also\nskip itself if the pin is low. However, this pin is not pinned out on the\nSparkfun Redboard Artemis ATP, so an alternative of GPIO 42 is also offered.\nThe final option is \"none\", which skips the GPIO check completely and always\nruns the bootloader.\n\nThese GPIOs can be selected via `meson configure`. For example:\n\n```\nmeson configure -Dboot_gpio=42\n```\n\n# Compiling\n\n```\nmeson compile\n```\n\n# Installing\n\nMake sure to set the `tty` meson configuration to the path of the serial device\nthe bootloader is connected to. For example:\n\n```\nmeson configure -Dtty=/dev/ttyUSB0\n```\n\nAnd finally,\n\n```\nmake compile flash\n```\n\n# Flashing applications\n\nThe SVL will flash applications to address 0x10000 in flash memory. The ARM\nvector table must be first in memory in the application, as the SVL will jump\nto the address at 0x10004, normally the application's reset vector.\n\nTo flash applications, use the `svl.py` script, or a reimplementation of that\nscript in rust in `github.com/gemarcano/artemis_flash_utils-rs`.\n\nAn example project template that supports being loaded by the SVL can be found\nhere: `https://github.com/gemarcano/redboard_template`\n\n# License\n\nSee the license file for details. In summary, most of this project is licensed\nBSD 3-clause licensed as it is copied from The AmbiqSuiteSDK repository. Other\nfiles are licensed Apache-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemarcano%2Fsvl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemarcano%2Fsvl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemarcano%2Fsvl/lists"}