Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
222 lines
4.1 KiB
TOML
222 lines
4.1 KiB
TOML
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
|
#
|
|
# When uploading crates to the registry Cargo will automatically
|
|
# "normalize" Cargo.toml files for maximal compatibility
|
|
# with all versions of Cargo and also rewrite `path` dependencies
|
|
# to registry (e.g., crates.io) dependencies.
|
|
#
|
|
# If you are reading this file be aware that the original Cargo.toml
|
|
# will likely look very different (and much more reasonable).
|
|
# See Cargo.toml.orig for the original contents.
|
|
|
|
[package]
|
|
edition = "2021"
|
|
rust-version = "1.64"
|
|
name = "semihosting"
|
|
version = "0.1.25"
|
|
build = "build.rs"
|
|
exclude = [
|
|
"/.*",
|
|
"/tools",
|
|
"/target-specs",
|
|
]
|
|
autolib = false
|
|
autobins = false
|
|
autoexamples = false
|
|
autotests = false
|
|
autobenches = false
|
|
description = """
|
|
Semihosting for AArch64, Arm, RISC-V, LoongArch, MIPS32, MIPS64, and Xtensa.
|
|
"""
|
|
readme = "README.md"
|
|
keywords = ["qemu"]
|
|
categories = [
|
|
"embedded",
|
|
"hardware-support",
|
|
"no-std",
|
|
"no-std::no-alloc",
|
|
]
|
|
license = "Apache-2.0 OR MIT"
|
|
repository = "https://github.com/taiki-e/semihosting"
|
|
|
|
[package.metadata.docs.rs]
|
|
features = [
|
|
"alloc",
|
|
"stdio",
|
|
"fs",
|
|
"args",
|
|
"time",
|
|
"random",
|
|
"panic-unwind",
|
|
]
|
|
targets = ["aarch64-unknown-linux-gnu"]
|
|
|
|
[package.metadata.cargo_check_external_types]
|
|
allowed_external_types = []
|
|
|
|
[features]
|
|
alloc = []
|
|
args = []
|
|
backtrace = [
|
|
"stdio",
|
|
"unwinding",
|
|
"unwinding/hide-trace",
|
|
]
|
|
fs = []
|
|
openocd-semihosting = []
|
|
panic-handler = []
|
|
panic-unwind = [
|
|
"alloc",
|
|
"panic-handler",
|
|
"unwinding",
|
|
"unwinding/fde-static",
|
|
"unwinding/panic",
|
|
"unwinding/personality",
|
|
]
|
|
portable-atomic = ["dep:portable-atomic"]
|
|
random = ["fs"]
|
|
stdio = []
|
|
time = []
|
|
trap-hlt = []
|
|
|
|
[lib]
|
|
name = "semihosting"
|
|
path = "src/lib.rs"
|
|
doc-scrape-examples = false
|
|
|
|
[dependencies.portable-atomic]
|
|
version = "1.3"
|
|
features = ["require-cas"]
|
|
optional = true
|
|
default-features = false
|
|
|
|
[dependencies.unwinding]
|
|
version = "0.2"
|
|
features = ["unwinder"]
|
|
optional = true
|
|
default-features = false
|
|
|
|
[dev-dependencies]
|
|
|
|
[lints.clippy]
|
|
all = "warn"
|
|
as_ptr_cast_mut = "warn"
|
|
as_underscore = "warn"
|
|
default_union_representation = "warn"
|
|
inline_asm_x86_att_syntax = "warn"
|
|
pedantic = "warn"
|
|
trailing_empty_array = "warn"
|
|
transmute_undefined_repr = "warn"
|
|
undocumented_unsafe_blocks = "warn"
|
|
unused_trait_names = "warn"
|
|
|
|
[lints.clippy.bool_assert_comparison]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.borrow_as_ptr]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.cast_lossless]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.collapsible_match]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.declare_interior_mutable_const]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.doc_markdown]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.float_cmp]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.incompatible_msrv]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.manual_assert]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.manual_range_contains]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.missing_errors_doc]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.module_name_repetitions]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.naive_bytecount]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.nonminimal_bool]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.range_plus_one]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.similar_names]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.single_match]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.single_match_else]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.struct_excessive_bools]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.struct_field_names]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.too_many_arguments]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.too_many_lines]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.clippy.type_complexity]
|
|
level = "allow"
|
|
priority = 1
|
|
|
|
[lints.rust]
|
|
deprecated_safe = "warn"
|
|
improper_ctypes = "warn"
|
|
improper_ctypes_definitions = "warn"
|
|
non_ascii_idents = "warn"
|
|
rust_2018_idioms = "warn"
|
|
single_use_lifetimes = "warn"
|
|
unnameable_types = "warn"
|
|
unreachable_pub = "warn"
|
|
|
|
[lints.rust.unexpected_cfgs]
|
|
level = "warn"
|
|
priority = 0
|
|
check-cfg = [
|
|
'cfg(target_arch,values("xtensa"))',
|
|
'cfg(target_arch,values("loongarch32"))',
|
|
]
|