Hi all

I've got a question concerning the reconos_write_burst (and the 
reconos_read_burst) functions.
They are designed to copy 128 bytes at a time from hw to sw or vice 
versa. What happens, if you copy things that are not aligned to 128 bytes?
E.g. I had problems when I did something like the following (where 
rx_packet_len is an arbitrary number).

reconos_write_burst(local_address_x + count, rx_address + count);
if done then
        count := count + 128;
end if;
if count >= rx_packet_len then
        count := 0;
        os_sync_state <= STATE_NOTIFY;
        local_address_x := local_address_x + rx_packet_len;
         rx_address := rx_address + rx_packet_len;
end if;

If rx_packet_len is a multiple of 128 everything works as expected.
If it is another number, e.g. 132 the first packet is still ok, but the 
second packet gets transmitted wrongly, see below:

Correct:
AAAA
BBBB
CCCC
DDDD

Actual:

BBBB
BBBB
DDDD
DDDD

Are there any restrictions on the alignment of the addresses in the 
reconos_*_burst functions?

Thanks a lot,
Ariane
_______________________________________________
Reconos-devel_lists.reconos.de mailing list
reconos-devel@lists.reconos.de
https://ml01.ispgateway.de/mailman/listinfo/reconos-devel_lists.reconos.de

Antwort per Email an