[Tinyos-beta-commits] CVS: tinyos-1.x/beta/platform/pxa27x PXA27XInterruptM.nc, 1.2, 1.3

Konrad Lorincz konradlorincz at users.sourceforge.net
Thu Aug 25 15:56:23 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1382

Modified Files:
	PXA27XInterruptM.nc 
Log Message:
Fixed bug which prevented the interrupt from firing for peripheral IDs greater than 32.  There is an error in the PXA27X manual: The manual claims that the highest peripheral ID is 39.  However, in the ICHP (highest-priority) register it only lists 5 bits for the peripheral ID 2^5=32.  However, it's at least 6 bits, otherwise it would not be able to identify peripherals higher than 32.

Index: PXA27XInterruptM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x/PXA27XInterruptM.nc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** PXA27XInterruptM.nc	24 Aug 2005 21:17:27 -0000	1.2
--- PXA27XInterruptM.nc	25 Aug 2005 22:56:20 -0000	1.3
***************
*** 65,69 ****
  
      while (IRQPending & (1 << 15)) {
!       uint8_t PeripheralID = (IRQPending & 0x1f); // Get rid of the Valid bit
        signal PXA27XIrq.fired[PeripheralID]();     // Handler is responsible for clearing interrupt
        IRQPending = ICHP;  // Determine which interrupt to service
--- 65,69 ----
  
      while (IRQPending & (1 << 15)) {
!       uint8_t PeripheralID = (IRQPending & 0x3f); // Get rid of the Valid bit
        signal PXA27XIrq.fired[PeripheralID]();     // Handler is responsible for clearing interrupt
        IRQPending = ICHP;  // Determine which interrupt to service
***************
*** 82,86 ****
  
      while (FIQPending & (1 << 15)) {
!       uint8_t PeripheralID = (FIQPending & 0x1f); // Get rid of the Valid bit
        signal PXA27XFiq.fired[PeripheralID]();	  // Handler is responsible for clearing interrupt
        FIQPending = ICHP;
--- 82,86 ----
  
      while (FIQPending & (1 << 15)) {
!       uint8_t PeripheralID = (FIQPending & 0x3f); // Get rid of the Valid bit
        signal PXA27XFiq.fired[PeripheralID]();	  // Handler is responsible for clearing interrupt
        FIQPending = ICHP;



More information about the Tinyos-beta-commits mailing list