aboutsummaryrefslogtreecommitdiffstats
path: root/ports/AVR
diff options
context:
space:
mode:
Diffstat (limited to 'ports/AVR')
-rw-r--r--ports/AVR/avr_serial.c24
-rw-r--r--ports/AVR/chcore.h10
2 files changed, 21 insertions, 13 deletions
diff --git a/ports/AVR/avr_serial.c b/ports/AVR/avr_serial.c
index f60cfb4e6..628067e83 100644
--- a/ports/AVR/avr_serial.c
+++ b/ports/AVR/avr_serial.c
@@ -40,10 +40,10 @@ FullDuplexDriver SER1;
static uint8_t ib1[SERIAL_BUFFERS_SIZE];
static uint8_t ob1[SERIAL_BUFFERS_SIZE];
-SYS_IRQ_HANDLER(USART0_RX_vect) {
+CH_IRQ_HANDLER(USART0_RX_vect) {
uint8_t sra;
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
sra = UCSR0A;
if (sra & ((1 << DOR) | (1 << UPE) | (1 << FE)))
@@ -52,13 +52,13 @@ SYS_IRQ_HANDLER(USART0_RX_vect) {
chFDDIncomingDataI(&SER1, UDR0);
chSysUnlockI();
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
-SYS_IRQ_HANDLER(USART0_UDRE_vect) {
+CH_IRQ_HANDLER(USART0_UDRE_vect) {
msg_t b;
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
chSysLockI();
b = chFDDRequestDataI(&SER1);
@@ -68,7 +68,7 @@ SYS_IRQ_HANDLER(USART0_UDRE_vect) {
else
UDR0 = b;
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
/*
@@ -99,10 +99,10 @@ FullDuplexDriver SER2;
static uint8_t ib2[SERIAL_BUFFERS_SIZE];
static uint8_t ob2[SERIAL_BUFFERS_SIZE];
-SYS_IRQ_HANDLER(USART1_RX_vect) {
+CH_IRQ_HANDLER(USART1_RX_vect) {
uint8_t sra;
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
sra = UCSR1A;
if (sra & ((1 << DOR) | (1 << UPE) | (1 << FE)))
@@ -111,13 +111,13 @@ SYS_IRQ_HANDLER(USART1_RX_vect) {
chFDDIncomingDataI(&SER2, UDR1);
chSysUnlockI();
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
-SYS_IRQ_HANDLER(USART1_UDRE_vect) {
+CH_IRQ_HANDLER(USART1_UDRE_vect) {
msg_t b;
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
chSysLockI();
b = chFDDRequestDataI(&SER2);
@@ -127,7 +127,7 @@ SYS_IRQ_HANDLER(USART1_UDRE_vect) {
else
UDR1 = b;
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/ports/AVR/chcore.h b/ports/AVR/chcore.h
index 6bb420a5d..b967cb9a0 100644
--- a/ports/AVR/chcore.h
+++ b/ports/AVR/chcore.h
@@ -208,10 +208,18 @@ asm ("" : : : "r18", "r19", "r20", "r21", "r22", "r23", "r24", \
*/
#define sys_enable_from_isr()
-#if ENABLE_WFI_IDLE != 0
+/**
+ * Disables all the interrupt sources, even those having a priority higher
+ * to the kernel.
+ * In this port it is no different than sys_disable() because the simple
+ * interrupt handling
+ */
+#define sys_disable_all() sys_disable()
+
/**
* This port function is implemented as inlined code for performance reasons.
*/
+#if ENABLE_WFI_IDLE != 0
#define sys_wait_for_interrupt() { \
asm volatile ("sleep"); \
}