Как правило, да, вы можете использовать jtag в качестве отладчика, абсолютно не связанного с тем, какое программное обеспечение вы используете на этом процессоре. Проблемы могут возникнуть в кеше, например, если вы остановите процессор, чтобы изменить некоторые инструкции в ram, и перезапустите, то изменение инструкций в ram - это доступ к данным, который проходит не через кеш инструкций, а через данные. кеш, если у вас есть отдельная инструкция и кеш данных, они включены, и некоторые из команд, которые вы изменили, находятся по адресу, который находится в кеше команд, вы можете довольно быстро запутаться с новыми и устаревшими инструкциями, подаваемыми в процессор , Linux любит использовать кэши, если они есть.
Во-вторых, это mmu, процессор / jtag, вероятно, работает с виртуальными адресами на стороне процессора mmu, а не с физическими адресами, поэтому в зависимости от того, как работает оборудование, например, если вы устанавливаете точку останова по адресу в блок отладки в процессоре и задача операционной системы переключаются на другую программу / поток в том же адресном пространстве, вы будете устанавливать точку останова на неправильной программе по правильному адресу. Если отладчик / процессор устанавливает точки останова, изменяя инструкцию в ram, то вы сталкиваетесь с проблемой кеша, приведенной выше, ЕСЛИ не кешируется, тогда вы сломаете правильную инструкцию в правильном потоке, но тогда у вас будет проблема с кешем.
Итог, безусловно, если процессор поддерживает отладку на основе jtag, которая не изменяется в зависимости от того, какое программное обеспечение вы выберете для запуска на этом процессоре.