Tim Crawford b7368e8202 docs: Add overview of development environment
Give an overview of the different tools required for development and
what they're used for.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-06-10 09:41:16 -06:00

54 lines
1.6 KiB
Markdown

# Development environment
## OS
Linux is the only supported environment. Development is possible on a variety
of distros. It is recommended to use the latest Pop!\_OS or Ubuntu release.
The build server uses Ubuntu 20.04.
## IDE/Editor
Any editor that has support for [EditorConfig] may be used.
No specific IDE or editor is required or recommended.
## Toolset
EC development depends on using distro-provided packages for the most of the
toolset.
A complete list of dependencies can be seen in `scripts/deps.sh`.
### Cargo
rustup manages the [Rust] toolchain, which includes cargo. Cargo is required
for building the tools. It is the only part of the development toolset that is
not installed through distro packages.
### GNU Make
[GNU Make] is used to automate the build process. It also provides targets for
using ecflash (for flashing) and ectool (for console).
### SDCC
[SDCC] is the only practical open source toolset on Linux for targeting the
8051 architecture (among others). It contains a collection of tools comparable
to what you would expect from GCC for other development targets.
SDCC contains language extensions to support the 8051 architecture. Refer to
the [SDCC manual] for more information.
Version 4.0.0 or newer should be used.
**Note**: Fedora installs SDCC binaries to a non-standard location. Ensure that
`PATH` includes `/usr/libexec/sdcc`.
[EditorConfig]: https://editorconfig.org/
[GNU Make]: https://www.gnu.org/software/make/
[Rust]: https://www.rust-lang.org/
[SDCC manual]: http://sdcc.sourceforge.net/doc/sdccman.pdf
[SDCC]: http://sdcc.sourceforge.net/