diff --git a/usrc/service/extern_if_service.c b/usrc/service/extern_if_service.c index 2313ac0..0aff443 100644 --- a/usrc/service/extern_if_service.c +++ b/usrc/service/extern_if_service.c @@ -95,6 +95,15 @@ static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, ui reg_manager_read_regs(rxpacket->data[0], rxpacket->data[1], ®cache[0], &len); create_receipt(cx, 0, regcache, len); } + + else if (rxpacket->cmd == kzaf_cmd_reg_read_regs) { + static uint32_t regcache[MAX_REG_NUM + 1]; + uint32_t len = MAX_REG_NUM; + + reg_manager_read_regs(rxpacket->data[0], rxpacket->data[1], ®cache[0], &len); + create_receipt(cx, 0, regcache, len); + } + /******************************************************************************* * ²úÉúеÄMAC * *******************************************************************************/ @@ -112,6 +121,8 @@ static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, ui } else if (rxpacket->cmd == kzaf_cmd_storage_cfg) { config_flush(); create_receipt(cx, 0, NULL, 0); + } else if (rxpacket->cmd == kzaf_cmd_ping) { + create_receipt(cx, 0, NULL, 0); } return true; } diff --git a/zfpga_basic_protocol b/zfpga_basic_protocol index eb14cf9..e3db34b 160000 --- a/zfpga_basic_protocol +++ b/zfpga_basic_protocol @@ -1 +1 @@ -Subproject commit eb14cf988689954200e3a083b9b0d7b52260f4d7 +Subproject commit e3db34bff7e93791f78fc1c8d6fa6333561f1037