]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Fix the Deluge rollback gesture and increase the total number of Deluge images to...
authorrazvanm <razvanm>
Thu, 20 Dec 2007 02:31:39 +0000 (02:31 +0000)
committerrazvanm <razvanm>
Thu, 20 Dec 2007 02:31:39 +0000 (02:31 +0000)
14 files changed:
apps/tests/deluge/Blink/burn-net
apps/tests/deluge/Blink/volumes-at45db.xml
apps/tests/deluge/Blink/volumes-stm25p.xml
apps/tests/deluge/GoldenImage/volumes-at45db.xml
apps/tests/deluge/GoldenImage/volumes-stm25p.xml
apps/tests/deluge/SerialBlink/volumes-at45db.xml
apps/tests/deluge/SerialBlink/volumes-stm25p.xml
tos/lib/net/Deluge/Deluge.h
tos/lib/net/Deluge/DelugeC.nc
tos/lib/net/Deluge/DelugeStorageC.nc
tos/lib/net/Deluge/FlashVolumeManager/FlashVolumeManagerC.nc
tos/lib/net/Deluge/FlashVolumeManager/FlashVolumeManagerP.nc
tos/lib/net/Deluge/ObjectTransferC.nc
tos/lib/net/Deluge/extra/NetProgC.nc

index 64a19a17ff1c3d48794f76d3b62a92d38cf70f5f..26debcdc797bd3385c5e58e53782d0538cfd45c3 100755 (executable)
@@ -65,7 +65,7 @@ echo ============================= Compile a new Blink =========================
 CFLAGS=-DBLINK_REVERSE\ -DDELUGE_BASESTATION make ${PLATFORM} 
 
 echo ========= Upload the new image to the external flash of the last mote ==========
-${TOS_DELUGE} ${PORT} ${PLATFORM} -i 0 build/${PLATFORM}/tos_image.xml
+${TOS_DELUGE} ${PORT} ${PLATFORM} -i 1 build/${PLATFORM}/tos_image.xml
 
 echo '            +-----------------------------------------------------+'
 echo '            |                                                     |'
@@ -80,7 +80,7 @@ echo '            +-----------------------------------------------------+'
 read
 
 echo ============================= Start dissemination ==============================
-${TOS_DELUGE} ${PORT} ${PLATFORM} -d 0
+${TOS_DELUGE} ${PORT} ${PLATFORM} -d 1
 
 echo '         +------------------------------------------------------------+'
 echo '         |                                                            |'
@@ -96,7 +96,7 @@ echo '         +------------------------------------------------------------+'
 read
 
 echo ===================== Trigger the reboot in the new image ======================
-${TOS_DELUGE} ${PORT} ${PLATFORM} -r 0
+${TOS_DELUGE} ${PORT} ${PLATFORM} -r 1
 
 echo '        +-------------------------------------------------------------+'
 echo '        |                                                             |'
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..8b22ebe452663159d13e5876ec7464c28697cdb5 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="0" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..4210f08a068f61ccc8d66921f213fd0f8eec47bd 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="983040" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..8b22ebe452663159d13e5876ec7464c28697cdb5 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="0" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..4210f08a068f61ccc8d66921f213fd0f8eec47bd 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="983040" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..8b22ebe452663159d13e5876ec7464c28697cdb5 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="0" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index afc864a73b5c1bb4f149f4e4f06afbfb0b635c78..4210f08a068f61ccc8d66921f213fd0f8eec47bd 100644 (file)
@@ -1,4 +1,6 @@
 <volume_table>
-  <volume name="DELUGE0" size="65536"/>
+  <volume name="GOLDENIMAGE" size="65536" base="983040" />
   <volume name="DELUGE1" size="65536"/>
+  <volume name="DELUGE2" size="65536"/>
+  <volume name="DELUGE3" size="65536"/>
 </volume_table>
\ No newline at end of file
index 8a9f504f5c44ded2e3b8b591a854ae042f20f46c..b938e4aee455b7362947edfcec87f121218153c2 100644 (file)
@@ -34,7 +34,7 @@
 
 enum {
   DELUGE_INVALID_UID = 0xffffffff,
-  DELUGE_NUM_VOLUMES = 2,
+  DELUGE_NUM_VOLUMES = 4, 
 };
 
 typedef nx_struct DelugeDissemination {
index 50adc25f59f4e7953f6cab95c76ad13faa35c1cd..21a5320f66f6f73532805f53fc3df90779a64731 100644 (file)
@@ -42,19 +42,31 @@ implementation
   
   DelugeP.DissNotify -> FlashVolumeManagerC.DissNotify;
   DelugeP.ReprogNotify -> FlashVolumeManagerC.ReprogNotify;
-  FlashVolumeManagerC.BlockRead[VOLUME_DELUGE0] -> DelugeStorageC.BlockRead[VOLUME_DELUGE0];
-  FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE0] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE0];
-  FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE0] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE0];
+
+  FlashVolumeManagerC.BlockRead[VOLUME_GOLDENIMAGE] -> DelugeStorageC.BlockRead[VOLUME_GOLDENIMAGE];
+  FlashVolumeManagerC.BlockWrite[VOLUME_GOLDENIMAGE] -> DelugeStorageC.BlockWrite[VOLUME_GOLDENIMAGE];
+  FlashVolumeManagerC.DelugeStorage[VOLUME_GOLDENIMAGE] -> DelugeStorageC.DelugeStorage[VOLUME_GOLDENIMAGE];
+  
   FlashVolumeManagerC.BlockRead[VOLUME_DELUGE1] -> DelugeStorageC.BlockRead[VOLUME_DELUGE1];
   FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE1] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE1];
   FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE1] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE1];
