JTAG, SWD, EDBG, ICSP, ISP .
Can someone simply explain their differences.
For example if EDBG debugger can ALSO program flash, why Arduino boards have both ISP and EDBG ?
http://www.armlearning.com/wp-content/uploads/2017/10/4c10034e18f9380ff03a140a4835faff.jpg
And in picture, why they wrote "SWD(EDBG)" ?
Whats the point of writing EDBG and writing it in paranthesis ?
Why ISP and ICSP have the same meaning ? Why not only one abbreviation ?
And finally, what is the relationship of JTAG with all this ?