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>
This commit is contained in:
committed by
Jeremy Soller
parent
5a7fd2d7b3
commit
b7368e8202
@ -9,6 +9,7 @@ laptops.
|
|||||||
- [Flashing firmware](./doc/flashing.md)
|
- [Flashing firmware](./doc/flashing.md)
|
||||||
- [Debugging](./doc/debugging.md)
|
- [Debugging](./doc/debugging.md)
|
||||||
- [Creating a custom keyboard layout](./doc/keyboard-layout-customization.md)
|
- [Creating a custom keyboard layout](./doc/keyboard-layout-customization.md)
|
||||||
|
- [Development environment](./doc/dev-env.md)
|
||||||
- [Adding a new board](./doc/adding-a-new-board.md)
|
- [Adding a new board](./doc/adding-a-new-board.md)
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
53
doc/dev-env.md
Normal file
53
doc/dev-env.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# 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/
|
Reference in New Issue
Block a user