我在 Trace32 的两个不同地点有两个文件。我在 Trace32 中执行 cd.do file_name subroutine_name。trace32 将执行的第一个命令的位置作为需要执行以下命令的文件夹。如何从两个不同的文件夹执行例程。
问问题
706 次
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 回答