Flow Charts
1.3
Flow Charts
Any more pending
packets f or Tx
in waitQ?
FreePacket (pf cbFreePacket)
No
(Driv er registered callback
f unction to f ree packet buf f er
that was successf ully sent out)
emacDequeueTx
Return
No
Is v alid TxCP interrupt
on this channel?
Is Stat Pending Interrupt?
Return
Is Host Interrupt?
Emac_TxServ iceCheck
HwTxInt / HwInt
(Tx Interrupt Serv ice Routine)
1-6
The transmission path for Ethernet packets is as follows:
Y es
Y es
No
StatisticsUpdate
(pf cbStatistics)
Y es
(Driv er registered Stats
update f unction
notif ied)
No
StatusUpdate
(pf cbStatus)
Y es
(Driv er registered
Status update f unction
notif ied to indicate error
/ status change)
Return
Tx Completed. EMAC raises TxCP interrupt
Just return f or
now. When link
ready packet will
be dequeued by
driv er and sent
out
No
No pending packets.
Set TxFree to 1 and
return.
No
Return
User Application
send/sendto socket API
NDK Stack Processing
(L4 – TCP/UDP/RAW and IP)
Allocate Packet, Copy Data Buf f er; Add
headers and if needed f ragment packets
Return
NIMUSendPacket
Dev ice Driv er's registered "send" callback
f unction
EmacSend (nimu_eth.c)
Enqueue in Tx Queue, PBMQ_tx;
Is link up and Transmitter ready ?
(TxFree is 1?)
Y es
HwPktTxNext
Any pending packet in Tx
Queue (PBMQ_tx)?
Y es
Dequeue packet f rom dev ice
PBMQ_tx. Get an empty
EMAC_pkt f rom TxQueue and
f ill in packet details.
EMAC_sendPacket
(Validate Emac_Pkt structure f ields:- f lags,
buf f er of f set, length)
emacEnqueueTx
(Enqueue packet in EMAC BDs and start
EMAC transmitter if not running by setting
the TxnHDP to the app. BD )
Return
Need help?
Do you have a question about the TMS320C6000 and is the answer not in the manual?
Questions and answers