0

我正在从头开始开发流水线NIOS2微处理器(英特尔 FPGA 生态系统的一部分)作为学习练习。这是一个哈佛架构处理器,具有独立的指令和数据存储器总线。

当我编译一个 C case 语句时,GCC 会创建一个跳转表,并将其与代码的其余可执行部分直接相邻。这会产生一个问题,因为处理器通过数据存储器总线加载跳转表值,该总线未连接到程序存储器。

我知道在实践中,单独的内存总线是通过缓存层次结构连接的,但是我没有缓存,并且我在两条总线之间保持了严格的分离。

作为一种解决方法,我将程序存储器设为双端口并将两条总线连接到它,但这似乎不是正确的解决方案。

我有没有办法指示 GCC 将跳转表和可执行代码分成不同的部分?如果没有,应该有吗?思考这个问题的正确方法是什么?

4

0 回答 0