2

默认情况下,Simics 日志消息仅显示记录消息的对象。比如这些:

[board.mb.sb.spi.bank.spi_regs spec-viol] Write to read-only field spi_regs.hsfsts.fdv (value written = 0x0000, contents = 0x0001).
...
[board.mb.sb.lan.bank.csr spec-viol] writing 0 to count is not allowed
...
[board.mb.cpu0.core[3][1] info] 0x585: Reading from unknown MSR. Signaling GP fault.

我如何查看日志的时间,以了解哪些日志在时间上接近(包括命中同一周期)以及哪些日志相距很远?

4

1 回答 1

3

Simics 日志上打印的信息由 Simicslog-setup命令控制。

-time-stamp通过将选项添加到日志设置来打印标准时间信息。这将打印当前指令指针/程序计数器值和周期。它专注于了解软件的功能。

要仅查看日志的虚拟时间,而不使用指令地址,请使用该-pico-seconds选项。当您正在研究不运行指令以推动模拟前进的模型(如附加到“ clock”对象的设备模型)时,这很有用。

-real-time最后,可以使用该标志打印日志消息发生的实时时间。这主要用于了解 Simics 的性能和“打嗝”(例如,如果实时日志消息中有很长时间的间隙)。

所有选项都可以一起用于非常长的日志消息。

simics> log-setup -real-time -time-stamp -pico-seconds 
...
[board.mb.sb.lan.bank.csr spec-viol] {board.mb.cpu0.core[0][0] 0xdef964fe 3536084056} [08:23:48.5902] {1768042028499 ps} writing 0 to count is not allowed

要查看所有选项,请使用help log-setup(可能会随着时间的推移添加选项):

simics> help log-setup 
Command log-setup

   Synopsis
      log-setup [object] [-time-stamp] [-no-time-stamp] [-pico-seconds] [-no-pico-seconds] [-real-time] [-no-real-time]
      [-console] [-no-console] [-eclipse-console] [-no-eclipse-console] [-group] [-no-group] [-level] [-no-level]
      [-no-log-file] [-overwrite] [logfile]
      <conf_object>.log-setup [-time-stamp] [-no-time-stamp] [-pico-seconds] [-no-pico-seconds] [-real-time] [-no-real-time]
      [-console] [-no-console] [-eclipse-console] [-no-eclipse-console] [-group] [-no-group] [-level] [-no-level]
      [-no-log-file] [-overwrite] [logfile]
...
于 2021-06-28T06:24:27.703 回答