Actually, I'm trying to change 4 bit link estimation (4bitle) to estimate some link delay related information. At the beginning, 4bitle is working fine. However, after I add the blue fields (nothing else), 4bitle seems to malfunction. Hope this helps clarify my question.
On Fri, Aug 20, 2010 at 12:50 AM, Philip Levis <[email protected]> wrote: > > On Aug 19, 2010, at 8:57 PM, Xiaohui Liu wrote: > > > Hi, > > > > The following appears in my header file. > > enum { > > SWS = 15, > > NUM_OF_QUANTILES = 4, > > LINK_MARKER_COUNTS = 11, > > }; > > typedef struct neighbor_table_entry { > > am_addr_t ll_addr; > > uint8_t lastseq; > > uint8_t rcvcnt; > > uint8_t failcnt; > > uint8_t flags; > > uint8_t inage; > > uint8_t inquality; > > uint16_t eetx; > > uint8_t data_success; > > uint8_t data_total; > > } neighbor_table_entry_t; > > > > Till now, everything works as expected. However, after the blue part is > appended to the structure definition to the following, which is the only > change to my program, it's not working anymore. Then I append the red part > and it goes back to normal. Can anyone help me understand what is going on? > I guess this may be related to alignment and order issue. I've encountered > several problems so far and every time I have to randomly change the order > of some fields or add some padding bytes till it's working. Is there a rule > regarding how a structure must be defined in TinyOS? Thanks. > > There are no special rules. Chances are you have a memory access bug in > your program somewhere; adding the padding leads the compiler to place the > structure differently, such that you don't see the bug manifest. > > Phil -- -Xiaohui Liu
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
