Hi Zhao,
If you have time and want to learn background technologies, my (personal) recommendation is you should learn Multicore Navigator (especially Queue Manager Subsystem) first by the User Guide SPRUGR9 (http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprugr9). You will find small sample code (or subroutines) in the manual. My understanding is, direct operation to hardware registers will give you better understanding and insight. LLD (Low Level Driver) in the MCSDK is trying to hide detail of hardware, but my suggestion is to learn hardware detail first.
After that, you should read the sample code in MCSDK PDK (pdk_C6678_1_1_2_5/packages/ti/drv/pa/example/emacExample) and run it. Especially packet transmit to the Ethernet switch (not PA) part will help your better understanding. PA is slightly difficult compared to other parts and you can transmit and receive packets without PA in anyway if you don't need the maximum performance of C6678.
You will find relationship between Queue Manager, PKTDMA, NETCP, PA and GbE Switch in the emacExample code. In addition, following manuals help you to understand them much better.
- http://www.ti.com/litv/pdf/sprugv9d
- http://www.ti.com/litv/pdf/sprugs4a
- http://www.ti.com/litv/pdf/sprugz6
Understanding of the above peripherals is one of the most important key to get better understanding of KeyStone architecture. If you have any questions, please don't hesitate to post in the forum.
I hope it helps.
Best Regards,
Atsushi