summaryrefslogtreecommitdiff
path: root/demo/main.c
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-10-04 01:19:00 -0600
committerAlejandro Soto <alejandro@34project.org>2023-10-04 01:19:00 -0600
commit7e1dd67fd1f1618621dc0b995059e33d6c098aca (patch)
tree01901be0b73cab4abb85721c73d55dae2af79892 /demo/main.c
parent897bd990f9e5ef1be358172c6804d49ffe7c453c (diff)
demo: implement rd, wr cmds
Diffstat (limited to 'demo/main.c')
-rw-r--r--demo/main.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/demo/main.c b/demo/main.c
index efc183b..fe17ec2 100644
--- a/demo/main.c
+++ b/demo/main.c
@@ -22,6 +22,26 @@ static void cmd_halt(char **tokens)
halt_cpus(mask);
}
+static void cmd_rd(char **tokens)
+{
+ void *ptr;
+ if (parse_aligned(tokens, &ptr) < 0 || expect_end(tokens) < 0)
+ return;
+
+ print("%p: %x", ptr, *(volatile unsigned *)ptr);
+}
+
+static void cmd_wr(char **tokens)
+{
+ void *ptr;
+ unsigned val;
+
+ if (parse_aligned(tokens, &ptr) < 0 || parse_hex(tokens, &val) < 0 || expect_end(tokens) < 0)
+ return;
+
+ *(volatile unsigned *)ptr = val;
+}
+
void bsp_main(void)
{
run_cpu(1);
@@ -43,6 +63,10 @@ void bsp_main(void)
cmd_run(&tokens);
else if (!strcmp(cmd, "halt"))
cmd_halt(&tokens);
+ else if (!strcmp(cmd, "rd"))
+ cmd_rd(&tokens);
+ else if (!strcmp(cmd, "wr"))
+ cmd_wr(&tokens);
else
print("unknown command '%s'", cmd);
}