Я использую отладчик Лаутербаха (интерфейс TRACE32) на процессоре 7447. Мне нужно загрузить несколько файлов на этот процессор, что я делаю, выполняя команды в графическом интерфейсе T32. Идея состоит в том, чтобы сценарий выполнял эту работу. Один из способов - вызвать отдельные файлы .cmm в файле startup.cmm. Но при этом возникает проблема каждый раз, когда в графическом интерфейсе пользователя появляется диалоговое окно, которое снова требует ручного ввода. Может ли кто-нибудь сказать мне, как использовать интерфейс командной строки на T32 для достижения того же?
Интерфейс командной строки для Лаутербаха
Ответы (3)
Целевая программа обычно загружается в память вашего процессора с помощью команды
Data.LOAD.Elf myprog.elf
Однако TRACE32 удаляет базу данных символов каждый раз, когда вы используете Data.LOAD.Elf перед загрузкой вашей новой целевой программы. Чтобы подавить это, используйте параметр «/ NoClear».
Поэтому, если вы хотите загрузить более одной ELF (целевой программы) в память вашего процессора, вы должны сделать это следующим образом:
Data.LOAD.Elf myprog1.elf
Data.LOAD.Elf myprog2.elf /NoClear
Data.LOAD.Elf myprog3.elf /NoClear
Если вы используете команды Data.LOAD в одном файле сценария * .cmm или в нескольких файлах сценария * .cmm, решать вам, но я бы поставил один скрипт. Диалоговое окно не должно выскакивать.
На случай, если кому-то еще нужен ответ. Мой скрипт для загрузки файла эльфа:
flash-elf.cmm:
local &fileName
entry &fileName
print "LOAD &fileName"
IF (!FILE.EXIST(&fileName))
(
PRINT "No elf file was flashed"
ENDDO
// T32 will stay opened
)
DO ~~/demo/powerpc/flash/mpc574xg.cmm "PREPAREONLY" // you should choose your cpu script
FLASH.ReProgram ALL
Data.LOAD.Elf &fileName
FLASH.ReProgram off
SYStem.ResetTarget
GO
QUIT
сохраните его либо в своем домашнем каталоге (или bin, или в любом каталоге, на который указывает PATH), либо даже рядом с t32.config (где установлен T32, это то, что я использую)
сейчас из CMD звоню
t32mppc.exe -s ~~/flash-elf.cmm my.elf
Вот ответ о том, как управлять T32 через TCP / UDP https://stackoverflow.com/a/39400777/4875690
Я столкнулся с той же проблемой и, наконец, выяснил, что всплывающее диалоговое окно было создано с помощью сценария PRACTICE (.cmm).
Так что просто проверьте свой сценарий PRACTICE (.cmm) и удалите код, который создает всплывающее диалоговое окно.
Приведенный ниже код является примером кода, который создает диалоговое окно Да / Нет из сценария PRACTICE (.cmm).
LOCAL &result
DIALOG.YESNO "Program FLASH memory?"
ENTRY &result
IF &result==FALSE()
ENDDO
PRINT "User clicked Yes."
Приведенный выше пример взят отсюда (https://www2.lauterbach.com/pdf/ide_ref.pdf).
Для управления trace32 через командную строку ознакомьтесь с этим (управление trace32 через командную строку ).