From 8e9cababfb8cddf5ee5eec12cf0f17bf50e45cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= Date: Fri, 5 Sep 2025 00:10:18 +0200 Subject: [PATCH] gpio: show also bit changes vs last gpio cmd --- cmd_parser.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd_parser.c b/cmd_parser.c index 92d317a..ef06898 100644 --- a/cmd_parser.c +++ b/cmd_parser.c @@ -32,6 +32,7 @@ extern __code uint8_t * __code hex; extern __xdata uint8_t flash_buf[256]; __xdata uint8_t vlan_names[VLAN_NAMES_SIZE]; __xdata uint16_t vlan_ptr; +__xdata uint8_t gpio_last_value[12] = { 0 }; // Buffer for writing to flash 0x1fd000, copy to 0x1fe000 @@ -427,7 +428,7 @@ void cmd_parser(void) __banked if (cmd_compare(0, "gpio")) { for (uint8_t idx = 0; idx < 3; idx++) { - reg_read_m(RTL837X_REG_GPIO_A + (idx * 4)); + reg_read(RTL837X_REG_GPIO_A + (idx * 4)); print_string("GPIO "); write_char(idx + 'A'); write_char(':'); @@ -438,12 +439,20 @@ void cmd_parser(void) __banked print_byte(SFR_DATA_8); print_byte(SFR_DATA_0); write_char(' '); + print_byte( gpio_last_value[(idx *4)] ^ SFR_DATA_24); + gpio_last_value[(idx *4)] = SFR_DATA_24; + print_byte( gpio_last_value[(idx *4) + 1] ^ SFR_DATA_16); + gpio_last_value[(idx *4) + 1] = SFR_DATA_16; + print_byte( gpio_last_value[(idx *4) + 2] ^ SFR_DATA_8); + gpio_last_value[(idx *4) + 2] = SFR_DATA_8; + print_byte( gpio_last_value[(idx *4) + 3] ^ SFR_DATA_0); + gpio_last_value[(idx *4) + 3] = SFR_DATA_0; + write_char('\n'); } } } } - void execute_config(void) __banked { __xdata uint32_t pos = CONFIG_START;