+
+  FlashVolumeManagerC.BlockRead[VOLUME_DELUGE2] -> DelugeStorageC.BlockRead[VOLUME_DELUGE2];
+  FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE2] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE2];
+  FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE2] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE2];
+
+  FlashVolumeManagerC.BlockRead[VOLUME_DELUGE3] -> DelugeStorageC.BlockRead[VOLUME_DELUGE3];
+  FlashVolumeManagerC.BlockWrite[VOLUME_DELUGE3] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE3];
+  FlashVolumeManagerC.DelugeStorage[VOLUME_DELUGE3] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE3];
 #endif
   
   components ObjectTransferC;
-  ObjectTransferC.BlockRead[VOLUME_DELUGE0] -> DelugeStorageC.BlockRead[VOLUME_DELUGE0];
-  ObjectTransferC.BlockWrite[VOLUME_DELUGE0] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE0];
   ObjectTransferC.BlockRead[VOLUME_DELUGE1] -> DelugeStorageC.BlockRead[VOLUME_DELUGE1];
   ObjectTransferC.BlockWrite[VOLUME_DELUGE1] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE1];
+  ObjectTransferC.BlockRead[VOLUME_DELUGE2] -> DelugeStorageC.BlockRead[VOLUME_DELUGE2];
+  ObjectTransferC.BlockWrite[VOLUME_DELUGE2] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE2];
+  ObjectTransferC.BlockRead[VOLUME_DELUGE3] -> DelugeStorageC.BlockRead[VOLUME_DELUGE3];
+  ObjectTransferC.BlockWrite[VOLUME_DELUGE3] -> DelugeStorageC.BlockWrite[VOLUME_DELUGE3];
   ObjectTransferC.Leds = Leds;
   
   components new DisseminatorC(DelugeDissemination, 0xDE00), DisseminationC;
index f5adb54ffc71a68fb6e376c304a720782df8845f..78d56ce3aa146efe4882a66f761ce1da7588aef1 100644 (file)
@@ -42,32 +42,51 @@ implementation
 {
   components DelugeStorageP;
 
-  BlockRead[VOLUME_DELUGE0] = DelugeStorageP.BlockRead[VOLUME_DELUGE0];
-  BlockWrite[VOLUME_DELUGE0] = DelugeStorageP.BlockWrite[VOLUME_DELUGE0];
+  BlockRead[VOLUME_GOLDENIMAGE] = DelugeStorageP.BlockRead[VOLUME_GOLDENIMAGE];
+  BlockWrite[VOLUME_GOLDENIMAGE] = DelugeStorageP.BlockWrite[VOLUME_GOLDENIMAGE];
   BlockRead[VOLUME_DELUGE1] = DelugeStorageP.BlockRead[VOLUME_DELUGE1];
   BlockWrite[VOLUME_DELUGE1] = DelugeStorageP.BlockWrite[VOLUME_DELUGE1];
+  BlockRead[VOLUME_DELUGE2] = DelugeStorageP.BlockRead[VOLUME_DELUGE2];
+  BlockWrite[VOLUME_DELUGE2] = DelugeStorageP.BlockWrite[VOLUME_DELUGE2];
+  BlockRead[VOLUME_DELUGE3] = DelugeStorageP.BlockRead[VOLUME_DELUGE3];
+  BlockWrite[VOLUME_DELUGE3] = DelugeStorageP.BlockWrite[VOLUME_DELUGE3];
   DelugeMetadata = DelugeStorageP.DelugeMetadata;
+
+  components new BlockStorageC(VOLUME_GOLDENIMAGE) as BlockStorageC_Golden;
+  DelugeStorageP.SubBlockRead[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
+  DelugeStorageP.SubBlockWrite[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
  
-  components new BlockStorageC(VOLUME_DELUGE0) as BlockStorageC_0;
   components new BlockStorageC(VOLUME_DELUGE1) as BlockStorageC_1;
-  DelugeStorageP.SubBlockRead[VOLUME_DELUGE0] -> BlockStorageC_0;
-  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE0] -> BlockStorageC_0;
   DelugeStorageP.SubBlockRead[VOLUME_DELUGE1] -> BlockStorageC_1;
   DelugeStorageP.SubBlockWrite[VOLUME_DELUGE1] -> BlockStorageC_1;
+
+  components new BlockStorageC(VOLUME_DELUGE2) as BlockStorageC_2;
+  DelugeStorageP.SubBlockRead[VOLUME_DELUGE2] -> BlockStorageC_2;
+  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE2] -> BlockStorageC_2;
+
+  components new BlockStorageC(VOLUME_DELUGE3) as BlockStorageC_3;
+  DelugeStorageP.SubBlockRead[VOLUME_DELUGE3] -> BlockStorageC_3;
+  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE3] -> BlockStorageC_3;
   
 #if defined(PLATFORM_TELOSB)
