From 9042cb42e57a1cc6b72b2d95ab3eab9a33436f13 Mon Sep 17 00:00:00 2001 From: smckown Date: Fri, 8 May 2009 23:19:07 +0000 Subject: [PATCH] Changes to reduce atomic code. --- tos/chips/msp430/usci/Msp430SpiP.nc | 43 ++++++++++++----------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/tos/chips/msp430/usci/Msp430SpiP.nc b/tos/chips/msp430/usci/Msp430SpiP.nc index 69fca5a5..b4a25436 100644 --- a/tos/chips/msp430/usci/Msp430SpiP.nc +++ b/tos/chips/msp430/usci/Msp430SpiP.nc @@ -72,10 +72,10 @@ implementation { }; uint8_t m_pins; - uint8_t* m_txBuf; - uint8_t* m_rxBuf; - uint16_t m_len; - uint16_t m_pos; + norace uint8_t* m_txBuf; + norace uint8_t* m_rxBuf; + norace uint16_t m_len; + norace uint16_t m_pos; inline bool is4pin() /* TRUE if the SPI bus is in 4-pin mode */ { @@ -163,12 +163,10 @@ implementation { task void signalSendDone() { - atomic { - error_t error = (m_pos == m_len) ? SUCCESS : FAIL; + error_t error = (m_pos == m_len) ? SUCCESS : FAIL; - m_len = 0; - signal SpiPacket.sendDone(m_txBuf, m_rxBuf, m_pos, error); - } + m_len = 0; + signal SpiPacket.sendDone(m_txBuf, m_rxBuf, m_pos, error); } async command void ResourceConfigure.unconfigure() @@ -269,22 +267,15 @@ implementation { if (isBusy() || (!txBuf && !rxBuf) || len == 0) return FAIL; else { - atomic { - m_txBuf = txBuf; - m_rxBuf = rxBuf; - m_len = len; - m_pos = 0; - if (sendData()) { - call Registers.setIeRx(); - return SUCCESS; - } else if (m_pos) { - post signalSendDone(); - return SUCCESS; - } else { - m_len = 0; - return FAIL; - } - } + m_txBuf = txBuf; + m_rxBuf = rxBuf; + m_len = len; + m_pos = 0; + if (sendData()) + call Registers.setIeRx(); + else + post signalSendDone(); + return SUCCESS; } } @@ -300,7 +291,7 @@ implementation { return; } call Registers.clrIeRx(); - post signalSendDone(); /* Don't signal from ISR context */ + post signalSendDone(); } default async event void SpiPacket.sendDone(uint8_t*, uint8_t*, uint16_t, -- 2.39.2