[Tinyos-2-commits] CVS: tinyos-2.x/tos/chips/atm128 Atm128UartP.nc,
1.1.2.4, 1.1.2.5 HplAtm128UartP.nc, 1.1.2.7, 1.1.2.8
Alec Woo
alecwoo at users.sourceforge.net
Fri May 25 16:51:30 PDT 2007
- Previous message: [Tinyos-2-commits]
CVS: tinyos-2.x/apps/tests/deluge/Blink Makefile, 1.1, 1.2
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/chips/msp430/adc12
Msp430Adc12ClientAutoDMAC.nc, 1.4,
1.5 Msp430Adc12ClientAutoDMA_RVGC.nc, 1.4,
1.5 Msp430Adc12ClientAutoRVGC.nc, 1.4,
1.5 Msp430Adc12ClientC.nc, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-2.x/tos/chips/atm128
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv23141
Modified Files:
Tag: tinyos-2_0_devel-BRANCH
Atm128UartP.nc HplAtm128UartP.nc
Log Message:
Checked over the logic of the implementation.
Compiled with the TestCase.
We need to run over the UART regression test to make sure this is ok.
Index: Atm128UartP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/chips/atm128/Atm128UartP.nc,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -C2 -d -r1.1.2.4 -r1.1.2.5
*** Atm128UartP.nc 7 Nov 2006 23:14:59 -0000 1.1.2.4
--- Atm128UartP.nc 25 May 2007 23:51:28 -0000 1.1.2.5
***************
*** 58,61 ****
--- 58,63 ----
norace uint16_t m_tx_pos, m_rx_pos;
norace uint16_t m_byte_time;
+ norace uint8_t m_rx_intr;
+ norace uint8_t m_tx_intr;
command error_t Init.init() {
***************
*** 68,73 ****
--- 70,83 ----
command error_t StdControl.start(){
+ /* make sure interupts are off and set flags */
+ call HplUart.disableTxIntr();
+ call HplUart.disableRxIntr();
+ m_rx_intr = 0;
+ m_tx_intr = 0;
+
+ /* enable tx/rx */
call HplUartTxControl.start();
call HplUartRxControl.start();
+
return SUCCESS;
}
***************
*** 80,89 ****
async command error_t UartStream.enableReceiveInterrupt(){
! call HplUartRxControl.start();
return SUCCESS;
}
async command error_t UartStream.disableReceiveInterrupt(){
! call HplUartRxControl.stop();
return SUCCESS;
}
--- 90,105 ----
async command error_t UartStream.enableReceiveInterrupt(){
! atomic{
! m_rx_intr = 3;
! call HplUart.enableRxIntr();
! }
return SUCCESS;
}
async command error_t UartStream.disableReceiveInterrupt(){
! atomic{
! call HplUart.disableRxIntr();
! m_rx_intr = 0;
! }
return SUCCESS;
}
***************
*** 99,102 ****
--- 115,120 ----
m_rx_len = len;
m_rx_pos = 0;
+ m_rx_intr |= 1;
+ call HplUart.enableRxIntr();
}
***************
*** 111,115 ****
if ( m_rx_pos >= m_rx_len ) {
uint8_t* buf = m_rx_buf;
! m_rx_buf = NULL;
signal UartStream.receiveDone( buf, m_rx_len, SUCCESS );
}
--- 129,139 ----
if ( m_rx_pos >= m_rx_len ) {
uint8_t* buf = m_rx_buf;
! atomic{
! m_rx_buf = NULL;
! if(m_rx_intr != 3){
! call HplUart.disableRxIntr();
! m_rx_intr = 0;
! }
! }
signal UartStream.receiveDone( buf, m_rx_len, SUCCESS );
}
***************
*** 131,134 ****
--- 155,160 ----
m_tx_len = len;
m_tx_pos = 0;
+ m_tx_intr = 1;
+ call HplUart.enableTxIntr();
call HplUart.tx( buf[ m_tx_pos++ ] );
***************
*** 145,148 ****
--- 171,176 ----
uint8_t* buf = m_tx_buf;
m_tx_buf = NULL;
+ m_tx_intr = 0;
+ call HplUart.disableTxIntr();
signal UartStream.sendDone( buf, m_tx_len, SUCCESS );
}
***************
*** 151,154 ****
--- 179,185 ----
async command error_t UartByte.send( uint8_t byte ){
+ if(m_tx_intr)
+ return FAIL;
+
call HplUart.tx( byte );
while ( !call HplUart.isTxEmpty() );
***************
*** 157,164 ****
async command error_t UartByte.receive( uint8_t * byte, uint8_t timeout){
!
uint16_t timeout_micro = m_byte_time * timeout + 1;
uint16_t start;
start = call Counter.get();
while ( call HplUart.isRxEmpty() ) {
--- 188,198 ----
async command error_t UartByte.receive( uint8_t * byte, uint8_t timeout){
!
uint16_t timeout_micro = m_byte_time * timeout + 1;
uint16_t start;
+ if(m_rx_intr)
+ return FAIL;
+
start = call Counter.get();
while ( call HplUart.isRxEmpty() ) {
Index: HplAtm128UartP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/chips/atm128/HplAtm128UartP.nc,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -C2 -d -r1.1.2.7 -r1.1.2.8
*** HplAtm128UartP.nc 7 Nov 2006 23:14:59 -0000 1.1.2.7
--- HplAtm128UartP.nc 25 May 2007 23:51:28 -0000 1.1.2.8
***************
*** 106,110 ****
command error_t Uart0TxControl.start() {
- SET_BIT(UCSR0B, TXCIE);
SET_BIT(UCSR0B, TXEN);
call McuPowerState.update();
--- 106,109 ----
***************
*** 113,117 ****
command error_t Uart0TxControl.stop() {
- CLR_BIT(UCSR0B, TXCIE);
CLR_BIT(UCSR0B, TXEN);
call McuPowerState.update();
--- 112,115 ----
***************
*** 120,124 ****
command error_t Uart0RxControl.start() {
- SET_BIT(UCSR0B, RXCIE);
SET_BIT(UCSR0B, RXEN);
call McuPowerState.update();
--- 118,121 ----
***************
*** 127,131 ****
command error_t Uart0RxControl.stop() {
- CLR_BIT(UCSR0B, RXCIE);
CLR_BIT(UCSR0B, RXEN);
call McuPowerState.update();
--- 124,127 ----
***************
*** 134,153 ****
async command error_t HplUart0.enableTxIntr() {
! SET_BIT(UCSR0B, TXEN);
return SUCCESS;
}
async command error_t HplUart0.disableTxIntr(){
! CLR_BIT(UCSR0B, TXEN);
return SUCCESS;
}
async command error_t HplUart0.enableRxIntr(){
! SET_BIT(UCSR0B, RXEN);
return SUCCESS;
}
async command error_t HplUart0.disableRxIntr(){
! CLR_BIT(UCSR0B, RXEN);
return SUCCESS;
}
--- 130,150 ----
async command error_t HplUart0.enableTxIntr() {
! SET_BIT(UCSR0A, TXC);
! SET_BIT(UCSR0B, TXCIE);
return SUCCESS;
}
async command error_t HplUart0.disableTxIntr(){
! CLR_BIT(UCSR0B, TXCIE);
return SUCCESS;
}
async command error_t HplUart0.enableRxIntr(){
! SET_BIT(UCSR0B, RXCIE);
return SUCCESS;
}
async command error_t HplUart0.disableRxIntr(){
! CLR_BIT(UCSR0B, RXCIE);
return SUCCESS;
}
***************
*** 203,207 ****
command error_t Uart1TxControl.start() {
- SET_BIT(UCSR1B, TXCIE);
SET_BIT(UCSR1B, TXEN);
call McuPowerState.update();
--- 200,203 ----
***************
*** 210,214 ****
command error_t Uart1TxControl.stop() {
- CLR_BIT(UCSR1B, TXCIE);
CLR_BIT(UCSR1B, TXEN);
call McuPowerState.update();
--- 206,209 ----
***************
*** 217,221 ****
command error_t Uart1RxControl.start() {
- SET_BIT(UCSR1B, RXCIE);
SET_BIT(UCSR1B, RXEN);
call McuPowerState.update();
--- 212,215 ----
***************
*** 224,228 ****
command error_t Uart1RxControl.stop() {
- CLR_BIT(UCSR1B, RXCIE);
CLR_BIT(UCSR1B, RXEN);
call McuPowerState.update();
--- 218,221 ----
***************
*** 231,250 ****
async command error_t HplUart1.enableTxIntr() {
! SET_BIT(UCSR1B, TXEN);
return SUCCESS;
}
async command error_t HplUart1.disableTxIntr(){
! CLR_BIT(UCSR1B, TXEN);
return SUCCESS;
}
async command error_t HplUart1.enableRxIntr(){
! SET_BIT(UCSR1B, RXEN);
return SUCCESS;
}
async command error_t HplUart1.disableRxIntr(){
! CLR_BIT(UCSR1B, RXEN);
return SUCCESS;
}
--- 224,244 ----
async command error_t HplUart1.enableTxIntr() {
! SET_BIT(UCSR1A, TXC);
! SET_BIT(UCSR1B, TXCIE);
return SUCCESS;
}
async command error_t HplUart1.disableTxIntr(){
! CLR_BIT(UCSR1B, TXCIE);
return SUCCESS;
}
async command error_t HplUart1.enableRxIntr(){
! SET_BIT(UCSR1B, RXCIE);
return SUCCESS;
}
async command error_t HplUart1.disableRxIntr(){
! CLR_BIT(UCSR1B, RXCIE);
return SUCCESS;
}
- Previous message: [Tinyos-2-commits]
CVS: tinyos-2.x/apps/tests/deluge/Blink Makefile, 1.1, 1.2
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/chips/msp430/adc12
Msp430Adc12ClientAutoDMAC.nc, 1.4,
1.5 Msp430Adc12ClientAutoDMA_RVGC.nc, 1.4,
1.5 Msp430Adc12ClientAutoRVGC.nc, 1.4,
1.5 Msp430Adc12ClientC.nc, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-2-commits
mailing list