Contents
  1. 1. 帮助系统
  2. 2. simics搜索路径
    1. 2.1. 特殊标识
      1. 2.1.1. %simics%
      2. 2.1.2. %script%
    2. 2.2. 搜索路径
  3. 3. pipe命令
  4. 4. 运行shell命令
  5. 5. 命令行快捷键
    1. 5.1. 移动
    2. 5.2. 编辑
    3. 5.3. 历史
    4. 5.4. 自动完成
    5. 5.5. 撤销

继续上一节,学习simics hindsight使用,命令行参数部分。

帮助系统

simics常用命令按类别分组,要查看分类,可以输入help。

1
2
3
4
5
6
simics> help
[...]
To get you started, here is a list of command categories:
Breakpoints Files and Directories Python
CD-ROM GUI Real Network
Changing Simulated State Haps Registers

使用help catogory打印该分类下的命令清单:

1
2
3
4
5
6
simics> help "Changing Simulated State"
Commands available in the Changing Simulated State category:
<image>.set set bytes in image to specified value
<memory-space>.load-binary load binary (executable) file into memory
<memory-space>.load-file load file into memory

help命令能打印几乎所有的simics文档,从命令,类 ,模块,接口,API类型和功能,haps一些根据配置不同加载内容。所有的内容也可以在reference manual中得到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
##命令信息
simics> help ptime
[... ptime command documentation ...]
simics> help mpc8641d_simple.soc.cpu[0].disassemble
[... <processor_info>.disassemble command documentation ...]
##类信息
simics> help mpc8641d_simple.soc.cpu[0].cpu
[... <ppce600> class documentation ...]
##接口信息
simics> help processor_info
[... <processor_info> interface documentation ...]
##属性信息
simics> help mpc8641d_simple.soc.cpu[0].gprs
[... <ppc440gp>.gprs attribute documentation ...]
##hap信息
simics> help Core_Exception
[... Core_Exception hap documentation ...]
##方法信息
simics> help SIM_get_mem_op_type
[... SIM_get_mem_op_type() function declaration ...]
##模块信息
simics> help ppce600-turbo
[... ppce600-turbo module documentation ...]

如果名字同时匹配多个Topic(比如命令和属性),那么它将输出以下顺序中匹配的第一个categories, commands, classes, interfaces, haps, modules, attributes, API functions,symbols.

也可以指定Topic:

1
2
simics> help module:NS16550_c
[... NS16550_c module documentation ...]

可用specifier有object:, class:, command:, attribute:, interface:, module:, api:, hap: and category:

默认情况下tab完成不对module和api symbols生效,可指定module:来启用。

help-search(别名为apropos)命令可以用来搜索help文档中的关键词,输入help-search keyword可以得到所有匹配的文档topic清单。

simics搜索路径

许多simics命令会在当前目录探索文件,simics的当前目录是simics从系统命令行窗口中启动时的目录,如果是从GUI启动,则为project目录。simics还提供两个目录操作特性来满足scripting时的需求。

特殊标识

simics识别一些特殊标识并在使用前翻译

%simics%

simics将在所有已安装包中寻找最新的版本,直到抵达最旧版本。例如%simics%/scripts/foo.simics可被译为/opt/simics/simics-4.8/simics-4.8.1/scripts/foo.simics

