From 71e1a86a033c380f85dd300d788af63bfef25bab Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Thu, 26 Sep 2024 19:36:54 -0600 Subject: wip reorg --- cmd/harness/main.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cmd/harness/main.c (limited to 'cmd/harness/main.c') diff --git a/cmd/harness/main.c b/cmd/harness/main.c new file mode 100644 index 0000000..1fd9f8c --- /dev/null +++ b/cmd/harness/main.c @@ -0,0 +1,48 @@ +/* main.c - Main entry point and event loop for sbc-harness + * + * Copyright (C) 2024 Luke T. Shumaker + * SPDX-Licence-Identifier: AGPL-3.0-or-later + */ + +/* newlib */ +#include /* for strlen() */ + +/* pico-sdk */ +#include "pico/stdlib.h" + +/* local */ +#include "coroutine.h" +#include "usb_common.h" +#include "usb_keyboard.h" + +COROUTINE hello_world_cr(void *_chan) { + const char *msg = "Hello world!\n"; + usb_keyboard_rpc_t *chan = _chan; + cr_begin(); + + for (size_t i = 0;; i = (i+1) % strlen(msg)) { + cr_rpc_req(chan, NULL, msg[i]); + } + + cr_end(); +} + +int main() { + /* initialization */ + stdio_uart_init(); + //gpio_init(PICO_DEFAULT_LED_PIN); + //gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); + + usb_common_earlyinit(); + usb_keyboard_init(); + usb_common_lateinit(); + + /* set up coroutines */ + coroutine_add(usb_common_cr, NULL); + usb_keyboard_rpc_t keyboard_chan = {0}; + coroutine_add(usb_keyboard_cr, &keyboard_chan); + coroutine_add(hello_world_cr, &keyboard_chan); + + /* Event loop. */ + coroutine_main(); +} -- cgit v1.2.3-2-g168b