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