t-kernel team mailing list archive
-
t-kernel team
-
Mailing list archive
-
Message #00055
[PATCH] mx28: [wip] icoll
From: Du Huanpeng <u74147@xxxxxxxxx>
Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
tkernel_source/monitor/lib/printk.c | 5 -----
tkernel_source/monitor/tmmain/kernel.c | 14 ++++++++++++++
tkernel_source/monitor/tmmain/monkey.S | 29 +++++++++++++++++++++++++++++
3 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/tkernel_source/monitor/lib/printk.c b/tkernel_source/monitor/lib/printk.c
index e7fb8da..ae23b2d 100644
--- a/tkernel_source/monitor/lib/printk.c
+++ b/tkernel_source/monitor/lib/printk.c
@@ -89,11 +89,6 @@ int vprintks(const char *fmt, va_list args)
char printbuf[32 + 1];
#define printbufend (printbuf + sizeof(printbuf) - 1)
- int flag, pad;
- #define PAD_RIGHT 1
- #define PAD_LEFT 2
-
-
j = 0;
i = 0;
pi = 0;
diff --git a/tkernel_source/monitor/tmmain/kernel.c b/tkernel_source/monitor/tmmain/kernel.c
index 1d50761..1a0f61c 100644
--- a/tkernel_source/monitor/tmmain/kernel.c
+++ b/tkernel_source/monitor/tmmain/kernel.c
@@ -1,5 +1,11 @@
#include <tmonitor.h>
+extern int getcpsr(void);
+int set_cpsr(int cpsr);
+int get_cpsr(void);
+
+extern int getr(int *);
+
extern int syscall(int);
int start_kernel(int argc, char *argv[])
@@ -7,9 +13,17 @@ int start_kernel(int argc, char *argv[])
int i;
int rc;
int reg[16];
+ int cpsr;
+
+ cpsr = get_cpsr();
+ cpsr &= ~(1<<6 | 1<<7); /* enable irq & fiq */
+ cpsr = set_cpsr(cpsr);
printk("starting kernel...");
+ avic_init_irq((void *)0x80000000, 128);
+
+
printk("CPSR: [%08X]\n", getcpsr());
getr(reg);
diff --git a/tkernel_source/monitor/tmmain/monkey.S b/tkernel_source/monitor/tmmain/monkey.S
index 6ba0558..42b0406 100644
--- a/tkernel_source/monitor/tmmain/monkey.S
+++ b/tkernel_source/monitor/tmmain/monkey.S
@@ -31,5 +31,34 @@ getpc:
.global getr
getr:
+
stmia r0, {r0-r15}
+ mrs r1, cpsr
+ str r1, [r0, #16]
+ mrs r1, spsr
+ str r1, [r0, #17]
+ ldr r1, [r0, #1]
+
+ bx lr
+
+ stmfd sp, {r0-r15}
+ mrs r0, cpsr
+ str r0, [sp, #-16]
+ mrs r0, spsr
+ str r0, [sp, #-17]
+
+
+ .global set_cpsr
+ .global get_cpsr
+ .global mask_cpsr
+get_cpsr:
+ mrs r0, cpsr
+ bx lr
+set_cpsr:
+ msr cpsr, r0
bx lr
+
+mask_cpsr:
+ bl printk
+ bx lr
+
--
1.9.1
References