Java中的控制状态寄存器

时间:2016-01-18 05:43:35

标签: java

我使用Java本质上是为I2C设备编写设备驱动程序。处理器是BeagleBoneBlack板上的Arm,但我不认为这与我的问题特别相关,特别是因为我们可能会在不久的将来离开BBB平台。

我正在寻找一种从Java干净地访问硬件控制/状态寄存器的方法。 CSR中的位和位域由芯片数据表定义 - 我和Java都无法确定它们。驱动程序通常需要执行操作来控制寄存器,例如设置命名位,清除命名位和修改多位位域。并且从状态寄存器确定是否设置或清除特定位,或者值是什么值的位域。并且,偶尔将状态寄存器写回控制寄存器以清除中断(Write One To Clear)。起初看起来Enums和Enumsets似乎可以工作,但我还没有弄清楚如何让它们与预定义的硬件寄存器一起工作。

我正在寻找的是一个类,它允许我在寄存器中定义可能是字节,字或长字(即任意)长度的位和位域,然后对这些位/位域进行设置和检查。在C中,我只是使用适当的位掩码创建一堆#defines,然后使用一些非显而易见的代码来执行必要的位操作,但我希望在Java中使用更清晰简洁的东西。

有没有人对Java中的这类类有任何建议或示例?

0 个答案:

没有答案