【发布时间】:2018-04-11 18:13:00
【问题描述】:
我正在开发一个基于 Rocket-Chip 工具的项目。我制作了一个简单的裸机程序,在 Spike 上运行良好(即使有多个内核......等等)。
问题是当我在 C++ 模拟器中运行它时,后者在第一次 printf 调用中停止。
我的问题是:是否可以从 C 模拟器调用系统调用(如 printf、putchar ..)?或者有什么方法可以从模拟中打印程序的结果,比如获取数据存储器之类的? (我为此苦苦挣扎,但没有找到它保存数据变量的位置)。
PS:该程序基于riscv-tests/benchmarks,系统调用已在那里定义。
【问题讨论】:
-
什么是C++ 模拟器?
-
如果你使用C++,C语言标签的作用是什么?请不要使用不相关的标签。
-
@VTT C++ Emulator 是 CABA(周期精确位精确)模拟器,用于模拟软件并考虑您的个性化硬件。 Spike 只是一个功能模拟器,并没有考虑到你的硬件。
-
@Gerhardh 因为模拟器是用 C++ 编写的,但运行在上面的程序是用 C 编写的。
标签: c++ c riscv bare-metal chisel