sammy
Sammy is a tool for managing SJSU-Dev2 firmware projects and to install external packages such as platforms and libraries.
Quick Start
# Install sammy tool via PIP
pip install sammy-sjsu-dev2
# Create a project
sammy start new_project
# Enter project
cd new_project
# Build main.cpp source code into .elf, .bin, .hex etc. Default platform is the
# LPC40xx series.
sammy build
Dependencies
- python3.6 and above
- git
Usage
Run sammy --help to get information about how to use sammy and what it can do.
A quick guide on the most common commands for sammy are listed here.
Usage: sammy [OPTIONS] COMMAND [ARGS]...
Sammy is a tool for managing SJSU-Dev2 firmware projects and to install
external packages such as platforms and libraries.
Options:
--help Show this message and exit.
Commands:
build Build Application
build-test Build Test Executable
install Download and install library to project
list List libraries available from the SJSU-Dev2 organization
remove Delete library from project
start Start a new firmware project.
Building Code
Building code is as simple as running sammy build in a SJSU-Dev2 directory
with a main.cpp in it.
$ sammy build --help
Usage: sammy build [OPTIONS] [SOURCE]
Build Application
Options:
-o, --optimization TEXT [default: g]
-p, --platform TEXT [default: lpc40xx]
-l, --linker_script TEXT [default: default.ld]
-t, --toolchain TEXT [default: gcc-arm-none-eabi-picolibc]
-c, --compiler TEXT [default: arm-none-eabi-g++]
--help Show this message and exit.
Installing Packages
To install a package you need to specify a library name such as libesp8266 or
liblpc40xx. This will scan SJSU-Dev2 repo list and if it exists will download
the repo to the packages directory and link the library to the library
directory. If the package you want to install is not apart of the SJSU-Dev2 repo
you can specify a URL to an git project and it will be installed.
$ sammy install --help
Usage: sammy install [OPTIONS] LIBRARY
Download and install library to project
Options:
-d, --project_directory PATH
-t, --tag TEXT
You can list the SJSU-Dev2 projects by using the following comamnd:
sammy list
You can uninstall a package by running:
sammy remove <package_name>
Build Test Files
You can build host tests programs using sammy build-test file.test.cpp. The
extension does not matter, but SJSU-Dev2 follows the .test.cpp extension
pattern.
Usage: sammy build-test [OPTIONS] TEST_SOURCE_CODE
Build Test Executable
Options:
-c, --compiler TEXT [default: g++-10]
-r, --run
Metadata
Release files for sammy-sjsu-dev2 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sammy-sjsu-dev2-0.2.0.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sammy_sjsu_dev2-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / sammy-sjsu-dev2-0.2.0.tar.gz
| Download URL | sammy-sjsu-dev2-0.2.0.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
021c5b82a1966c2525ac3310671418fc4450856c52a458edbfab92bd8a39079d
|
|
BLAKE2b-256 checksum How to use checksums |
90b10d0f13a93ad135e4ab3cf5701b3f69231b55cfce5ffc0944bd593ffbf0f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.2
|
Release files / sammy_sjsu_dev2-0.2.0-py3-none-any.whl
| Download URL | sammy_sjsu_dev2-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
378c90fce96bd95e7915dc9e5059f1b9fe7c1233c9d90980f2d065272251b3e2
|
|
BLAKE2b-256 checksum How to use checksums |
2fceed01c4ee0108e6b6e306a1b8cd116a79a835a865fe667948fcecf2309d25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.2
|