-  DelugeStorageP.StorageMap[VOLUME_DELUGE0] -> BlockStorageC_0;
+  DelugeStorageP.StorageMap[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
   DelugeStorageP.StorageMap[VOLUME_DELUGE1] -> BlockStorageC_1;
+  DelugeStorageP.StorageMap[VOLUME_DELUGE2] -> BlockStorageC_2;
+  DelugeStorageP.StorageMap[VOLUME_DELUGE3] -> BlockStorageC_3;
 #elif defined(PLATFORM_MICAZ)
   components At45dbStorageManagerC;
-  DelugeStorageP.At45dbVolume[VOLUME_DELUGE0] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE0];
+  DelugeStorageP.At45dbVolume[VOLUME_GOLDENIMAGE] -> At45dbStorageManagerC.At45dbVolume[VOLUME_GOLDENIMAGE];
   DelugeStorageP.At45dbVolume[VOLUME_DELUGE1] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE1];
+  DelugeStorageP.At45dbVolume[VOLUME_DELUGE2] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE2];
+  DelugeStorageP.At45dbVolume[VOLUME_DELUGE3] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE3];
 #else
   #error "Target platform is not currently supported by Deluge T2"
 #endif
 
-  DelugeStorage[VOLUME_DELUGE0] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE0];
+  DelugeStorage[VOLUME_GOLDENIMAGE] = DelugeStorageP.DelugeStorage[VOLUME_GOLDENIMAGE];
   DelugeStorage[VOLUME_DELUGE1] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE1];
+  DelugeStorage[VOLUME_DELUGE2] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE2];
+  DelugeStorage[VOLUME_DELUGE3] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE3];
   
   components LedsC, MainC;
   DelugeStorageP.Leds -> LedsC;
index d1f9fbe7d6e9f5cdc472f1b7ba6acec93325e6c7..7ef0c385ac711e4c81d07b211793ecfe3a8ead59 100644 (file)
@@ -49,10 +49,15 @@ implementation
              new FlashVolumeManagerP(),
              NoLedsC, LedsC;
   
-  FlashVolumeManagerP.BlockRead[VOLUME_DELUGE0] = BlockRead[VOLUME_DELUGE0];
-  FlashVolumeManagerP.BlockWrite[VOLUME_DELUGE0] = BlockWrite[VOLUME_DELUGE0];
+  FlashVolumeManagerP.BlockRead[VOLUME_GOLDENIMAGE] = BlockRead[VOLUME_GOLDENIMAGE];
+  FlashVolumeManagerP.BlockWrite[VOLUME_GOLDENIMAGE] = BlockWrite[VOLUME_GOLDENIMAGE];
   FlashVolumeManagerP.BlockRead[VOLUME_DELUGE1] = BlockRead[VOLUME_DELUGE1];
   FlashVolumeManagerP.BlockWrite[VOLUME_DELUGE1] = BlockWrite[VOLUME_DELUGE1];
+  FlashVolumeManagerP.BlockRead[VOLUME_DELUGE2] = BlockRead[VOLUME_DELUGE2];
+  FlashVolumeManagerP.BlockWrite[VOLUME_DELUGE2] = BlockWrite[VOLUME_DELUGE2];
+  FlashVolumeManagerP.BlockRead[VOLUME_DELUGE3] = BlockRead[VOLUME_DELUGE3];
+  FlashVolumeManagerP.BlockWrite[VOLUME_DELUGE3] = BlockWrite[VOLUME_DELUGE3];
   FlashVolumeManagerP.SerialAMSender -> SerialAMSenderC;
   FlashVolumeManagerP.SerialAMReceiver -> SerialAMReceiverC;
   FlashVolumeManagerP.Leds -> NoLedsC;
@@ -62,8 +67,10 @@ implementation
   
   FlashVolumeManagerP.NetProg -> NetProgC;
   FlashVolumeManagerP.Timer -> TimerMilliC;
