Hello Razvan ME :

2008/5/16 Razvan Musaloiu-E. <[EMAIL PROTECTED]>:

> Hi!
>
> Sorry for responding so late. I had a rather busy day. :|
>
> On Thu, 15 May 2008, jiwen zhang wrote:
>
>  hello Razvan ME :
>>  that is to say the version of
>> http://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git is same with
>> http://hinrg.cs.jhu.edu/git/?p=deluge/tinyos-2.x.git , i can choose one
>> to
>> download ?
>>
>
> Please take a look at how git works. A quick introduction is here:
>        http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
> and the manual is here:
>        http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
>
> The first link is the real git location. You can download the sources with
> by doing this:
>        git clone http://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git
> You can also use the native git protocol instead of http:
>        git clone git://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git
>
> The second link [1] you mention is just a way to see in a nice way the
> status of the tree.
>
> [1] http://hinrg.cs.jhu.edu/git/?p=deluge/tinyos-2.x.git
>


> *If i have downloaded the source tree , for example , on the day of
> 2008.5.16 , and then two days later , i want to update the source tree , do
> i must download the whole source tree ?  or there is a way that i only need
> to update some files that have been modified ?*
>
>  i just a newer  to deluge , and know little to it , it is difficult for me
>> to modify deluge to make it support programme the specified motes -:)
>>
>
> I don't have much time right now but I will update the manual to include
> all the details that will explain what you need to do to reprogram the mote
> selectively.

*Do you mean that "Deluge support to reprogramme the motes selectively at
present"  if i do according to the manual that you will update?*

>
>
>  i want to know are you working for the function above ? how long can you
>> finish it approximately? (maybe it is difficult to evaluate -:) . i want
>> to
>> use the function -:) i wish you can realize it in future .
>>
>
> Depending exactly on what you want to achieve it might not be too hard to
> implement. :-)
>
> --
> Razvan ME
>
>
> 2008/5/15 Razvan Musaloiu-E. <[EMAIL PROTECTED]>:
>>
>> Hi!
>>>
>>> On Thu, 15 May 2008, jiwen zhang wrote:
>>>
>>> Hello Razvan ME :
>>>
>>>>  what is the difference between the version of //
>>>> hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git and
>>>> http://hinrg.cs.jhu.edu/git/?p=deluge/tinyos-2.x.git , and
>>>> http://hinrg.cs.jhu.edu/git/?p=razvanm/tinyos-2.x.git ? which should i
>>>> download ?
>>>>
>>>>
>>> You should checkout the deluge tree using one the the following commands:
>>>       git clone git://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git
>>> or
>>>       git clone http://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git
>>>
>>> The razvanm tree contains something else, a work-in-progress simulation
>>> of
>>> the cc2420. :D
>>>
>>>  another question :
>>>
>>>>  are you developing the deluge that can reprogramme the specified motes
>>>> not all the motes in the network ? what is the difficulty ? how long can
>>>> you finish it approximately?
>>>>
>>>>
>>> You can achieve this by putting some some inside inside Deluge T2.
>>> Basically you need to change in DelugeP.nc the way the mote reacts on the
>>> dissemination updates.
>>>
>>> --
>>> Razvan ME
>>>
>>>
>>> 2008/5/13 Razvan Musaloiu-E. <[EMAIL PROTECTED]>:
>>>
>>>>
>>>> Hi!
>>>>
>>>>>
>>>>>
>>>>> On Sun, 11 May 2008, jiwen zhang wrote:
>>>>>
>>>>> Hello Razvan ME:
>>>>>
>>>>>
>>>>>> 2008/5/9 Razvan Musaloiu-E. <[EMAIL PROTECTED]>:
>>>>>>
>>>>>> Hi!
>>>>>>
>>>>>>
>>>>>>> On Wed, 7 May 2008, jiwen zhang wrote:
>>>>>>>
>>>>>>> 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 ?
>>>>>>>>
>>>>>>>>
>>>>>>>> You are almost right: what you call pages are called sections.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 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 ?
>>>>>>>>
>>>>>>>>
>>>>>>>> The secLength will be zero because the image is padded with zeros.
>>>>>>>> If
>>>>>>>>
>>>>>>> the
>>>>>>> image is an exact number of pages the reprogramming might fail. I'll
>>>>>>> try
>>>>>>> to
>>>>>>> reproduce this bug tomorrow.
>>>>>>> is it to say that when reading to the end of the image , the
>>>>>>> secLength
>>>>>>> of
>>>>>>> the page is setted to zero , so the programme can jump out ?
>>>>>>>
>>>>>>>
>>>>>>> what is the meaning of "If the image is an exact number of pages the
>>>>>> reprogramming might fail" ? and what is the bug you say in your emial
>>>>>> ?
>>>>>> i
>>>>>> can't find the bug :-)
>>>>>>
>>>>>>
>>>>>> In order to generate the bug you need to craft an image which doesn't
>>>>> need
>>>>> any padding. These happens in lines 177-179 in tos-build-deluge-image:
>>>>>
>>>>>  171  all_data = []
>>>>>  172  for (addr, data) in all:
>>>>>  173    all_data += encode(addr, 4) + \
>>>>>  174                encode(len(data), 4) + \
>>>>>  175                data
>>>>>  176  all_data += encode(0, 4) + encode(0, 4) # Add the marker for the
>>>>> end
>>>>> of an image
>>>>>  177  padding = [0] * (DELUGE_BYTES_PER_PAGE - len(all_data) %
>>>>> DELUGE_BYTES_PER_PAGE)
>>>>>  178  if len(padding) < DELUGE_BYTES_PER_PAGE:
>>>>>  179    all_data += padding
>>>>>  180  all_data = deluge_crc(all_data)
>>>>>  181  ident['size'] = DELUGE_IDENT_SIZE + len(all_data)
>>>>>  182  sys.stdout.write(int2byte(deluge_ident(all_data)) +
>>>>> int2byte(all_data))
>>>>>
>>>>> I did exactly that and, as expected, the programImage failed. The exit
>>>>> from
>>>>> that loop was on the secLength == 0xffffffff condition. In just
>>>>> committed
>>>>> a
>>>>> fix for this case in deluge branch from here:
>>>>>      git://hinrg.cs.jhu.edu/git/deluge/tinyos-2.x.git
>>>>>      http://hinrg.cs.jhu.edu/git/?p=deluge/tinyos-2.x.git  (gitweb)
>>>>>
>>>>> Thanks for finding this bug! :-)
>>>>>
>>>>> Razvan ME
>>>>>
>>>>>  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 !!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>


-- 
zhang jiwen
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to