working rtic on TM4C123GXL

This commit is contained in:
Priec
2025-10-10 19:12:45 +02:00
parent 42ef7c380d
commit 0b8bf041c9
8 changed files with 21 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
{ {
description = "EK-TM4C123GXL (Tiva C) board RTIC dev flake using probe-rs"; description = "EK-TM4C123GXL (Tiva C) board RTIC dev flake";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
@@ -27,7 +27,6 @@
cargo-binutils cargo-binutils
flip-link flip-link
gcc-arm-embedded gcc-arm-embedded
probe-rs
openocd openocd
cargo-generate cargo-generate
]; ];
@@ -35,7 +34,6 @@
shellHook = '' shellHook = ''
echo ">>> EK-TM4C123GXL RTIC DevShell ready." echo ">>> EK-TM4C123GXL RTIC DevShell ready."
rustc --version rustc --version
probe-rs --version
''; '';
}; };
}); });

View File

@@ -0,0 +1,5 @@
[target.thumbv7em-none-eabihf]
rustflags = ["-C", "link-arg=-Tlink.x"]
[build]
target = "thumbv7em-none-eabihf"

1
tm4c-rtic-example/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
target/

View File

@@ -176,6 +176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bc68b1fa2eefbb7ad6747b299b79c8fca92163dfa46f0e279f39109cf272186" checksum = "6bc68b1fa2eefbb7ad6747b299b79c8fca92163dfa46f0e279f39109cf272186"
dependencies = [ dependencies = [
"bare-metal 1.0.0", "bare-metal 1.0.0",
"cortex-m",
"critical-section", "critical-section",
"portable-atomic", "portable-atomic",
"rtic-core", "rtic-core",
@@ -281,6 +282,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbdca3909d1c9ab4aba7a85b6b606f90b1bf4ae19a14c9bc4772b02017a82aad" checksum = "fbdca3909d1c9ab4aba7a85b6b606f90b1bf4ae19a14c9bc4772b02017a82aad"
dependencies = [ dependencies = [
"cortex-m", "cortex-m",
"cortex-m-rt",
"vcell", "vcell",
] ]

View File

@@ -1,11 +1,11 @@
[package] [package]
name = "tm4c-rtic-example" name = "tm4c-rtic-example"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2024"
[dependencies] [dependencies]
cortex-m = "0.7.7" cortex-m = "0.7.7"
cortex-m-rt = "0.7.3" cortex-m-rt = "0.7.3"
panic-halt = "0.2.0" panic-halt = "0.2.0"
tm4c123x-hal = "0.10.1" tm4c123x-hal = { version = "0.10.1", features = ["rt"] }
rtic = "2.0.0" rtic = { version = "2.0.0", features = ["thumbv7-backend"] }

View File

@@ -0,0 +1,5 @@
MEMORY
{
FLASH : ORIGIN = 0x00000000, LENGTH = 256K
RAM : ORIGIN = 0x20000000, LENGTH = 32K
}

View File

@@ -6,12 +6,10 @@
#![deny(unsafe_code)] #![deny(unsafe_code)]
#![deny(missing_docs)] #![deny(missing_docs)]
use panic_semihosting as _; use panic_halt as _;
#[rtic::app(device = lm3s6965, dispatchers = [SSI0])] #[rtic::app(device = tm4c123x_hal::tm4c123x, dispatchers = [SSI0])]
mod app { mod app {
use cortex_m_semihosting::{debug, hprintln};
#[shared] #[shared]
struct Shared {} struct Shared {}
@@ -20,16 +18,12 @@ mod app {
#[init] #[init]
fn init(_: init::Context) -> (Shared, Local) { fn init(_: init::Context) -> (Shared, Local) {
hprintln!("init");
foo::spawn().unwrap();
foo::spawn().unwrap();
(Shared {}, Local {}) (Shared {}, Local {})
} }
#[task] #[task]
async fn foo(_: foo::Context) { async fn foo(_: foo::Context) {
hprintln!("foo");
debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator
} }
} }

View File

@@ -1 +1 @@
{"rustc_fingerprint":13532102840378780987,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/nix/store/ykm6in4f9h723ca61pwmiyc0mzibrbcz-rust-default-1.92.0-nightly-2025-10-09\noff\npacked\nunpacked\n___\ndebug_assertions\nfmt_debug=\"full\"\noverflow_checks\npanic=\"unwind\"\nproc_macro\nrelocation_model=\"pic\"\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"x87\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_has_reliable_f128\ntarget_has_reliable_f16\ntarget_has_reliable_f16_math\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nub_checks\nunix\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.92.0-nightly (b6f0945e4 2025-10-08)\nbinary: rustc\ncommit-hash: b6f0945e4681bc4d2faa7c22c5f61dc36abf7dd2\ncommit-date: 2025-10-08\nhost: x86_64-unknown-linux-gnu\nrelease: 1.92.0-nightly\nLLVM version: 21.1.2\n","stderr":""}},"successes":{}} {"rustc_fingerprint":13532102840378780987,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/nix/store/ykm6in4f9h723ca61pwmiyc0mzibrbcz-rust-default-1.92.0-nightly-2025-10-09\noff\npacked\nunpacked\n___\ndebug_assertions\nfmt_debug=\"full\"\noverflow_checks\npanic=\"unwind\"\nproc_macro\nrelocation_model=\"pic\"\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"x87\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_has_reliable_f128\ntarget_has_reliable_f16\ntarget_has_reliable_f16_math\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nub_checks\nunix\n","stderr":""},"2668284298704293751":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.a\n/nix/store/ykm6in4f9h723ca61pwmiyc0mzibrbcz-rust-default-1.92.0-nightly-2025-10-09\noff\n___\ndebug_assertions\nfmt_debug=\"full\"\noverflow_checks\npanic=\"abort\"\nproc_macro\nrelocation_model=\"static\"\ntarget_abi=\"eabihf\"\ntarget_arch=\"arm\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_feature=\"dsp\"\ntarget_feature=\"fpregs\"\ntarget_feature=\"mclass\"\ntarget_feature=\"thumb-mode\"\ntarget_feature=\"thumb2\"\ntarget_feature=\"v5te\"\ntarget_feature=\"v6\"\ntarget_feature=\"v6k\"\ntarget_feature=\"v6t2\"\ntarget_feature=\"v7\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_has_reliable_f128\ntarget_has_reliable_f16\ntarget_has_reliable_f16_math\ntarget_os=\"none\"\ntarget_pointer_width=\"32\"\ntarget_vendor=\"unknown\"\nub_checks\n","stderr":"warning: dropping unsupported crate type `dylib` for target `thumbv7em-none-eabihf`\n\nwarning: dropping unsupported crate type `cdylib` for target `thumbv7em-none-eabihf`\n\nwarning: dropping unsupported crate type `proc-macro` for target `thumbv7em-none-eabihf`\n\nwarning: 3 warnings emitted\n\n"},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.92.0-nightly (b6f0945e4 2025-10-08)\nbinary: rustc\ncommit-hash: b6f0945e4681bc4d2faa7c22c5f61dc36abf7dd2\ncommit-date: 2025-10-08\nhost: x86_64-unknown-linux-gnu\nrelease: 1.92.0-nightly\nLLVM version: 21.1.2\n","stderr":""}},"successes":{}}