【问题标题】:RISCV testing emulatorRISCV测试模拟器
【发布时间】:2015-04-01 20:42:26
【问题描述】:

当我尝试运行 riscv 模拟器 asm 测试时,我遇到了以下错误:

./emulator-DefaultCPPConfig +dramsim +max-cycles=100000000 +verbose +loadmem=output/rv64ui-p-amoand_d.hex none 2> output/rv64ui-p-amoand_d.out && [ $PIPESTATUS -eq 0 ]
/bin/sh: 1: [: -eq: unexpected operator
make: *** [output/rv64ui-p-amoand_d.out] Error 2

我按照您在git 中的指示进行操作。它可以构建模拟器而没有任何错误,但是在尝试运行测试时会出现问题。

我在makefile中的命令后面添加了bash,第一个错误解决了,但是当我这样做时,我得到了一个新错误:

bash ./emulator-DefaultCPPConfig +dramsim +max-cycles=100000000 +verbose +loadmem=output/rv64ui-p-amoswap_d.hex none 2> output/rv64ui-p-amoswap_d.out && [ $PIPESTATUS -eq 0 ]
make: *** [output/rv64ui-p-amoswap_d.out] Error 126

【问题讨论】:

  • output/rv64ui-p-amoswap_d.out 文件中有什么内容?
  • 我在另一个系统上运行了测试make run-asm-tests,因为我无法访问该系统,但我仍然收到错误,但这次是:output/rv64ui-p-add.out。在这个文件中只有寄存器的配置。
  • 什么是[ $PIPESTATUS -eq 0 ] 命令?
  • PIPESTATUS 是一个检查第一个命令是否成功的 bash-ism。

标签: riscv


【解决方案1】:

问题出在 Shell 变量上,我只需要在 Makefile 中添加以下行:

SHELL=/bin/bash

它会解决问题。

【讨论】:

  • 正确,Makefile 没有正确设置 shell 以使用 bash。您可以尝试通过将 SHELL 环境变量设置为指向 bash 来解决此问题。
猜你喜欢
  • 2018-08-03
  • 2012-05-19
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多