Цитата(scifi @ Oct 29 2016, 22:53)

Выдумки. Просто не нужно было делать так, что чтение регистра меняет состояние периферии. Списывать это новичков - левая отмазка. Проектировщикам МК тоже надо межушный ганглий иногда активировать.
Почему выдумки? Догадка. Логически обоснованная.
Вы в юзермануалах на разные МК видели их блок-схемы? Там где расписаны блоки внутри МК и связи между ними. Так вот на них всегда "Test/Debug interface" входит в состав (или подключен к) только ядра Cortex-M. Из которого уже выходит несколько шин (I-code, D-code, System) подключенных к матрице шин AHB, к которой подключены также и другие bus master-ы, память, а также периферия через мосты AHB-APB. Часто причём эти APB-блоки работают на другой частоте нежели AHB. И доступ например CPU к периферии идёт через AHB->APB с арбитражём между ним и другими bus master и синхронизацией для согласования частот.
И никаких отдельных путей/связей от блока отладчика JTAG/SWD я ни на одной блок-схеме не видел. Как же тогда этот самый отладчик сможет обратиться к периферии??? Да ещё при этом избежать конфликтов с доступами от других bus master? Да ещё выполнить синхронизацию (ведь целевой блок APB может работать на другой частоте нежели CPU)?
Или Вы думаете содержимое этих регистров периферии к Вам в отладчик телепортируется само собой?
Нет, должны быть пути. И я вижу только один путь - штатный доступ как CPU. Конечно в наборе сигналов управления шины может быть какой-то сигнал говорящий периферии что это доступ не ядра, а отладчика, но очевидно что его нет.
Да и вообще я не вижу особой необходимости в этом. Просто надо всегда понимать что ты делаешь и как, и как это будет работать внутри МК.
Цитата(KnightIgor @ Oct 30 2016, 01:49)

JTAG определяет обязанность обеспечить nonintrusive режим. Для этого организуется совершенно независимый канал команд и данных, который "подключен" непосредственно к тем триггерам, которые и являют собой те или иные регистры ядра и периферии. По-видимому, с целью экономии производители действительно мухлюют.
Это упрощение. И, по-моему, вполне обоснованное. Из моей практики - не помню когда у меня возникали затруднения с таким способом работы отладчика.
А для чтения регистров, чувствительных к чтению, в каких-то МК я видел другой механизм: кроме собственно регистра с такими флагами, есть ещё один регистр с точно такими же флагами, но чтение его не приводит к их изменению. И в комментарии подписано, что этот регистр введён именно в целях отладки. Такой способ имхо реализовать гораздо проще, чем наворачивать отдельную кухню для чтения периферии отладчиком мимо CPU.