JTAG это всего лишь интерфейс. При программировании внутренней Flash МК он используется в качестве транспорта данных. Чтобы программа на PC, работающая через JTAG с кристаллом, могла ее (Flash-память) запрограммировать, она должна знать: как именно программируется Flash данного конкретного кристалла? Поскольку процедуры IAP даже для одного и того же ядра у разных производителей не стандартизованы, то получается, что программа должна быть адаптирована в т.ч.именно под тот кристалл, который требуется запрограммировать.
Если то же самое на более доступных аналогиях объяснять. То программа на PC это главный менеджер основного склада. JTAG эта фура, которая обеспечивает развозку товара по малым складам. Так вот чтобы перевезти груз с основного склада на малый, главный менеджер должен знать не только адреса этих малых складов, но и внутреннее устройство всех их: где, на какой полке лежит, в каком помещении склада должен лежать товар, какой погрузчик или лифт нужно использовать для перемещения его и какой-именно грузчик внутри каждого малого склада должен перемещать доставленный груз.