blob: 33d19ac768d23bb29f4256a644ab705627ed2cf1 [file]
// Licensed under the Apache-2.0 license
//! AST1060-EVB I2C Service Target
//!
//! This target runs the I2C server and client as separate userspace processes
//! communicating over IPC channels. The client exercises the server via
//! the I2C wire protocol, then calls debug_shutdown to report results.
#![no_std]
#![no_main]
use cortex_m_semihosting::debug::{EXIT_FAILURE, EXIT_SUCCESS, exit};
use target_common::{TargetInterface, declare_target};
use {console_backend as _, entry as _};
pub struct Target {}
impl TargetInterface for Target {
const NAME: &'static str = "AST1060-EVB I2C Service";
fn main() -> ! {
codegen::start();
#[expect(clippy::empty_loop)]
loop {}
}
fn shutdown(code: u32) -> ! {
pw_log::info!("Shutting down with code {}", code as u32);
let status = match code {
0 => EXIT_SUCCESS,
_ => EXIT_FAILURE,
};
exit(status);
#[expect(clippy::empty_loop)]
loop {}
}
}
declare_target!(Target);