X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/37fb1e9cee287c9ae8c065ff517c508eb5f9d7dd..0471b0eeea5ea30883c776dd53275ec6b8454ca7:/lunaix-os/kernel/k_main.c diff --git a/lunaix-os/kernel/k_main.c b/lunaix-os/kernel/k_main.c index fc57669..fe5645f 100644 --- a/lunaix-os/kernel/k_main.c +++ b/lunaix-os/kernel/k_main.c @@ -1,27 +1,34 @@ #include -#include -#include +#include #include #include #include +#include +#include +#include +#include #include extern uint8_t __kernel_start; +LOG_MODULE("LX") + +void +test_timer(void* payload); + 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); - printf("CPU: %s\n\n", buf); + kprintf("CPU: %s\n\n", buf); 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 @@ -40,17 +47,35 @@ _kernel_main() 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_); - rtc_datetime datetime; + // timer_run_second(1, test_timer, NULL, TIMER_MODE_PERIODIC); + + while (1) + { + struct kdb_keyinfo_pkt* keyevent = kbd_try_read_one(); + if (!keyevent) { + continue; + } + if ((keyevent->state & KBD_KEY_FPRESSED) && (keyevent->keycode & 0xff00) <= KEYPAD) { + tty_put_char((char)(keyevent->keycode & 0x00ff)); + } + lxfree(keyevent); + } + + 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,