哈佛架构微处理器和 GCC 跳转表放置的概念问题

问题描述

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

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

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)