From 83a85d7830b08ac7517633339f53df38d7557bed Mon Sep 17 00:00:00 2001 From: Jarno Lamsa Date: Tue, 25 Sep 2018 16:29:24 +0300 Subject: [PATCH] mcr20a use core_util_critical_section functions --- .../802.15.4_RF/mcr20a-rf-driver/source/MCR20Drv.c | 10 +++++----- .../mcr20a-rf-driver/source/NanostackRfPhyMcr20a.cpp | 8 +------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/components/802.15.4_RF/mcr20a-rf-driver/source/MCR20Drv.c b/components/802.15.4_RF/mcr20a-rf-driver/source/MCR20Drv.c index a148cc5da0..23088cb4ea 100644 --- a/components/802.15.4_RF/mcr20a-rf-driver/source/MCR20Drv.c +++ b/components/802.15.4_RF/mcr20a-rf-driver/source/MCR20Drv.c @@ -44,7 +44,7 @@ #if defined(MBED_CONF_NANOSTACK_CONFIGURATION) && DEVICE_SPI -#include "platform/arm_hal_interrupt.h" +#include "platform/mbed_critical.h" /***************************************************************************** * PRIVATE VARIABLES * @@ -524,7 +524,7 @@ void MCR20Drv_IRQ_Disable void ) { - platform_enter_critical(); + core_util_critical_section_enter(); if( mPhyIrqDisableCnt == 0 ) { @@ -533,7 +533,7 @@ void mPhyIrqDisableCnt++; - platform_exit_critical(); + core_util_critical_section_exit(); } /*--------------------------------------------------------------------------- @@ -547,7 +547,7 @@ void MCR20Drv_IRQ_Enable void ) { - platform_enter_critical(); + core_util_critical_section_enter(); if( mPhyIrqDisableCnt ) { @@ -559,7 +559,7 @@ void } } - platform_exit_critical(); + core_util_critical_section_exit(); } /*--------------------------------------------------------------------------- diff --git a/components/802.15.4_RF/mcr20a-rf-driver/source/NanostackRfPhyMcr20a.cpp b/components/802.15.4_RF/mcr20a-rf-driver/source/NanostackRfPhyMcr20a.cpp index df2e4a3364..c5574bf447 100644 --- a/components/802.15.4_RF/mcr20a-rf-driver/source/NanostackRfPhyMcr20a.cpp +++ b/components/802.15.4_RF/mcr20a-rf-driver/source/NanostackRfPhyMcr20a.cpp @@ -1093,7 +1093,6 @@ static void rf_init_phy_mode(void) */ static void PHY_InterruptHandler(void) { - /* Disable and clear transceiver(IRQ_B) interrupt */ MCR20Drv_IRQ_Disable(); irq_thread->signal_set(1); } @@ -1106,6 +1105,7 @@ static void PHY_InterruptThread(void) continue; } handle_interrupt(); + MCR20Drv_IRQ_Enable(); } } @@ -1113,8 +1113,6 @@ static void handle_interrupt(void) { uint8_t xcvseqCopy; - //MCR20Drv_IRQ_Clear(); - /* Read transceiver interrupt status and control registers */ mStatusAndControlRegs[IRQSTS1] = MCR20Drv_DirectAccessSPIMultiByteRead(IRQSTS2, &mStatusAndControlRegs[IRQSTS2], 7); @@ -1158,7 +1156,6 @@ static void handle_interrupt(void) MCR20Drv_DirectAccessSPIMultiByteWrite(IRQSTS1, mStatusAndControlRegs, 5); rf_ack_wait_timer_interrupt(); - MCR20Drv_IRQ_Enable(); return; } } @@ -1182,7 +1179,6 @@ static void handle_interrupt(void) { rf_receive(); } - MCR20Drv_IRQ_Enable(); return; } @@ -1205,12 +1201,10 @@ static void handle_interrupt(void) break; } - MCR20Drv_IRQ_Enable(); return; } /* Other IRQ. Clear XCVR interrupt flags */ MCR20Drv_DirectAccessSPIMultiByteWrite(IRQSTS1, mStatusAndControlRegs, 3); - MCR20Drv_IRQ_Enable(); } /*