git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Basic PS/2 keyboard driver, and ...
[lunaix-os.git]
/
lunaix-os
/
kernel
/
k_main.c
diff --git
a/lunaix-os/kernel/k_main.c
b/lunaix-os/kernel/k_main.c
index fc57669154f79a48bfd5f004fa98326bca85ecfb..b3b11031600f09744ac9300d123bfaa03cf9b77e 100644
(file)
--- a/
lunaix-os/kernel/k_main.c
+++ b/
lunaix-os/kernel/k_main.c
@@
-1,27
+1,32
@@
#include <hal/cpu.h>
#include <hal/cpu.h>
-#include <hal/rtc.h>
-#include <libc/stdio.h>
+#include <lunaix/syslog.h>
#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/vmm.h>
#include <lunaix/spike.h>
#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/vmm.h>
#include <lunaix/spike.h>
+#include <lunaix/clock.h>
+#include <lunaix/timer.h>
#include <stdint.h>
extern uint8_t __kernel_start;
#include <stdint.h>
extern uint8_t __kernel_start;
+LOG_MODULE("LX")
+
+void
+test_timer(void* payload);
+
void
_kernel_main()
{
char buf[64];
void
_kernel_main()
{
char buf[64];
-
printf(
"Hello higher half kernel world!\nWe are now running in virtual "
+
kprintf(KINFO
"Hello higher half kernel world!\nWe are now running in virtual "
"address space!\n\n");
cpu_get_brand(buf);
"address space!\n\n");
cpu_get_brand(buf);
- printf("CPU: %s\n\n", buf);
+
k
printf("CPU: %s\n\n", buf);
void* k_start = vmm_v2p(&__kernel_start);
void* k_start = vmm_v2p(&__kernel_start);
- printf(
- "The kernel's base address mapping: %p->%p\n", &__kernel_start, k_start);
+ kprintf(KINFO "The kernel's base address mapping: %p->%p\n", &__kernel_start, k_start);
// test malloc & free
// test malloc & free
@@
-40,17
+45,23
@@
_kernel_main()
big_[1] = 23;
big_[2] = 3;
big_[1] = 23;
big_[2] = 3;
-
printf(
"%u, %u, %u\n", big_[0], big_[1], big_[2]);
+
kprintf(KINFO
"%u, %u, %u\n", big_[0], big_[1], big_[2]);
// good free
lxfree(arr);
lxfree(big_);
// good free
lxfree(arr);
lxfree(big_);
- rtc_datetime datetime;
+ timer_run_second(1, test_timer, NULL, TIMER_MODE_PERIODIC);
+
+ spin();
+}
+
+static datetime_t datetime;
- rtc_get_datetime(&datetime);
+void test_timer(void* payload) {
+ clock_walltime(&datetime);
-
printf("%u/%u/%u %u:%u:%u
",
+
kprintf(KWARN "%u/%02u/%02u %02u:%02u:%02u\r
",
datetime.year,
datetime.month,
datetime.day,
datetime.year,
datetime.month,
datetime.day,