Merge pull request #206 from vDorst/fix_cmd_parsing

Fix cmd parsing
This commit is contained in:
logicog
2026-04-21 21:24:22 +02:00
committed by GitHub
3 changed files with 6 additions and 2 deletions
+2
View File
@@ -200,6 +200,7 @@ uint8_t atoi_byte(__xdata uint8_t *out, uint8_t idx)
uint8_t atoi_short(__xdata uint16_t *vlan, uint8_t idx)
{
uint8_t err = 1;
*vlan = 0;
while (isnumber(cmd_buffer[idx])) {
err = 0;
@@ -1190,6 +1191,7 @@ err:
// Parse command into words
// cmd_words_len contains the number of words found.
// cmd_words_b[] contains only start of a word offset.
// Returns the parsing status via `err_status`-variable.
void cmd_tokenize(void) __banked
{
#ifdef DEBUG
+1 -1
View File
@@ -8,7 +8,7 @@
extern __xdata uint8_t cmd_buffer[CMD_BUF_SIZE];
extern __xdata uint8_t cmd_available;
uint8_t cmd_tokenize(void) __banked;
void cmd_tokenize(void) __banked;
void cmd_parser(void) __banked;
void execute_config(void) __banked;
void print_sw_version(void) __banked;
+3 -1
View File
@@ -26,6 +26,7 @@
extern __code const struct machine machine;
extern __xdata uint32_t flash_size;
extern __xdata uint8_t err_status;
extern __xdata uint16_t crc_value;
__xdata struct machine_runtime machine_detected;
@@ -1307,7 +1308,8 @@ void idle(void)
// Check whether a command is waiting in the cmd_buffer and execute
if (cmd_available) {
cmd_available = 0;
if (!cmd_tokenize())
cmd_tokenize();
if (err_status == ERR_OK)
cmd_parser();
print_string("\n> ");
}