0

Trace32 の 2 つの異なる場所に 2 つのファイルがあります。Trace32 で cd.do file_name subroutine_name を実行します。trace32 は、最初に実行されたコマンドの場所を、次のコマンドを実行する必要があるフォルダーとして取得します。2 つの異なるフォルダーからルーチンを実行する方法を教えてください。

4

2 に答える 2

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"

folder2/loadapp.cmm :

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

相対パスを使用すると、現在実行されている PRACTICE スクリプトの場所から相対的な他のファイルにアクセスする前に、プレフィックス "~~~~" を使用できます。"~~~~" は、現在実行されているスクリプトのパスに置き換えられます ("~" がホーム ディレクトリを表すのと同じように)。現在実行されている 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
于 2015-07-15T13:44:14.720 に答える
0

Trace32 でスクリプトを作成する方法については、ここに非常に優れたガイドがあります。 http://www2.lauterbach.com/pdf/practice_user.pdf

なぜそれらを2つの異なるフォルダーに入れる必要があるのか​​ わかりません。同じフォルダーに入れるだけで解決できるのではないでしょうか?

于 2015-07-15T07:37:43.833 に答える