pip install -U yotta
You will also need CMake, ninja, Python and arm-none-eabi-gcc.
There are two types of modules: executable and library.
Library modules are reusable code, which provide functionality useful to lots of different apps such as network stacks, drivers and encoders/decoders. Anyone can publish a library module to the yotta registry where other people can find useful modules and reuse them.
Written tutorial or video guide.
Executable modules compile into a binary. Executable modules should not generally be published to the yotta registry (because they cannot be reused by other applications). Instead they should be shared somewhere like GitHub.
Video guides: build from scratch, clone from existing repo.
Targets describe which platform you are building for, and how the compiler should be run.
Guide to using targets and writing targets.
major.minor.patch
yotta modules use semantic versioning. A 0.x.y
version number
indicates a module that does not yet have a stable API. When the API is stable
increment to 1.0.0
.
For modules with a major version >= 1, the major version number must be incremented whenever backwards-incompatible changes are made. The minor and patch versions are used for new (backwards-compatible) features and bug-fixes respectively.
yt
is short for yotta
, and can be used with all commands.
yotta init
- run in a new empty directory to create a module or
executable skeleton.
yotta search
module <search-query>
- search the public registry for modules.
yotta install
<dependency-name>
- install the specified module as a dependency.
Targets specify hardware-specific compiler settings.
yotta search
target <target-name>
- search the online registry for targets.
yotta target
<target-name>
- set the target for the current directory.
yotta target --global
<target-name>
- set a global target for all yotta projects.
You normally build executables, but you can also build library modules.
yotta build
- binaries will be produced in ./build/<targetname>/source
.
yotta clean
- remove all temporary build files.
yotta test
- compile and run the tests from your ./test
folder.
yotta publish
- publish the current library module to the public registry.
yotta version
<major/minor/patch>
- increment the major, minor or patch version number.
yotta debug
- launch a debugger (uses valinor to choose the debugger).
yotta list
- display all the dependencies of the current application.
yotta outdated
- display modules with newer versions available.
yotta update
- update a module(s) to the latest possible versions.