我正在尝试使用altera DE0或DE2或DE1-SoC板为大学课程构建一个简单的视频游戏,我查看了用于nios II cpu的isa,ISA中没有原子测试和设置指令。我如何在这里建立一个简单的锁,任何在一段时间内强制互斥的东西都会起作用。
我们将会有来自main()
的代码和将在中断服务程序中运行的代码,并且我想对某些变量进行锁定,是否可能?
答案 0 :(得分:2)
Nios II架构似乎没有原子测试和设置指令。该架构使用“硬件互斥核心”,而不是在多个Nios II处理器之间同步共享资源。它作为共享外设工作,提供原子测试和测试操作。您可以在Altera's Creating Multiprocessor Nios II Systems Tutorial中了解有关它的更多信息。
但是,您可能没有进行原子测试和设置操作。只需禁用中断,就可以使单个核心系统上的中断的任何指令序列成为原子。