Give an overview of the different tools required for development and what they're used for. Signed-off-by: Tim Crawford <tcrawford@system76.com>
54 lines
1.6 KiB
Markdown
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/
|