#include <hal/cpu.h>
-#include <hal/rtc.h>
#include <lunaix/syslog.h>
#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/vmm.h>
#include <lunaix/spike.h>
+#include <lunaix/clock.h>
+#include <lunaix/timer.h>
+#include <lunaix/keyboard.h>
+#include <lunaix/tty/tty.h>
#include <stdint.h>
extern uint8_t __kernel_start;
LOG_MODULE("LX")
+void
+test_timer(void* payload);
+
void
_kernel_main()
{
lxfree(arr);
lxfree(big_);
+ // 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;
+
+void test_timer(void* payload) {
+ clock_walltime(&datetime);
+
+ kprintf(KWARN "%u/%02u/%02u %02u:%02u:%02u\r",
+ datetime.year,
+ datetime.month,
+ datetime.day,
+ datetime.hour,
+ datetime.minute,
+ datetime.second);
}
\ No newline at end of file