Trace32 の 2 つの異なる場所に 2 つのファイルがあります。Trace32 で cd.do file_name subroutine_name を実行します。trace32 は、最初に実行されたコマンドの場所を、次のコマンドを実行する必要があるフォルダーとして取得します。2 つの異なるフォルダーからルーチンを実行する方法を教えてください。
2 に答える
たぶん、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
Trace32 でスクリプトを作成する方法については、ここに非常に優れたガイドがあります。 http://www2.lauterbach.com/pdf/practice_user.pdf
なぜそれらを2つの異なるフォルダーに入れる必要があるのか わかりません。同じフォルダーに入れるだけで解決できるのではないでしょうか?