[Tinyos-beta-commits] CVS: tinyos-1.x/beta/platform/imote2 FlashM.nc, 1.4, 1.5

Josh jsherbach at users.sourceforge.net
Thu Aug 25 15:30:32 PDT 2005


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

Modified Files:
	FlashM.nc 
Log Message:
uses program word instead of program buffer until it can be fixed

Index: FlashM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/platform/imote2/FlashM.nc,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** FlashM.nc	24 Aug 2005 23:53:41 -0000	1.4
--- FlashM.nc	25 Aug 2005 22:30:30 -0000	1.5
***************
*** 167,170 ****
--- 167,171 ----
        else 
  	programBufferSupported = 1;
+       programBufferSupported = 0;
      }
      
***************
*** 349,353 ****
    uint16_t programBuffer(uint32_t addr, uint16_t data[], uint8_t datalen)   __attribute__((noinline)){
      uint16_t status;
!     uint32_t programBufferCommands[100];/* even though there are only 33 lines
  					 * of assembly by my count it seems
  					 * to work better if I allocate / allow
--- 350,354 ----
    uint16_t programBuffer(uint32_t addr, uint16_t data[], uint8_t datalen)   __attribute__((noinline)){
      uint16_t status;
!     uint32_t programBufferCommands[40];/* even though there are only 33 lines
  					 * of assembly by my count it seems
  					 * to work better if I allocate / allow
***************
*** 355,372 ****
  					 * is an issue*/
  
!     memcpy(programBufferCommands,__Flash_Program_Buffer,100 * 4);
      
      datalen -= 1;
!     asm volatile(
! 		 "mov r1, %1;           	\
!                  mov r2, %2;			\
!                  mov r3, %3;			\		 
! 		 mov r14, PC;			\
! 		 mov PC, %4;			\
! 		 mov %0, r0;"
! 		 :"=r"(status)
! 		 :"r"(addr), "r"(data),"r"(datalen),"r"(programBufferCommands)
! 		 : "r0", "r1", "r2", "r3", "r14", "memory");
! 
      return status;
    }
--- 356,379 ----
  					 * is an issue*/
  
!     memcpy(programBufferCommands,__Flash_Program_Buffer,40 * 4);
      
      datalen -= 1;
!     atomic{
!       asm volatile(
! 		   "mov r1, %1;           	\
!                    mov r2, %2;				\
!                    mov r3, %3;			\		 
! 		   mov r14, PC;			\
! 		   mov PC, %4;			\
! 		   mov %0, r0;"
! 		   /*
! 		   bl __Flash_Program_Buffer;	\
! 		   mov %0, r0;"
! 		   */
! 		   :"=r"(status)
! 		   :"r"(addr), "r"(data),"r"(datalen),
! 		    "r"(programBufferCommands)
! 		   : "r0", "r1", "r2", "r3", "r14", "memory");
!     }
      return status;
    }
***************
*** 377,390 ****
  
      memcpy(programWordCommands,__Flash_Program_Word,16 * 4);
! 
!     asm volatile(
! 		 "mov r1, %1;                   \
!                  mov r2, %2;			\
!                  mov r14, PC;			\
! 		 mov PC, %3;			\
! 		 mov %0, r0;"		 
! 		 :"=r"(status)
! 		 :"r"(addr), "r"(data),"r"(programWordCommands)
! 		 : "r0", "r1", "r2", "memory");
      return status;
    }
--- 384,398 ----
  
      memcpy(programWordCommands,__Flash_Program_Word,16 * 4);
!     atomic{
!       asm volatile(
! 		   "mov r1, %1;                   \
!                    mov r2, %2;			  \
!                    mov r14, PC;			  \
! 		   mov PC, %3;			  \
! 		   mov %0, r0;"		 
! 		   :"=r"(status)
! 		   :"r"(addr), "r"(data),"r"(programWordCommands)
! 		   : "r0", "r1", "r2", "memory");
!     }
      return status;
    }
***************
*** 395,406 ****
  
      memcpy(eraseFlashCommands,__Flash_Erase,17 * 4);
!     asm volatile(
! 		 "mov r1, %1;                   \
!                  mov r14, PC;			\
! 		 mov PC, %2;			\
! 		 mov %0, r0;"		 
! 		 :"=r"(status)
! 		 :"r"(addr), "r"(eraseFlashCommands)
! 		 : "r0", "r1", "memory");
      return status;
    }
--- 403,416 ----
  
      memcpy(eraseFlashCommands,__Flash_Erase,17 * 4);
!     atomic{
!       asm volatile(
! 		   "mov r1, %1;                   \
!                    mov r14, PC;			  \
! 		   mov PC, %2;			  \
! 		   mov %0, r0;"		 
! 		   :"=r"(status)
! 		   :"r"(addr), "r"(eraseFlashCommands)
! 		   : "r0", "r1", "memory");
!     }
      return status;
    }



More information about the Tinyos-beta-commits mailing list