[Tinyos-commits] CVS: tinyos-1.x/tos/lib/Deluge/TOSBoot
ProgFlash.nc, 1.1, 1.2 TOSBootM.nc, 1.3, 1.4
Joe Polastre
jpolastre at users.sourceforge.net
Mon Sep 19 16:40:12 PDT 2005
Update of /cvsroot/tinyos/tinyos-1.x/tos/lib/Deluge/TOSBoot
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26745
Modified Files:
ProgFlash.nc TOSBootM.nc
Log Message:
changed TOSBootM to only use the size of the internal flash addressing.
this prevents doing 32-bit transforms on platforms that only use
16-bit addressing (such as msp430). saves significant space.
each platform now typedef's the kind of flash it has (internal and external)
and casts are done appropriately for that flash.
The ProgFlash interface is now updated to only use in_flash_addr_t types.
Index: ProgFlash.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/tos/lib/Deluge/TOSBoot/ProgFlash.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ProgFlash.nc 22 Jul 2005 17:40:09 -0000 1.1
--- ProgFlash.nc 19 Sep 2005 23:40:10 -0000 1.2
***************
*** 30,33 ****
interface ProgFlash {
! command result_t write(uint32_t addr, uint8_t* buf, uint16_t len);
}
--- 30,33 ----
interface ProgFlash {
! command result_t write(in_flash_addr_t addr, uint8_t* buf, in_flash_addr_t len);
}
Index: TOSBootM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/tos/lib/Deluge/TOSBoot/TOSBootM.nc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** TOSBootM.nc 19 Sep 2005 22:33:59 -0000 1.3
--- TOSBootM.nc 19 Sep 2005 23:40:10 -0000 1.4
***************
*** 64,76 ****
}
! uint32_t extFlashRead32() {
! uint32_t result = 0;
uint8_t i;
for ( i = 0; i < 4; i++ )
! result |= ((uint32_t)call ExtFlash.readByte() & 0xff) << (i*8);
return result;
}
! bool verifyImage(uint32_t startAddr) {
uint16_t crcTarget = 0, crcTmp = 0;
--- 64,76 ----
}
! in_flash_addr_t extFlashReadAddr() {
! in_flash_addr_t result = 0;
uint8_t i;
for ( i = 0; i < 4; i++ )
! result |= ((in_flash_addr_t)call ExtFlash.readByte() & 0xff) << (i*8);
return result;
}
! bool verifyImage(ex_flash_addr_t startAddr) {
uint16_t crcTarget = 0, crcTmp = 0;
***************
*** 115,125 ****
}
! result_t programImage(uint32_t startAddr) {
uint8_t buf[TOSBOOT_INT_PAGE_SIZE];
uint16_t pageAddr, newPageAddr;
! uint32_t intAddr;
! uint32_t secLength;
! uint32_t curAddr;
if (!verifyImage(startAddr))
--- 115,125 ----
}
! result_t programImage(ex_flash_addr_t startAddr) {
uint8_t buf[TOSBOOT_INT_PAGE_SIZE];
uint16_t pageAddr, newPageAddr;
! in_flash_addr_t intAddr;
! in_flash_addr_t secLength;
! ex_flash_addr_t curAddr;
if (!verifyImage(startAddr))
***************
*** 130,135 ****
call ExtFlash.startRead(curAddr);
! intAddr = extFlashRead32();
! secLength = extFlashRead32();
curAddr = curAddr + 8;
--- 130,135 ----
call ExtFlash.startRead(curAddr);
! intAddr = extFlashReadAddr();
! secLength = extFlashReadAddr();
curAddr = curAddr + 8;
***************
*** 156,161 ****
if ( --secLength == 0 ) {
! intAddr = extFlashRead32();
! secLength = extFlashRead32();
curAddr = curAddr + 8;
}
--- 156,161 ----
if ( --secLength == 0 ) {
! intAddr = extFlashReadAddr();
! secLength = extFlashReadAddr();
curAddr = curAddr + 8;
}
More information about the Tinyos-commits
mailing list