From 4c8687014e421fae10754c1d40ca2cb7e9b06977 Mon Sep 17 00:00:00 2001 From: Aadi Desai <21363892+supleed2@users.noreply.github.com> Date: Sat, 10 Jun 2023 14:04:15 +0100 Subject: [PATCH] Add custom `isr.cpp` to project --- demo/Makefile | 2 +- demo/isr.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 demo/isr.cpp diff --git a/demo/Makefile b/demo/Makefile index 96da1d5..b4a494c 100644 --- a/demo/Makefile +++ b/demo/Makefile @@ -3,7 +3,7 @@ BUILD_DIR?=../build/gsd_orangecrab/ include $(BUILD_DIR)/software/include/generated/variables.mak include $(SOC_DIRECTORY)/software/common.mak -OBJECTS = audio.o can.o crt0.o donut.o led.o main.o +OBJECTS = audio.o can.o crt0.o donut.o isr.o led.o main.o CFLAGS += -DWITH_CXX diff --git a/demo/isr.cpp b/demo/isr.cpp new file mode 100644 index 0000000..3032651 --- /dev/null +++ b/demo/isr.cpp @@ -0,0 +1,30 @@ +// This file is Copyright (c) 2013-2014 Sebastien Bourdeauducq +// This file is Copyright (c) 2019 Gabriel L. Somlo +// This file is Copyright (c) 2020 Raptor Engineering, LLC +// License: BSD + +#include "can" +#include +#include +#include +#include +#include + +#ifdef CONFIG_CPU_HAS_INTERRUPT +void isr(void) { + __attribute__((unused)) unsigned int irqs; + + irqs = irq_pending() & irq_getmask(); + +#ifdef CSR_UART_BASE +#ifndef UART_POLLING + if (irqs & (1 << UART_INTERRUPT)) + uart_isr(); +#endif +#ifdef CAN_INTERRUPT + if (irqs & (1 << CAN_INTERRUPT)) + can_isr(); +#endif +#endif +} +#endif