mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
cmd: convert reg to regget and regset.
We want to stick close to the origonal commands. See: https://github.com/up-n-atom/SWTG118AS?tab=readme-ov-file#commands
This commit is contained in:
+40
-32
@@ -300,35 +300,18 @@ void parse_mirror(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void parse_reg(void)
|
void parse_regget(void)
|
||||||
{
|
{
|
||||||
__xdata uint16_t reg = 0;
|
uint16_t reg = 0;
|
||||||
uint8_t read = 0xFF;
|
|
||||||
|
|
||||||
if (cmd_words_b[2] < 0) {
|
if (cmd_words_b[2] < 0) {
|
||||||
write_char('v');
|
write_char('v');
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmd_buffer[cmd_words_b[1]] == 'w') {
|
uint8_t hex_size = atoi_hex(cmd_words_b[1]);
|
||||||
write_char('w');
|
|
||||||
read = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cmd_buffer[cmd_words_b[1]] == 'r') {
|
|
||||||
write_char('r');
|
|
||||||
read = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (read == 0xFF) {
|
|
||||||
print_string("usage: reg r <hexvalue> or reg w <hexvalue> <hexvalue>");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t hex_size = atoi_hex(cmd_words_b[2]);
|
|
||||||
|
|
||||||
if (hex_size == 0 || hex_size > 2) {
|
if (hex_size == 0 || hex_size > 2) {
|
||||||
write_char('s');
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,21 +321,47 @@ void parse_reg(void)
|
|||||||
reg = (((uint16_t)hexvalue[0]) << 8) | hexvalue[1];
|
reg = (((uint16_t)hexvalue[0]) << 8) | hexvalue[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
print_string("REG: ");
|
print_string("REGGET: ");
|
||||||
print_short(reg);
|
print_short(reg);
|
||||||
print_string(": VAL: ");
|
print_string(": VAL: ");
|
||||||
|
|
||||||
if (read) {
|
|
||||||
reg_read_m(reg);
|
reg_read_m(reg);
|
||||||
|
print_sfr_data();
|
||||||
|
write_char('\n');
|
||||||
|
return;
|
||||||
|
|
||||||
|
err:
|
||||||
|
print_string("usage: regget <hexvalue>\n\tlike: regget 0BB0 or regget 0c");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void parse_regset(void)
|
||||||
|
{
|
||||||
|
uint16_t reg = 0;
|
||||||
|
|
||||||
|
uint8_t hex_size = atoi_hex(cmd_words_b[1]);
|
||||||
|
|
||||||
|
if (hex_size == 0 || hex_size > 2) {
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hex_size == 1) {
|
||||||
|
reg = hexvalue[0];
|
||||||
} else {
|
} else {
|
||||||
hex_size = atoi_hex(cmd_words_b[3]);
|
reg = (((uint16_t)hexvalue[0]) << 8) | hexvalue[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
hex_size = atoi_hex(cmd_words_b[2]);
|
||||||
|
|
||||||
if (hex_size == 0 || hex_size > 4 || cmd_words_b[3] < 0) {
|
if (hex_size == 0 || hex_size > 4 || cmd_words_b[3] < 0) {
|
||||||
write_char('S');
|
goto err;
|
||||||
goto err_write;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print_string("REGSET: ");
|
||||||
|
print_short(reg);
|
||||||
|
print_string(": VAL: ");
|
||||||
|
|
||||||
// zero sfp data
|
// zero sfp data
|
||||||
sfr_set_zero();
|
sfr_set_zero();
|
||||||
|
|
||||||
@@ -363,16 +372,12 @@ void parse_reg(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
reg_write_m(reg);
|
reg_write_m(reg);
|
||||||
}
|
|
||||||
print_sfr_data();
|
print_sfr_data();
|
||||||
write_char('\n');
|
write_char('\n');
|
||||||
return;
|
return;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
print_string("usage: reg r <hexvalue> like reg r 00BB");
|
print_string("usage: regset <hexvalue> <hexvalue>\n\tlike regset 0b abcd1234.");
|
||||||
return;
|
|
||||||
err_write:
|
|
||||||
print_string("usage: reg w <hexvalue> <hexvalue> like reg e 00BB 00112233");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -580,8 +585,11 @@ void cmd_parser(void) __banked
|
|||||||
if (cmd_compare(0, "gpio")) {
|
if (cmd_compare(0, "gpio")) {
|
||||||
print_gpio_status();
|
print_gpio_status();
|
||||||
}
|
}
|
||||||
if (cmd_compare(0, "reg")) {
|
if (cmd_compare(0, "regget")) {
|
||||||
parse_reg();
|
parse_regget();
|
||||||
|
}
|
||||||
|
if (cmd_compare(0, "regset")) {
|
||||||
|
parse_regset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -25,5 +25,5 @@ Other memory:
|
|||||||
Name Start End Size Max
|
Name Start End Size Max
|
||||||
---------------- -------- -------- -------- --------
|
---------------- -------- -------- -------- --------
|
||||||
PAGED EXT. RAM 0 256
|
PAGED EXT. RAM 0 256
|
||||||
EXTERNAL RAM 0x0001 0x1aea 6890 16777216
|
EXTERNAL RAM 0x0001 0x1ae8 6888 16777216
|
||||||
ROM/EPROM/FLASH 0x0000 0x1c72c 47034 16777216
|
ROM/EPROM/FLASH 0x0000 0x1c72d 47021 16777216
|
||||||
|
|||||||
Reference in New Issue
Block a user