2015-07-15 4 views
0

У меня есть два файла в двух разных местоположениях floder в Trace32. Я выполняю имя подкаталога cd.do имя_файла в Trace32. Трассировка 32 принимает местоположение первой команды, выполняемой как папка, из которой должны выполняться следующие команды. Как я могу выполнить подпрограммы из двух разных папок.Как получить доступ к двум различным программам в двух файлах в сценариях CMM Trace32

ответ

0

Существует довольно хорошее руководство по написанию сценария в Trace32. http://www2.lauterbach.com/pdf/practice_user.pdf

Я не понимаю, почему вам нужно иметь их в двух разных папках, разве это не нужно решить, просто ли это в той же папке?

+0

Я их в различных папки. Я попытался использовать chdir для изменения каталога, чтобы программа из файлов в другой папке могла быть выполнена. Это создает проблему, поскольку я могу использовать подпрограммы, доступные только из одной папки. –

+0

Я не думаю, что язык сценариев создан для использования подпрограмм из разных папок, он недостаточно продвинутый.Я знаю, что это дублирование, но работает ли это нормально, если вы просто переместите его в одну папку? – Dunceor

+0

Использование подпрограмм из разных папок, безусловно, возможно. Я предложил решение (см. Выше или ниже). Аабха Гед, не могли бы вы уточнить вопрос? Поскольку вы не приняли мой ответ, я предполагаю, что я неправильно понял ваш запрос ... – Holger

0

Ну, может быть, вы должны просто использовать 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" 

Папка2/loadapp.cmm:

Data.LOAD.Elf "C:/t32/myscripts/folder2/application.elf" 
DO "C:/t32/myscripts/folder1/routines.cmm" subroutine_B 

С относительными путями вы можете использовать префикс «~~~~» перед доступом к другим файлам относительно местоположения текущего исполняемого сценария PRACTICE. «~~~~» заменяется на путь исполняемого в настоящее время скрипта (так же, как «~» означает ваш домашний каталог.) Существует также функция OS.PPD(), которая дает вам каталог текущей выполненной ПРАКТИКИ скрипт.

Так вышеописанная ситуация с относительными путями выглядеть:

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