一个轻量级库,用于管理直接寄存器字段操作。
项目描述
regmap
regmap是一个轻量级库,用于管理直接寄存器字段操作。
很多时候,在开发过程中,我需要与嵌入式系统交互,而在测试时,我只想读取和写入原始寄存器值。这些设备中大多数都包含具有不同位长度的多个字段。该库将尴尬的位操作抽象成简单的寄存器定义。
安装
您可以使用以下命令从PyPi安装regmap
pip install regmap
用法
定义接口
接口是与包含寄存器的系统交互的代码。需要定义读和写方法。
from regmap import Interface
class DeviceInterface(Interface):
def read(self, address: int) -> int:
# Function to go read a register from the device
value = read_val_from_register(address)
return value
def write(self, address: int, value: int) -> None:
# Function to go write a value to a register on the device
write_val_to_register(address, value)
定义我们的寄存器
from regmap import BitField, Register
class config_reg_a_def(Register):
_name = "config_reg_a"
_address = 0x2000
output = BitField(7, 1)
enable = BitField(0)
class config_reg_b_def(Register):
_name = "config_reg_b"
_address = 0x2004
setting2 = BitField(7, 5)
setting1 = BitField(4, 2)
setting0 = BitField(1, 0)
class Registers:
def __init__(self, interface):
self.config_reg_a = config_reg_a_def(interface)
self.config_reg_b = config_reg_b_def(interface)
设置一些值
上下文管理器将处理对寄存器的读取和写入。默认情况下,上下文管理器将执行读取、修改和写入。这可以更改以执行只读或只写操作。
from regmap import Mode
interface = DeviceInterface()
registers = Registers(interface)
# Perform read, modify, write
with registers.config_reg_a:
registers.config_reg_a.output = 20
registers.config_reg_a.enable = 1
# Perform read only, will warn if modifications were attempted
with registers.config_reg_a(mode=Mode.RO):
print(registers.config_reg_a.output)
# Perform write only, zeros will be written in any unset fields
with registers.config_reg_b(mode=Mode.WO):
registers.config_reg_b.setting1 = 2
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
regmap-0.1.0.tar.gz (8.2 kB 查看哈希值)
构建分发
regmap-0.1.0-py3-none-any.whl (7.6 kB 查看哈希)
关闭
regmap-0.1.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a4c3b72133e0006a2cc7525051ad504040e7bd7a1d49fa336cee7676f7f658d |
|
MD5 | 7adb4dc687ad721e1771e6621545247c |
|
BLAKE2b-256 | 873d96bb5ceceaf8981342a491ac1cfa0623f64db409b3a8d837ce98c7c4cec7 |
关闭
regmap-0.1.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 78e3c94b22c64b0e16c21ed3e5e02b8f3fe14245c81a4cb0cdb727195593a0bf |
|
MD5 | d3eeb9507f2ea1d0b33b6b8a23281d88 |
|
BLAKE2b-256 | 5b01cc88101d5895243c3778059c360206436994708c7f007cc5d15c4e645d2f |