This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C129 ETHERNET MAC DMA DESCTIPTOR CHAINED TASK LIST

Purpose of my application is the possibility dynamically skip one transfer of task list and proceed with others tasks.

the tm4c129 datasheet (June 18, 2014) say  on Table 20-3. Enhanced Transmit Descriptor 1 (TDES1) pag. 1418

bit 12:0   TBS1: Transmit Buffer 1 Size
These bits indicate the first data buffer byte size, in bytes. If this field is 0, the DMA ignores this buffer and
uses Buffer 2 or the next descriptor, depending on the value of TCH (TDES0[20]).

I have try to make a task list of 5 chained task

TxDescriptor[i].ui32CtrlStatus = (DES0_TX_CTRL_LAST_SEG | DES0_TX_CTRL_FIRST_SEG | DES0_TX_CTRL_INTERRUPT | DES0_TX_CTRL_CHAINED | DES0_TX_CTRL_IP_ALL_CKHSUMS);

the 5 tasks are all equal and send same buffer, the buffer is filled with simple UDP data, first step is to test that they work, after set the own bit of all items and send a EMACTxDMAPollDemand(EMAC0_BASE); using wireshark I receive 5 correct UDP frame,  now it's all ok !.

then I try to skip one the 4th task putting the (Transmit Buffer 1 Size) to 0 (zero)  in the descriptor

TxDescriptor[3].ui32Count = 0;

so I will expect receive 4 UDP packet but I receive only first 3,  looking the memory contents of tx descriptor, I can see the descriptor 0,1,2 owned and descriptor 3 and 4 not owned by mac.

there is anyone to solve this ?

many thanks

Diego