【问题标题】:Rocket core risc-v , Load and store at memory address not going throughRocket core risc-v,在内存地址加载和存储不通过
【发布时间】:2016-07-19 06:02:03
【问题描述】:

我正在使用 risc-v,火箭核心。 我想在给定地址做一些基本的读/写操作。 运行测试套件中所有可用的测试用例。所有测试用例都通过(包括 ld 和 store)。 现在编写一个简单的 c 测试用例以在特定地址加载,编译并运行测试用例。测试用例没有通过。

int main ()
{
      *((volatile unsigned int*)0x8000F000)  = 0x600D600D;
}

生成相同的 asm 代码并将代码粘贴到测试套件中可用的测试用例中。仍然没有通过测试用例。 命令 c2object riscv64-unknown-elf-gcc -DENTROPY=18590 -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -I./../env/p -I./macros/scalar -T./../env /p/link.ld mem_wr_tc.c -o mem_wr_tc.o

要组装的对象 riscv64-unknown-elf-objdump --disassemble-all --disassemble-zeroes --section=.text --section=.text.startup --section=.text.init --section=.data mem_wr_tc.o > mem_wr_tc .asm

有没有人尝试将基本存储\加载(读\写)到特定地址。

请提出建议,可能会出现什么问题。

【问题讨论】:

    标签: riscv


    【解决方案1】:

    以下是您应该做的几件事:

    1) 查看反汇编以验证程序是否符合您的预期。看来您正在尝试构建一个裸机程序,因此您的反汇编将需要在正确的物理地址处的正确启动代码。

    2) 在尖峰(单步)中尝试您的程序,并验证您的程序是否正常运行。

    3) 查看 Rocket 的标准输出,它会告诉你它在每个周期都在做什么。

    4) 分析火箭芯片内存映射,确保写入正确的物理地址。

    5) 分析 VCD 波形以查看火箭在尝试在该特定地址执行您的内存操作时在做什么。

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      相关资源
      最近更新 更多