diff --git a/bk7231tools/serial/cmd_chip.py b/bk7231tools/serial/cmd_chip.py index 064efd2..f705fbd 100644 --- a/bk7231tools/serial/cmd_chip.py +++ b/bk7231tools/serial/cmd_chip.py @@ -17,6 +17,7 @@ BkReadRegResp, BkRebootCmnd, BkSetBaudRateCmnd, + BkWriteRegCmnd, ) from .protocol import CHIP_BY_CRC, PROTOCOLS, BK7231Protocol, ProtocolType from .utils import fix_addr @@ -99,6 +100,10 @@ def register_read(self, address: int) -> int: response: BkReadRegResp = self.command(command) return response.value + def register_write(self, address: int, value: int) -> None: + command = BkWriteRegCmnd(address, value) + self.command(command) + def read_flash_range_crc(self, start: int, end: int) -> int: start = fix_addr(start) end = fix_addr(end) diff --git a/bk7231tools/serial/packets.py b/bk7231tools/serial/packets.py index bbeab8d..c5e9252 100644 --- a/bk7231tools/serial/packets.py +++ b/bk7231tools/serial/packets.py @@ -54,6 +54,16 @@ class BkLinkCheckResp(Packet): @dataclass class BkWriteRegCmnd(Packet): + CODE = 0x01 # CMD_WriteReg + FORMAT = " "Packet": RESPONSE_TABLE: Dict[Type[Packet], Type[Packet]] = { # short commands BkLinkCheckCmnd: BkLinkCheckResp, # 0x00 / CMD_LinkCheck + BkWriteRegCmnd: BkWriteRegResp, # 0x01 / CMD_WriteReg BkReadRegCmnd: BkReadRegResp, # 0x03 / CMD_ReadReg BkCheckCrcCmnd: BkCheckCrcResp, # 0x10 / CMD_CheckCRC BkBootVersionCmnd: BkBootVersionResp, # 0x11 / CMD_ReadBootVersion