[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