From 753cc1a1a464fcf15a3a4c6f2acf285a0b2028be Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Fri, 9 Apr 2021 22:42:17 +0200 Subject: [PATCH] chore(epicardium): Move all core1 code into a separate subdir --- epicardium/ble/epic_ble_api.c | 1 + epicardium/drivers/bhi.c | 1 + epicardium/drivers/max30001.c | 1 + epicardium/drivers/max86150.c | 1 + epicardium/drivers/pmic.c | 1 + epicardium/drivers/rtc.c | 1 + epicardium/drivers/serial.c | 1 + epicardium/fs/filesystem_fat.c | 1 + epicardium/main.c | 2 ++ epicardium/meson.build | 2 ++ epicardium/modules/hardware.c | 2 ++ epicardium/modules/meson.build | 3 --- epicardium/modules/modules.h | 19 ------------------- epicardium/support.c | 2 +- .../{modules => user_core}/dispatcher.c | 0 .../{modules => user_core}/interrupts.c | 0 epicardium/user_core/interrupts.h | 12 ++++++++++++ epicardium/{modules => user_core}/lifecycle.c | 1 + epicardium/user_core/meson.build | 5 +++++ epicardium/user_core/user_core.h | 14 ++++++++++++++ 20 files changed, 47 insertions(+), 23 deletions(-) rename epicardium/{modules => user_core}/dispatcher.c (100%) rename epicardium/{modules => user_core}/interrupts.c (100%) create mode 100644 epicardium/user_core/interrupts.h rename epicardium/{modules => user_core}/lifecycle.c (99%) create mode 100644 epicardium/user_core/meson.build create mode 100644 epicardium/user_core/user_core.h diff --git a/epicardium/ble/epic_ble_api.c b/epicardium/ble/epic_ble_api.c index b83eafe3c..92bb398b5 100644 --- a/epicardium/ble/epic_ble_api.c +++ b/epicardium/ble/epic_ble_api.c @@ -3,6 +3,7 @@ #include "epicardium.h" #include "os/core.h" #include "modules/modules.h" +#include "user_core/interrupts.h" #include "wsf_buf.h" #include "app_api.h" diff --git a/epicardium/drivers/bhi.c b/epicardium/drivers/bhi.c index 1c9e30f21..2107f3f8b 100644 --- a/epicardium/drivers/bhi.c +++ b/epicardium/drivers/bhi.c @@ -16,6 +16,7 @@ #include "modules/modules.h" #include "drivers/drivers.h" #include "modules/stream.h" +#include "user_core/interrupts.h" /* BHI160 Firmware Blob. Contents are defined in libcard10. */ extern uint8_t bhy1_fw[]; diff --git a/epicardium/drivers/max30001.c b/epicardium/drivers/max30001.c index dfb7f920d..e7d1f964a 100644 --- a/epicardium/drivers/max30001.c +++ b/epicardium/drivers/max30001.c @@ -16,6 +16,7 @@ #include "modules/modules.h" #include "modules/stream.h" #include "os/mutex.h" +#include "user_core/interrupts.h" /* Interrupt Pin */ static const gpio_cfg_t max30001_interrupt_pin = { diff --git a/epicardium/drivers/max86150.c b/epicardium/drivers/max86150.c index 258b4d7f8..7f1cdddaa 100644 --- a/epicardium/drivers/max86150.c +++ b/epicardium/drivers/max86150.c @@ -7,6 +7,7 @@ #include "modules/stream.h" #include "gpio.h" #include "pmic.h" +#include "user_core/interrupts.h" #include "FreeRTOS.h" #include "task.h" diff --git a/epicardium/drivers/pmic.c b/epicardium/drivers/pmic.c index dabd12e2d..aeb6dc6ab 100644 --- a/epicardium/drivers/pmic.c +++ b/epicardium/drivers/pmic.c @@ -3,6 +3,7 @@ #include "drivers/drivers.h" #include "os/core.h" #include "os/config.h" +#include "user_core/user_core.h" #include "card10.h" #include "pmic.h" diff --git a/epicardium/drivers/rtc.c b/epicardium/drivers/rtc.c index fdd3e4788..00b677f44 100644 --- a/epicardium/drivers/rtc.c +++ b/epicardium/drivers/rtc.c @@ -1,6 +1,7 @@ #include "epicardium.h" #include "os/core.h" #include "modules/modules.h" +#include "user_core/interrupts.h" #include "FreeRTOS.h" #include "task.h" diff --git a/epicardium/drivers/serial.c b/epicardium/drivers/serial.c index 4be8c143b..0b39e4931 100644 --- a/epicardium/drivers/serial.c +++ b/epicardium/drivers/serial.c @@ -2,6 +2,7 @@ #include "os/core.h" #include "modules/modules.h" #include "drivers/drivers.h" +#include "user_core/interrupts.h" #include "max32665.h" #include "usb/cdcacm.h" diff --git a/epicardium/fs/filesystem_fat.c b/epicardium/fs/filesystem_fat.c index c3fc84ee6..6fe9dfc62 100644 --- a/epicardium/fs/filesystem_fat.c +++ b/epicardium/fs/filesystem_fat.c @@ -20,6 +20,7 @@ #include "fs/internal.h" #include "modules/filesystem.h" +#include "user_core/user_core.h" #include "epicardium.h" #include "card10.h" #include "os/core.h" diff --git a/epicardium/main.c b/epicardium/main.c index 0bf4db773..48c78e928 100644 --- a/epicardium/main.c +++ b/epicardium/main.c @@ -3,8 +3,10 @@ #include "os/work_queue.h" #include "modules/filesystem.h" #include "drivers/drivers.h" +#include "user_core/user_core.h" #include "os/config.h" #include "card10-version.h" +#include "user_core/interrupts.h" #include "gfx.h" #include "display.h" diff --git a/epicardium/meson.build b/epicardium/meson.build index 6fd139165..27319b814 100644 --- a/epicardium/meson.build +++ b/epicardium/meson.build @@ -67,6 +67,7 @@ freertos = static_library( subdir('modules/') subdir('drivers/') +subdir('user_core/') subdir('ble/') subdir('os/') @@ -102,6 +103,7 @@ elf = executable( 'fs/fs_util.c', module_sources, os_sources, + user_core_sources, driver_sources, l0der_sources, ble_sources, diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index ed735154b..106204505 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -7,6 +7,8 @@ #include "modules/modules.h" #include "modules/stream.h" #include "drivers/drivers.h" +#include "user_core/interrupts.h" +#include "user_core/user_core.h" #include "card10.h" #include "display.h" diff --git a/epicardium/modules/meson.build b/epicardium/modules/meson.build index 2bf9ecd66..4de291039 100644 --- a/epicardium/modules/meson.build +++ b/epicardium/modules/meson.build @@ -1,10 +1,7 @@ module_sources = files( - 'dispatcher.c', 'fileops.c', 'hardware.c', 'hw-lock.c', - 'interrupts.c', - 'lifecycle.c', 'personal_state.c', 'stream.c', ) diff --git a/epicardium/modules/modules.h b/epicardium/modules/modules.h index 880c241f2..408cc395f 100644 --- a/epicardium/modules/modules.h +++ b/epicardium/modules/modules.h @@ -9,30 +9,11 @@ #include <stdint.h> #include <stdbool.h> -/* ---------- Dispatcher --------------------------------------------------- */ -void vApiDispatcher(void *pvParameters); -void dispatcher_mutex_init(void); -extern struct mutex api_mutex; -extern TaskHandle_t dispatcher_task_id; - /* ---------- Hardware Init & Reset ---------------------------------------- */ int hardware_early_init(void); int hardware_init(void); int hardware_reset(void); -/* ---------- Lifecycle ---------------------------------------------------- */ -void vLifecycleTask(void *pvParameters); -void return_to_menu(void); - -/* ---------- Interrupts --------------------------------------------------- */ -void interrupt_init(void); -void interrupt_trigger(api_int_id_t id); -void interrupt_trigger_sync(api_int_id_t id); -void interrupt_trigger_unsafe(api_int_id_t id) __attribute__((deprecated( - "interrupt_trigger_unsafe() is racy and only exists for legacy code." -))); -void vInterruptsTask(void *pvParameters); - /* ---------- LED Animation / Personal States ------------------------------ */ #define PERSONAL_STATE_LED 14 void vLedTask(void *pvParameters); diff --git a/epicardium/support.c b/epicardium/support.c index 728ecd514..cbb90f8ba 100644 --- a/epicardium/support.c +++ b/epicardium/support.c @@ -6,7 +6,7 @@ #include "task.h" #include "api/dispatcher.h" -#include "modules/modules.h" +#include "user_core/user_core.h" #include "os/core.h" #include "card10.h" diff --git a/epicardium/modules/dispatcher.c b/epicardium/user_core/dispatcher.c similarity index 100% rename from epicardium/modules/dispatcher.c rename to epicardium/user_core/dispatcher.c diff --git a/epicardium/modules/interrupts.c b/epicardium/user_core/interrupts.c similarity index 100% rename from epicardium/modules/interrupts.c rename to epicardium/user_core/interrupts.c diff --git a/epicardium/user_core/interrupts.h b/epicardium/user_core/interrupts.h new file mode 100644 index 000000000..5abcc2c87 --- /dev/null +++ b/epicardium/user_core/interrupts.h @@ -0,0 +1,12 @@ +#pragma once + +#include "epicardium.h" + +/* ---------- Interrupts --------------------------------------------------- */ +void interrupt_init(void); +void interrupt_trigger(api_int_id_t id); +void interrupt_trigger_sync(api_int_id_t id); +void interrupt_trigger_unsafe(api_int_id_t id) __attribute__((deprecated( + "interrupt_trigger_unsafe() is racy and only exists for legacy code." +))); +void vInterruptsTask(void *pvParameters); diff --git a/epicardium/modules/lifecycle.c b/epicardium/user_core/lifecycle.c similarity index 99% rename from epicardium/modules/lifecycle.c rename to epicardium/user_core/lifecycle.c index 2c64b825f..efe1f532a 100644 --- a/epicardium/modules/lifecycle.c +++ b/epicardium/user_core/lifecycle.c @@ -3,6 +3,7 @@ #include "modules/modules.h" #include "os/config.h" #include "os/mutex.h" +#include "user_core/user_core.h" #include "api/dispatcher.h" #include "l0der/l0der.h" diff --git a/epicardium/user_core/meson.build b/epicardium/user_core/meson.build new file mode 100644 index 000000000..daf7395fb --- /dev/null +++ b/epicardium/user_core/meson.build @@ -0,0 +1,5 @@ +user_core_sources = files( + 'dispatcher.c', + 'interrupts.c', + 'lifecycle.c', +) diff --git a/epicardium/user_core/user_core.h b/epicardium/user_core/user_core.h new file mode 100644 index 000000000..5b090e6f9 --- /dev/null +++ b/epicardium/user_core/user_core.h @@ -0,0 +1,14 @@ +#pragma once + +#include "FreeRTOS.h" +#include "os/mutex.h" + +/* ---------- Dispatcher --------------------------------------------------- */ +void vApiDispatcher(void *pvParameters); +void dispatcher_mutex_init(void); +extern struct mutex api_mutex; +extern TaskHandle_t dispatcher_task_id; + +/* ---------- Lifecycle ---------------------------------------------------- */ +void vLifecycleTask(void *pvParameters); +void return_to_menu(void); -- GitLab