commit 27af25bb882a8c50c2c7e0290eb6c77a166f9886
parent 622086fcc5ceed2c72aab98a7af66d6a103f9ad3
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sat, 16 Mar 2024 08:11:56 +0900
read special registers
Diffstat:
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/ex3/main.c b/ex3/main.c
@@ -8,6 +8,7 @@ void *get_sp(void);
void wfi(void);
void *memcpy(void *s1, void *s2, long n);
void setreg(void);
+void print_sr(void);
extern char proc0_start, proc0_size;
extern char proc1_start, proc1_size;
@@ -51,6 +52,7 @@ main(void) {
p1.r[15] = (void *) 0x20000100; // pc
for (;;) {
+ print_sr(); puts("");
setreg();
wfi();
}
@@ -84,9 +86,11 @@ isr_svcall(void) {
void
isr_alarm(void) {
int *sp = get_sp();
+ print_sr();
+ puts("");
for (int i = 0; i < 12; i += 1) {
printh(sp+i);
- printh(*(sp+i));
+ printh((void *)*(sp+i));
puts("");
}
scheduler();
diff --git a/ex3/proc.s b/ex3/proc.s
@@ -44,3 +44,10 @@ setreg:
mov r3, #3
nop
pop {pc}
+
+ .global print_sr
+print_sr:
+ push {lr}
+ mrs r0, ipsr
+ bl printh
+ pop {pc}