// Format: 'mXX?' inline static bool console__handle__memory_read(void) { if (console__command_length == 4 && console__command[0] == 'm' && console__command[3] == '?') { uint16_t addr = byte__parse_hex(console__command + 1); uint8_t status = addr >> 8; if (status) { debug__putc('!'); } else { register uint8_t v = *((uint8_t*)addr); debug__print_byte_as_hex((uint8_t)addr); debug__putc('='); debug__print_byte_as_hex(v); } return true; }
void console_service__run(void) { while(1) { debug__putc('>'); debug__putc(13); debug__putc(10); readLine(); if (input_length == 2) { // debug__putc('>'); // debug__putc('r'); // debug__putc(13); // debug__putc(10); uint8_t addr = parseByte(input_buffer); register uint8_t v; v = mcp251x__read(addr); // debug__putc('<'); // debug__putc('r'); // debug__putc(13); // debug__putc(10); debug__print_byte_as_hex(addr); debug__putc('='); debug__print_byte_as_hex(v); } else if (input_length == 5 && input_buffer[2] == '=') { // debug__putc('>'); // debug__putc('w'); // debug__putc(13); // debug__putc(10); register uint8_t addr = parseByte(input_buffer); register uint8_t value = parseByte(input_buffer + 3); mcp251x__write(addr, value); // debug__putc('<'); // debug__putc('w'); // debug__putc(13); // debug__putc(10); } else if (input_length == 1 && input_buffer[0] == 'r') { // debug__putc('>'); // debug__putc('!'); // debug__putc(13); // debug__putc(10); mcp251x__reset(); // debug__putc('<'); // debug__putc('!'); // debug__putc(13); // debug__putc(10); } debug__putc(13); debug__putc(10); } }