如果改变了使用了simics版本,%simcis%也的翻译也会跟着变化,所以只用它来引用在所有版本中都存在的路径。可以使用`lookup-file “%simics%”来查看它的具体引用 。

%script%

翻译成当前运行script所在目录。一个常见用法是调用同一目录下的另一script,无论当前目录在哪里。

1
run-command-file %script%/bar.simics

%simics% 和 %script% 总是被译成绝对路径,所以将不会与下一特性simics’ search path交互,后果之一是它们必须在双引号中使用。

搜索路径

simics有一个名为Simics’s search path的路径列表,当使用一些特定命令(如load-binary, load-file, run-commandfile, and run-python-file)和类(如image类和service-node中的tftp服务的实现)时将在这些目录中查找文件。

假设搜索路径包含:/home/joe/scripts/ ,当前目录 /home/joe/project,执行命令

1
simics> run-command-file test/start-test.simics

会顺序搜索以下文件运行

1. /home/joe/project/test/start-test.simics
2. /home/joe/scripts/test/start-test.simics

搜索目录可用add-directory, clear-directories , list-directories操作。搜索路径在寻找属于checkpoints或新配置的镜像文件时也会被使用。

注意用 %simics% or %script%给变量赋值并不会自动计算路径,以下语句的行为有很大差异

1
2
$just_a_string = "%script%/images/my_image"
$absolute_path = (lookup-file "%script%/images/my_image")

第二条语句会在当前翻译路径。

虽然搜索路径会保存在checkpoint的sim对象中,但是直到对象创建才能被看到,所以模块初始化代码不应依赖simics路径,因为它会运行于sim对象之前。

pipe命令

pipe命令可以将simics命令的输出通过管道传递给shell的命令。

1
simics> pipe "help" "grep Tracing"

也可以用来将输出保存到文件

1
simics> pipe "stepi 1000" "cat > trace.txt"

或者使用shell的more命令:

1
simics> pipe "pregs -all" more

运行shell命令

符号可以用来运行shell命令,它将所有之后的输入作为shell命令执行。

1
simics> !uname -a

命令行快捷键

simics支持两种键盘快捷键风格:Windows
GNU Readline,两种模式只有较少差异,CLI和GUI都可以进行设置具体使用哪种模式。

1
2
simics> prefs->readline_shortcuts = TRUE
simics> save-preferences

一些终端和telnet中键盘组合会被发送,例如cygwin中,所以推荐使用标准的windows终端。

移动

1
2
3
4
5
6
7
8
Action Shortcuts
----------------------------------------
Move character left Ctrl-B, Left
Move character right Ctrl-F, Right
Move word left Alt-B, Ctrl-Left
Move word right Alt-F, Ctrl-Right
Move to start of line Ctrl-A (GNU Readline), Home
Move to end of line Ctrl-E, End

编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Action Shortcuts
----------------------------------------
Enter line Ctrl-J, Ctrl-M, Enter
Copy Ctrl-C, Ctrl-Insert
Paste Ctrl-Y (GNU Readline), Ctrl-V, Shift-Insert
Cut Ctrl-X, Shift-Delete
Cut to end of line Ctrl-K
Cut to start of line Ctrl-U
Cut previous word Ctrl-W
Select character left Shift-Left
Select character right Shift-Right
Select word left Ctrl-Shift-Left
Select word right Ctrl-Shift-Right
Select to start of line Shift-Home
Select to end of line Shift-End
Select line Ctrl-A (Windows)
Delete character left Ctrl-H, Backspace
Delete character right Ctrl-D, Delete
Delete word left Ctrl-Backspace, Alt-Backspace, Alt-Delete
Delete word right Alt-D, Ctrl-Delete
Delete to start of line Ctrl-Home
Delete to end of line Ctrl-End

历史

1
2
3
4
5
6
7
8
9
Action Shortcuts
-------------------------------------------
Next in history Ctrl-N, Down
Previous in history Ctrl-P, Up
First in history Alt-<, Page Up
Last in history Alt->, Page Down
Reverse search Ctrl-R
Scroll page up Shift-Page Up
Scroll page down Shift-Page Down

自动完成

1
2
3
4
5
6
7
Action Shortcuts
---------------------------------------------
Uppercase word Alt-U
Lowercase word Alt-L
Capitalize word Alt-C
Transpose characters Ctrl-T
Transpose words Alt-T, Ctrl-Shift-T

撤销

1
2
3
4
5
6
Action Shortcuts
----------------------------------------
Cancel multi-line editing Ctrl-G
Undo Ctrl-_, Ctrl-Z (Windows)
Revert line Alt-R
Clear screen Ctrl-L
Contents
  1. 1. 帮助系统
  2. 2. simics搜索路径
    1. 2.1. 特殊标识
      1. 2.1.1. %simics%
      2. 2.1.2. %script%
    2. 2.2. 搜索路径
  3. 3. pipe命令
  4. 4. 运行shell命令
  5. 5. 命令行快捷键
    1. 5.1. 移动
    2. 5.2. 编辑
    3. 5.3. 历史
    4. 5.4. 自动完成
    5. 5.5. 撤销