---------- Forwarded message ----------
From: jiwen zhang <[EMAIL PROTECTED]>
Date: 2008-5-7 16:53
Subject: Re: question aout the TOSBootM
To: "Razvan Musaloiu-E." <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED], [EMAIL PROTECTED], tinyos-help <
tinyos-help@millennium.berkeley.edu>

Hello all :
   when i read the file TOSBootM.nc , there are some things i can' t
understand !

  1. The external flash is divided into three slots , *i want to know the
size of every slot ? are they identical ?*
  from reading the TOSBootM , i think the *structure of every slot *is that
:

 for example , slot 0 :
                 ----------------------------------------------------
                          DELUGE_IDENT_SIZE (128 Bytes)
                 ----------------------------------------------------

                      DELUGE_CRC_BLOCK_SIZE(256 Bytes)

                 -----------------------------------------------------
                                   PAGE 0
                                   PAGE 1
                                   ...........
                                   ...........


and *PAGE structure* is that :

                  ---------------------------------------------
                        Internal flash Address  (4 Bytes)
                  ---------------------------------------------
                               Page length(4 Byte)
                  --------------------------------------------
                           Effective Image data()
                   -------------------------------------------
Am i right ?  i am not sure the page structure , if i am not right , can
someone give me an explain ?

2. Question about the function of  programImage(ex_flash_addr_t startAddr)

      .....
      .....


    while ( secLength ) {

      pageAddr = newPageAddr = intAddr / TOSBOOT_INT_PAGE_SIZE;

      call ExtFlash.startRead(curAddr);
      // fill in ram buffer for internal program flash sector
      do {

 // check if secLength is all ones
 if ( secLength == 0xffffffff ) {
   call ExtFlash.stopRead();
   return FAIL;
 }

 buf[(uint16_t)intAddr % TOSBOOT_INT_PAGE_SIZE] = call ExtFlash.readByte();
 intAddr++; curAddr++;

 if ( --secLength == 0 ) {
   intAddr = extFlashReadAddr();
   secLength = extFlashReadAddr();
   curAddr = curAddr + 8;
 }

 newPageAddr = intAddr / TOSBOOT_INT_PAGE_SIZE;

      } while ( pageAddr == newPageAddr && secLength );
      call ExtFlash.stopRead();

      call Leds.set(pageAddr);

      // write out page
      if (call ProgFlash.write(pageAddr*TOSBOOT_INT_PAGE_SIZE, buf,
          TOSBOOT_INT_PAGE_SIZE) == FAIL) {
 return R_PROGRAMMING_ERROR;
      }
    }

i don't know *how the programme jump out the while cycle*.  because the
condition of jumping out the while cycle is that "secLength <= 0" , but in
the while  , there is some sentences :

     if ( --secLength == 0 ) {
   intAddr = extFlashReadAddr();
   secLength = extFlashReadAddr();
   curAddr = curAddr + 8;
 }

*so when secLength == 0 , it will be given a new value (which is the next
page size ?) , how does it jump out ?*

*is it possible that it jump out from here ? :*

 if ( secLength == 0xffffffff ) {
   call ExtFlash.stopRead();
   return FAIL;
 }

i am not sure, can someone give me an explain ?
2008/5/7, jiwen zhang <[EMAIL PROTECTED]>:
>
> Hello :
>    thank you very much for your reply, Razvan ME.
>    i have found it .
>
>
>
>
> 2008/5/7, Razvan Musaloiu-E. <[EMAIL PROTECTED]>:
>>
>> Hi!
>>
>> On Tue, 6 May 2008, jiwen zhang wrote:
>>
>> Hello all :
>>>  Recently , i an researching the deluge, and find a problem in TOSBootM.
>>>  In the function programImage(ex_flash_addr_t startAddr) , there is a
>>> sentence
>>>  #if defined(PLATFORM_TELOSB)
>>>   if (intAddr != TOSBOOT_END) {
>>> #elif defined(PLATFORM_MICAZ) || defined(PLATFORM_IRIS)
>>>   if (intAddr != 0) {
>>>      ....
>>>      ....
>>>
>>>   I can't find where TOSBOOT_END is defined . if i am using the platform
>>> telosb , maybe it does't work .
>>>   can someone give me an answer ?
>>>
>>
>> TOSBOOT_END is defined in tinyos-2.x/tos/lib/tosboot/Makefile.
>>
>> --
>> Razvan ME
>>
>>   I am using Tinyos2.x .
>>>   thank you !!
>>>
>>>
>
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to