0

我在 Trace32 的两个不同地点有两个文件。我在 Trace32 中执行 cd.do file_name subroutine_name。trace32 将执行的第一个命令的位置作为需要执行以下命令的文件夹。如何从两个不同的文件夹执行例程。

4

2 回答 2

0

这里有一个关于如何在 Trace32 中编写脚本的非常好的指南。 http://www2.lauterbach.com/pdf/practice_user.pdf

我不明白为什么您需要将它们放在两个不同的文件夹中,不应该通过将它们放在同一个文件夹中来解决吗?

于 2015-07-15T07:37:43.833 回答
0

好吧,也许你应该简单地使用DO <myscript.cmm>而不是CD.DO <myscript.cmm>.

  • DO <myscript.cmm>在给定位置执行脚本,但保留当前工作路径。
  • CD.DO <myscript.cmm>将工作路径更改为给定脚本的位置,然后执行脚本。

但是,我建议以与调用它们无关的方式编写CD.DO脚本DO。您可以使用绝对路径或相对于脚本位置的路径来实现这一点。(我更喜欢第二个。)

想象一下下面的文件结构:

C:\t32\myscripts\start.cmm
C:\t32\myscripts\folder1\routines.cmm
C:\t32\myscripts\folder2\loadapp.cmm
C:\t32\myscripts\folder2\application.elf

你可以用这样的绝对路径来处理这个结构:

开始.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() 给你当前执行的 PRACTICE 的目录脚本。

因此,相对路径的上述情况如下所示:

开始.cmm

DO "~~~~/folder1/routines.cmm subroutine_A"
DO "~~~~/folder2/loadapp.cmm"

文件夹 2/loadapp.cmm

Data.LOAD.Elf "~~~~/application.elf"
DO "~~~~/../folder1/routines.cmm" subroutine_B
于 2015-07-15T13:44:14.720 回答