У меня есть два файла в двух разных флодерах в Trace32. Я выполняю cd.do имя_файла имя_подпрограммы в Trace32. trace32 берет расположение первой выполненной команды в качестве папки, из которой необходимо выполнить следующие команды. Как я могу выполнять подпрограммы из двух разных папок.
Как получить доступ к двум разным процедурам в двух файлах в скриптах Trace32 CMM
Ответы (2)
Здесь есть довольно хорошее руководство о том, как писать сценарии в Trace32. http://www2.lauterbach.com/pdf/practice_user.pdf
Я не понимаю, почему вам нужно иметь их в двух разных папках, разве это не должно решаться просто в одной папке?
Что ж, возможно, вам следует просто использовать DO <myscript.cmm>
вместо CD.DO <myscript.cmm>
.
DO <myscript.cmm>
выполняет скрипт в заданном месте, но сохраняет текущий рабочий путь.CD.DO <myscript.cmm>
изменяет рабочий путь на расположение данного скрипта, а затем выполняет скрипт.
Однако я бы порекомендовал писать ваши скрипты таким образом, чтобы не имело значения, вызываются они с помощью CD.DO
или просто DO
. Вы можете добиться этого либо с абсолютными путями, либо с путями относительно местоположений скрипта. (Я предпочитаю 2-й.)
Итак, представьте следующую файловую структуру:
C:\t32\myscripts\start.cmm
C:\t32\myscripts\folder1\routines.cmm
C:\t32\myscripts\folder2\loadapp.cmm
C:\t32\myscripts\folder2\application.elf
Вы можете справиться с этой структурой с помощью абсолютных путей:
start.cmm:
DO "C:/t32/myscripts/folder1/routines.cmm" subroutine_A
DO "C:/t32/myscripts/folder2/loadapp.cmm"
folder2/loadapp.cmm:
Data.LOAD.Elf "C:/t32/myscripts/folder2/application.elf"
DO "C:/t32/myscripts/folder1/routines.cmm" subroutine_B
С относительными путями вы можете использовать префикс «~~~~» перед доступом к другим файлам относительно местоположения текущего выполняемого сценария PRACTICE. «~~~~» заменяется на путь исполняемого в данный момент скрипта (точно так же, как «~» обозначает ваш домашний каталог). Существует также функция OS.PPD(), которая дает вам каталог исполняемого в данный момент PRACTICE. сценарий.
Таким образом, приведенная выше ситуация с относительными путями выглядит так:
start.cmm:
DO "~~~~/folder1/routines.cmm subroutine_A"
DO "~~~~/folder2/loadapp.cmm"
folder2/loadapp.cmm:
Data.LOAD.Elf "~~~~/application.elf"
DO "~~~~/../folder1/routines.cmm" subroutine_B