]> git.lizzy.rs Git - rust.git/blob - src/doc/rustc/src/platform-support/kmc-solid.md
Rollup merge of #106692 - eggyal:mv-binary_heap.rs-binary_heap/mod.rs, r=Mark-Simulacrum
[rust.git] / src / doc / rustc / src / platform-support / kmc-solid.md
1 # \*-kmc-solid_\*
2
3 **Tier: 3**
4
5 [SOLID] embedded development platform by Kyoto Microcomputer Co., Ltd.
6
7 [SOLID]: https://www.kmckk.co.jp/eng/SOLID/
8
9 The target names follow this format: `$ARCH-kmc-solid_$KERNEL-$ABI`, where `$ARCH` specifies the target processor architecture, `$KERNEL` the base kernel, and `$ABI` the target ABI (optional). The following targets are currently defined:
10
11 |          Target name           | `target_arch` | `target_vendor` | `target_os`  |
12 |--------------------------------|---------------|-----------------|--------------|
13 | `aarch64-kmc-solid_asp3`       | `aarch64`     | `kmc`           | `solid_asp3` |
14 | `armv7a-kmc-solid_asp3-eabi`   | `arm`         | `kmc`           | `solid_asp3` |
15 | `armv7a-kmc-solid_asp3-eabihf` | `arm`         | `kmc`           | `solid_asp3` |
16
17 ## Designated Developers
18
19 - [@kawadakk](https://github.com/kawadakk)
20
21 ## Requirements
22
23 This target is cross-compiled.
24 A platform-provided C compiler toolchain is required, though it can be substituted by [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm) for the purpose of building Rust and functional binaries.
25
26 ## Building
27
28 The target can be built by enabling it for a `rustc` build.
29
30 ```toml
31 [build]
32 target = ["aarch64-kmc-solid_asp3"]
33 ```
34
35 Make sure `aarch64-kmc-elf-gcc` is included in `$PATH`. Alternatively, you can use GNU Arm Embedded Toolchain by adding the following to `config.toml`:
36
37 ```toml
38 [target.aarch64-kmc-solid_asp3]
39 cc = "arm-none-eabi-gcc"
40 ```
41
42 ## Cross-compilation
43
44 This target can be cross-compiled from any hosts.
45
46 ## Testing
47
48 Currently there is no support to run the rustc test suite for this target.
49
50 ## Building Rust programs
51
52 Building executables is not supported yet.
53
54 If `rustc` has support for that target and the library artifacts are available, then Rust static libraries can be built for that target:
55
56 ```shell
57 $ rustc --target aarch64-kmc-solid_asp3 your-code.rs --crate-type staticlib
58 $ ls libyour_code.a
59 ```
60
61 On Rust Nightly it's possible to build without the target artifacts available:
62
63 ```text
64 cargo build -Z build-std --target aarch64-kmc-solid_asp3
65 ```