kammce / sammy Goto Github PK
View Code? Open in Web Editor NEWSammy is a tool for managing SJSU-Dev2 firmware projects and to install external packages such as platforms and libraries.
License: Apache License 2.0
Sammy is a tool for managing SJSU-Dev2 firmware projects and to install external packages such as platforms and libraries.
License: Apache License 2.0
sammy install <package>
sammy install -g <package>
sammy install http://github.com/package/package
Add the functionality of flashing a board to sammy.
Lets say you are in projects/hello_world
and you already built the lpc40xx binary.
see @kammce's helpful description:
Allows the user/developer to configure the defines within the project_config.hpp
file without needing to modify the file directly. This works by parsing the project.mk
file for config symbols and their documentation and crating a terminal UI using something along the lines of ncurses that allows the user to select options. Similar to the Raspberry Pi raspi-config
or the ESP32's menuconfig
.
sammy platform install
sammy project start azer
azer
directory existsbuild application
, should succeed.sammy project start azer
again, should fail as azer
directory already exists.sammy project start nabeel
build application
, should succeed.Add this project to the pypi repository.
python3 -m pip install sjsu-dev2-sammy
Have run the sammy platform install
command and verify that it completes. Further testing is addressed in other issues on this repo.
Allows the user/developer to configure the defines within the project_config.hpp file without needing to modify the file directly. This works by parsing the config.hpp file for config symbols and their documentation and crating a terminal UI using something along the lines of ncurses that the allows the user to select options. Similar to the Raspberry Pi raspi-config
or the ESP32's menuconfig
.
sammy platform install
sammy platform update
and expect it to return that there is nothing to do. Check that the commit hash is the same as before.sammy platform update
but this time, move the master head back 2 commits and save the commit hash. Ensure that the update results in a difference between the previous has and the current hash, and that the current has is equal to the saved hash in part 2.This will build the current project within the current directory. If target_name
number is given, then the target_name
's configuration files will be used for the build.
$ sammy platform install
This command will download and setup SJSU-Dev2 in your $HOME directory. The following tools configurations will be installed globally on your machine:
- <insert list here>
- Mention the creation of the .sjsu-dev2.mk file in $HOME after setup is complete
Would you like continue [Y/N]: y
<Cloning SJSU-Dev2 to $HOME>
<execute setup>
$ sammy platform install
< Evaluate the sjsu-dev2.mk and determine if the path and directory exist. >
SJSU-Dev2 is already installed on your machine.
< Potentially add content regarding how to install a package or updating the repo >
Add sammy command to list available repos/packages
$ sammy platform update
Updating SJSU-Dev2 to current master...
<cd SJSU-Dev2>
<git push . origin/master:master>
Done.
More information about how git push . origin/master:master
works can be found at
Update local master to remote master from another branch. It allows for updating master without checkout it out.
$ sammy platform update
SJSU-Dev2 is up to date.
Will change the current directory into the SJSU-Dev2 directory.
Install libraries based on a requirements.txt
file. Syntax for the requirements.txt (or .yml) file have not been decided yet.
This command will copy the projects/starter
project from the platform to the location specified by the user.
$ sammy project start project-name
Starting new SJSU-Dev2 project in folder "project-name".
<create folder with the project name>
<copy contents of starter to project name folder>
Done.
Will result in better log messages.
This command allows the developer create a new build target. This build target will have its own unique set of configurations, platform selection and build flags compared to the others. This allows users to create a set of targets for a particular application that can span multiple platforms or simply the same platform but with different settings.
To facility this, a folder of targets/
will pop up in the project directory, and will include its own project_config.hpp
and project.mk
file. When a sammy build target_name
or make application BUILD_TARGET=target_name
is run, it will use those files.
sammy platform install
verify that ~/SJSU-Dev2
exists./setup
was run by attempting to build ~/SJSU-Dev2/projects/hello_world
~/SJSU-Dev2/
, do not delete ~/.sjsu_dev2.mk
location file.Add debugging support via OpenOCD and GDB (or some other custom debugger).
sammy debug /path/to/firmware.elf
sammy debug --platform="stm32f10x" /path/to/firmware.elf
sammy debug main.cpp
This will open an OpenOCD session along with GDB and dump the user into the GDB shell.
The platform will be deduced from the build directory path. Users can force their flavor of platform by using the --platform
option
If a source file is given, an associated .elf file must have already been generated from a build
command. If so, the associated .elf file will be found in the build directory and a debug session will be started.
Move from sammy project start <project_name>
to simply sammy start-project <project_name>
Move from sammy project install <lib>
to simply sammy install <lib>
And so forth for the others.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.