-  FlashVolumeManagerP.DelugeStorage[VOLUME_DELUGE0] = DelugeStorage[VOLUME_DELUGE0];
+  FlashVolumeManagerP.DelugeStorage[VOLUME_GOLDENIMAGE] = DelugeStorage[VOLUME_GOLDENIMAGE];
   FlashVolumeManagerP.DelugeStorage[VOLUME_DELUGE1] = DelugeStorage[VOLUME_DELUGE1];
+  FlashVolumeManagerP.DelugeStorage[VOLUME_DELUGE2] = DelugeStorage[VOLUME_DELUGE2];
+  FlashVolumeManagerP.DelugeStorage[VOLUME_DELUGE3] = DelugeStorage[VOLUME_DELUGE3];
   DissNotify = FlashVolumeManagerP.DissNotify;
   ReprogNotify = FlashVolumeManagerP.ReprogNotify;
 #endif
index 5c03b0ab13b1b679d6cfd72462f33b2bc7968cee..bf29d2b3bc273eaede1bf54402c11d6dbb922526 100644 (file)
@@ -162,11 +162,17 @@ implementation
     // Converts the image number that the user wants to the real image number
     switch (srpkt->img_num) {
       case 0:
-        img_num = VOLUME_DELUGE0;
+        img_num = VOLUME_GOLDENIMAGE;
         break;
       case 1:
         img_num = VOLUME_DELUGE1;
         break;
+      case 2:
+        img_num = VOLUME_DELUGE2;
+        break;
+      case 3:
+        img_num = VOLUME_DELUGE3;
+        break;
     }
     
     if (img_num != 0xFF) {
index b27fbcb78c86fa00b2abddb9b562167844e7e697..03ace370bb25a6af261de1f71e2e67d499c098a7 100644 (file)
@@ -42,10 +42,12 @@ implementation
   components ObjectTransferP, DelugePageTransferC;
   
   ObjectTransfer = ObjectTransferP;
-  BlockRead[VOLUME_DELUGE0] = DelugePageTransferC.BlockRead[VOLUME_DELUGE0];
-  BlockWrite[VOLUME_DELUGE0] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE0];
   BlockRead[VOLUME_DELUGE1] = DelugePageTransferC.BlockRead[VOLUME_DELUGE1];
   BlockWrite[VOLUME_DELUGE1] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE1];
+  BlockRead[VOLUME_DELUGE2] = DelugePageTransferC.BlockRead[VOLUME_DELUGE2];
+  BlockWrite[VOLUME_DELUGE2] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE2];
+  BlockRead[VOLUME_DELUGE3] = DelugePageTransferC.BlockRead[VOLUME_DELUGE3];
+  BlockWrite[VOLUME_DELUGE3] = DelugePageTransferC.BlockWrite[VOLUME_DELUGE3];
   ObjectTransferP.DelugePageTransfer -> DelugePageTransferC.DelugePageTransfer;
   
   components CrcP;
@@ -67,8 +69,9 @@ implementation
   DelugePageTransferC.AMPacket -> SendDataMsg;
   DelugePageTransferC.Leds = Leds;
   
-  ObjectTransferP.BlockWrite[VOLUME_DELUGE0] = BlockWrite[VOLUME_DELUGE0];
   ObjectTransferP.BlockWrite[VOLUME_DELUGE1] = BlockWrite[VOLUME_DELUGE1];
+  ObjectTransferP.BlockWrite[VOLUME_DELUGE2] = BlockWrite[VOLUME_DELUGE2];
+  ObjectTransferP.BlockWrite[VOLUME_DELUGE3] = BlockWrite[VOLUME_DELUGE3];
   
   components RandomC, new TimerMilliC() as Timer;
   ObjectTransferP.Random -> RandomC;
index ccbbf2a9d8fdfb0c28ccc0a7bea07b2f6942d1b0..aeef0279559c661f87ee64a4a8210ac1f1ede017 100644 (file)
@@ -46,8 +46,10 @@ implementation {
   NetProg = NetProgM;
 
   MainC.SoftwareInit -> NetProgM.Init;
-  NetProgM.DelugeStorage[VOLUME_DELUGE0] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE0];
+  NetProgM.DelugeStorage[VOLUME_GOLDENIMAGE] -> DelugeStorageC.DelugeStorage[VOLUME_GOLDENIMAGE];
   NetProgM.DelugeStorage[VOLUME_DELUGE1] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE1];
+  NetProgM.DelugeStorage[VOLUME_DELUGE2] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE2];
+  NetProgM.DelugeStorage[VOLUME_DELUGE3] -> DelugeStorageC.DelugeStorage[VOLUME_DELUGE3];
   NetProgM.DelugeMetadata -> DelugeStorageC;
   NetProgM.IFlash -> IFlash;
   NetProgM.Crc -> CrcP;