inital take at com

This commit is contained in:
bunnie 2020-11-24 22:45:10 +08:00
parent bc832b3a50
commit fa12e513cd
5 changed files with 32 additions and 6 deletions

17
Cargo.lock generated
View file

@ -169,6 +169,22 @@ dependencies = [
"bitflags",
]
[[package]]
name = "com"
version = "0.1.0"
dependencies = [
"com_rs",
"heapless",
"log",
"log-server",
"utralib",
"xous",
]
[[package]]
name = "com_rs"
version = "0.1.0"
[[package]]
name = "crc"
version = "1.8.1"
@ -857,6 +873,7 @@ name = "shell"
version = "0.1.0"
dependencies = [
"bitflags",
"com",
"graphics-server",
"log",
"log-server",

View file

@ -7,6 +7,7 @@ members = [
"services/graphics-server",
"services/log-server",
"services/ticktimer-server",
"services/com",
"svd2utra",
"xtask",
]
@ -15,6 +16,7 @@ default-members = [
"services/log-server",
"services/graphics-server",
"services/ticktimer-server",
"services/com",
]
# These packages have custom RUSTFLAGS, so if they

View file

@ -12,6 +12,7 @@ graphics-server = { path = "../graphics-server" }
ticktimer-server = { path = "../ticktimer-server" }
log-server = { path = "../log-server" }
log = "0.4"
com = { path = "../com"}
[target.'cfg(not(any(windows,unix)))'.dependencies]
utralib = { path = "../../utralib"}

View file

@ -71,8 +71,9 @@ impl Bounce {
}
pub fn next_rand(&mut self) -> i16 {
let ret = move_lfsr(self.lfsr);
let mut ret = move_lfsr(self.lfsr);
self.lfsr = ret;
ret *= 2; // make the ball move faster
(ret % 8) as i16
}
@ -122,15 +123,17 @@ fn shell_main() -> ! {
let graphics_server_id = xous::SID::from_bytes(b"graphics-server ").unwrap();
let ticktimer_server_id = xous::SID::from_bytes(b"ticktimer-server").unwrap();
let log_server_id = xous::SID::from_bytes(b"xous-log-server ").unwrap();
let com_id = xous::SID::from_bytes(b"com ").unwrap();
println!("SHELL: Attempting to connect to servers...");
let log_conn = xous::connect(log_server_id).unwrap();
let graphics_conn = xous::connect(graphics_server_id).unwrap();
let ticktimer_conn = xous::connect(ticktimer_server_id).unwrap();
let com_conn = xous::connect(com_id).unwrap();
println!(
"SHELL: Connected to Log server: {} Graphics server: {} Ticktimer server: {}",
log_conn, graphics_conn, ticktimer_conn,
"SHELL: Connected to Log server: {} Graphics server: {} Ticktimer server: {} Com: {}",
log_conn, graphics_conn, ticktimer_conn, com_conn,
);
assert_ne!(
@ -222,6 +225,9 @@ fn shell_main() -> ! {
graphics_server::draw_string(graphics_conn, &string_buffer).expect("unable to draw string");
// ticktimer_server::sleep_ms(ticktimer_conn, 500).expect("couldn't sleep");
if last_time > 10_000 { // after 10 seconds issue a shutdown command
com::power_off_soc(com_conn).expect("Couldn't issue powerdown command to COM");
}
// draw the ball
bouncyball.update();

View file

@ -76,7 +76,7 @@ fn build_hw_image(debug: bool, svd: Option<String>) -> Result<(), DynError> {
let kernel = build_kernel(debug)?;
let mut init = vec![];
for pkg in &["shell", "graphics-server", "ticktimer-server", "log-server"] {
for pkg in &["shell", "graphics-server", "ticktimer-server", "log-server", "com"] {
init.push(build(pkg, debug, Some(TARGET), None)?);
}
let loader = build("loader", debug, Some(TARGET), Some("loader".into()))?;
@ -145,7 +145,7 @@ fn renode_image(debug: bool) -> Result<(), DynError> {
std::env::set_var("XOUS_SVD_FILE", path.canonicalize().unwrap());
let kernel = build_kernel(debug)?;
let mut init = vec![];
for pkg in &["shell", "log-server", "graphics-server", "ticktimer-server"] {
for pkg in &["shell", "log-server", "graphics-server", "ticktimer-server", "com"] {
init.push(build(pkg, debug, Some(TARGET), None)?);
}
build("loader", debug, Some(TARGET), Some("loader".into()))?;
@ -162,7 +162,7 @@ fn renode_image(debug: bool) -> Result<(), DynError> {
fn run(debug: bool) -> Result<(), DynError> {
let stream = if debug { "debug" } else { "release" };
let init = ["shell", "log-server", "graphics-server", "ticktimer-server"];
let init = ["shell", "log-server", "graphics-server", "ticktimer-server", "com"];
// let mut init_paths = vec![];
for pkg in &init {