[Tinyos-beta-commits] CVS: tinyos-1.x/beta/platform/pxa27x
PXA27XUSBClientM.nc, 1.3, 1.4
Josh
jsherbach at users.sourceforge.net
Thu Sep 1 11:44:21 PDT 2005
Update of /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23641
Modified Files:
PXA27XUSBClientM.nc
Log Message:
single depth outqueue / single task
Index: PXA27XUSBClientM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x/PXA27XUSBClientM.nc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** PXA27XUSBClientM.nc 19 Aug 2005 19:31:32 -0000 1.3
--- PXA27XUSBClientM.nc 1 Sep 2005 18:44:19 -0000 1.4
***************
*** 145,149 ****
static uint32_t state = 0; /*State of the USB device: either 0, POWERED,
DEFAULT, or CONFIGURED*/
! static uint8_t init = 0, InTask = 0, OutTask = 0, OutPaused = 0;
/*booleans to prevent multiple
initializations, excessive tasks
--- 145,149 ----
static uint32_t state = 0; /*State of the USB device: either 0, POWERED,
DEFAULT, or CONFIGURED*/
! static uint8_t init = 0, InTask = 0;//, OutTask = 0, OutPaused = 0;
/*booleans to prevent multiple
initializations, excessive tasks
***************
*** 226,230 ****
DynQueue QueueTemp;
USBdata InStateTemp;
!
atomic statetemp = state;
#if DEBUG
--- 226,230 ----
DynQueue QueueTemp;
USBdata InStateTemp;
!
atomic statetemp = state;
#if DEBUG
***************
*** 429,433 ****
uint32_t data[2];
uint8_t statetemp;
!
clearIn();
atomic statetemp = state;
--- 429,433 ----
uint32_t data[2];
uint8_t statetemp;
!
clearIn();
atomic statetemp = state;
***************
*** 438,442 ****
#if DEBUG
! if(statetemp != CONFIGURED)
trace("hCS; data: %x %x \r\n", data[0], data[1]);
#endif
--- 438,442 ----
#if DEBUG
! if(statetemp != CONFIGURED)
trace("hCS; data: %x %x \r\n", data[0], data[1]);
#endif
***************
*** 520,526 ****
uint8_t statetemp, InTaskTemp;
DynQueue QueueTemp;
!
atomic statetemp = state;
!
if(statetemp != CONFIGURED)
return;
--- 520,526 ----
uint8_t statetemp, InTaskTemp;
DynQueue QueueTemp;
!
atomic statetemp = state;
!
if(statetemp != CONFIGURED)
return;
***************
*** 580,584 ****
uint8_t *buff;
uint32_t temp;
! uint8_t bufflen, OutPausedTemp, OutTaskTemp;
for(i = 0; i < IMOTE_HID_TYPE_COUNT; i++)
--- 580,584 ----
uint8_t *buff;
uint32_t temp;
! uint8_t bufflen;//, OutPausedTemp, OutTaskTemp;
for(i = 0; i < IMOTE_HID_TYPE_COUNT; i++)
***************
*** 595,627 ****
}
DynQueue_enqueue(OutQueue, buff);
! if(DynQueue_getLength(OutQueue) >= 20){
atomic OutPaused = 1;
! }
! atomic OutPausedTemp = OutPaused;
! if(OutPausedTemp == 0)
atomic _PXAREG(OutStream[0].endpointDR - _udcdr0 + _udccsr0) |=
! _UDC_bit(UDCCSRAX_PC);
!
! atomic OutTaskTemp = OutTask;
! if(DynQueue_getLength(OutQueue) >= 1 && OutTaskTemp == 0){
atomic OutTask = 1;
post processOut();
! }
}
task void processOut(){
uint8_t *buff;
! uint8_t type, valid = 0, OutPausedTemp;
USBdata OutStreamTemp;
!
#if DEBUG
trace("In processOut;\r\n");
#endif
! if(DynQueue_getLength(OutQueue) < 1)
! return;
! atomic OutTask = 1;
buff = (uint8_t *)DynQueue_dequeue(OutQueue);
atomic OutStream[0].endpointDR = _udcdrb;
type = *(buff + IMOTE_HID_TYPE);
--- 595,640 ----
}
DynQueue_enqueue(OutQueue, buff);
! /*if(DynQueue_getLength(OutQueue) >= 20){
atomic OutPaused = 1;
! }
! atomic OutPausedTemp = OutPaused;
! if(OutPausedTemp == 0)
atomic _PXAREG(OutStream[0].endpointDR - _udcdr0 + _udccsr0) |=
! _UDC_bit(UDCCSRAX_PC);
!
! atomic OutTaskTemp = OutTask;
! if(DynQueue_getLength(OutQueue) <= 1 && OutTaskTemp == 0){
atomic OutTask = 1;
post processOut();
! }*/
! post processOut();
}
task void processOut(){
uint8_t *buff;
! uint8_t type, valid = 0;//, OutPausedTemp;
USBdata OutStreamTemp;
!
#if DEBUG
trace("In processOut;\r\n");
#endif
! /* if(DynQueue_getLength(OutQueue) < 1){
! atomic{
! OutTask = 0;
! OutPaused = 0;
! }
! return;
! }
!
! atomic OutTask = 1;*/
buff = (uint8_t *)DynQueue_dequeue(OutQueue);
+ /* if(DynQueue_getLength(OutQueue) <= 10 && OutPausedTemp == 1){
+ atomic OutPaused = 0;
+ _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
+ }*/
+
+
atomic OutStream[0].endpointDR = _udcdrb;
type = *(buff + IMOTE_HID_TYPE);
***************
*** 647,650 ****
--- 660,664 ----
if(OutStreamTemp->src == NULL){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 667,670 ****
--- 681,685 ----
if(OutStreamTemp->src == NULL){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 687,690 ****
--- 702,706 ----
if(OutStreamTemp->src == NULL){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 702,705 ****
--- 718,723 ----
free(buff);
buff = NULL;
+ _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
+ post processOut();
return;
}
***************
*** 712,715 ****
--- 730,734 ----
if(OutStreamTemp->src == NULL && valid != 0){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 723,726 ****
--- 742,746 ----
free(buff);
buff = NULL;
+ post processOut();
return;
}
***************
*** 734,737 ****
--- 754,758 ----
if(OutStreamTemp->src == NULL){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 745,748 ****
--- 766,771 ----
free(buff);
buff = NULL;
+ _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
+ post processOut();
return;
}
***************
*** 755,758 ****
--- 778,782 ----
if(OutStreamTemp->src == NULL){
DynQueue_push(OutQueue, buff);
+ post processOut();
return;
}
***************
*** 777,792 ****
free(buff);
buff = NULL;
!
! atomic OutPausedTemp = OutPaused;
! atomic OutTask = 0;
! if(DynQueue_getLength(OutQueue) <= 10 && OutPausedTemp == 1){
! atomic OutPaused = 0;
! _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
! }
!
! if(DynQueue_getLength(OutQueue) >= 1){
atomic OutTask = 1;
post processOut();
! }
}
--- 801,812 ----
free(buff);
buff = NULL;
! _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
! /*atomic OutPausedTemp = OutPaused;
! atomic OutTask = 0;
!
! if(DynQueue_getLength(OutQueue) >= 1){
atomic OutTask = 1;
post processOut();
! }*/
}
***************
*** 814,818 ****
return;
}
!
if(InStateTemp->pindex <= InStateTemp->n)
if(((InStateTemp->type >> IMOTE_HID_TYPE_L) & 0x3) == IMOTE_HID_TYPE_L_BYTE){
--- 834,838 ----
return;
}
!
if(InStateTemp->pindex <= InStateTemp->n)
if(((InStateTemp->type >> IMOTE_HID_TYPE_L) & 0x3) == IMOTE_HID_TYPE_L_BYTE){
***************
*** 909,917 ****
DynQueue QueueTemp;
USBdata InStateTemp;
!
atomic QueueTemp = InQueue;
if(DynQueue_getLength(QueueTemp) <= 0)
return;
!
atomic InState = (USBdata)DynQueue_peek(QueueTemp);
atomic InStateTemp = InState;
--- 929,937 ----
DynQueue QueueTemp;
USBdata InStateTemp;
!
atomic QueueTemp = InQueue;
if(DynQueue_getLength(QueueTemp) <= 0)
return;
!
atomic InState = (USBdata)DynQueue_peek(QueueTemp);
atomic InStateTemp = InState;
***************
*** 953,957 ****
void isAttached(){
uint8_t statetemp;
!
if(call HPLUSBClientGPIO.checkConnection() == SUCCESS)
#if DEBUG
--- 973,977 ----
void isAttached(){
uint8_t statetemp;
!
if(call HPLUSBClientGPIO.checkConnection() == SUCCESS)
#if DEBUG
***************
*** 984,988 ****
uint8_t InTaskTemp;
DynQueue QueueTemp;
!
#if DEBUG
trace("Sending device descriptor;\r\n");
--- 1004,1008 ----
uint8_t InTaskTemp;
DynQueue QueueTemp;
!
#if DEBUG
trace("Sending device descriptor;\r\n");
***************
*** 1141,1145 ****
uint8_t InTaskTemp;
DynQueue QueueTemp;
!
#if DEBUG
atomic QueueTemp = InQueue;
--- 1161,1165 ----
uint8_t InTaskTemp;
DynQueue QueueTemp;
!
#if DEBUG
atomic QueueTemp = InQueue;
***************
*** 1238,1242 ****
End->bmAttributes = 0x3;
End->wMaxPacketSize = 0x40;
! End->bInterval = 0x10;
UDCCRA |= (1 << 25) | ((End->bEndpointAddress & 0xF) << 15) | ((End->bmAttributes & 0x3) << 13) | (((End->bEndpointAddress & _UDC_bit(USB_ENDPOINT_IN)) != 0) << 12) | (End->wMaxPacketSize << 2) | 1;
--- 1258,1262 ----
End->bmAttributes = 0x3;
End->wMaxPacketSize = 0x40;
! End->bInterval = 0x01;
UDCCRA |= (1 << 25) | ((End->bEndpointAddress & 0xF) << 15) | ((End->bmAttributes & 0x3) << 13) | (((End->bEndpointAddress & _UDC_bit(USB_ENDPOINT_IN)) != 0) << 12) | (End->wMaxPacketSize << 2) | 1;
***************
*** 1245,1249 ****
End->bmAttributes = 0x3;
End->wMaxPacketSize = 0x40;
! End->bInterval = 0x10;
UDCCRB |= (1 << 25) | ((End->bEndpointAddress & 0xF) << 15) | ((End->bmAttributes & 0x3) << 13) | (((End->bEndpointAddress & _UDC_bit(USB_ENDPOINT_IN)) != 0) << 12) | (End->wMaxPacketSize << 2) | 1;
--- 1265,1269 ----
End->bmAttributes = 0x3;
End->wMaxPacketSize = 0x40;
! End->bInterval = 0x01;
UDCCRB |= (1 << 25) | ((End->bEndpointAddress & 0xF) << 15) | ((End->bmAttributes & 0x3) << 13) | (((End->bEndpointAddress & _UDC_bit(USB_ENDPOINT_IN)) != 0) << 12) | (End->wMaxPacketSize << 2) | 1;
***************
*** 1366,1371 ****
free(Device.oConfigurations);
for(i = 0; i < STRINGS_USED + 1; i++){
- if(i != 0)
- Strings[i]->uMisc.bString;
if(i == 3)//serial num, special freeing mentioned in writeStringDescriptor
free(Strings[i]->uMisc.bString);
--- 1386,1389 ----
***************
*** 1412,1420 ****
OutStream[i].n = 0;
OutStream[i].len = 0;
- OutPaused = 0;
}
- if(isFlagged(*(_udcdrb - _udcdr0 + _udccsr0), _UDC_bit(UDCCSRAX_PC)))
- _PXAREG(_udcdrb - _udcdr0 + _udccsr0) |= _UDC_bit(UDCCSRAX_PC);
-
}
}
--- 1430,1434 ----
More information about the Tinyos-beta-commits
mailing list