Implement HELP command

This commit is contained in:
Lexi / Zoe 2021-04-16 21:46:41 +02:00
parent d29465b2dd
commit 5d5e452136
Signed by: binaryDiv
GPG Key ID: F8D4956E224DA232
3 changed files with 26 additions and 2 deletions

View File

@ -23,6 +23,10 @@ void executeCommand(CommandLine cmdLine) {
// INIT command: Initializes connection. // INIT command: Initializes connection.
commandInit(cmdLine.arg); commandInit(cmdLine.arg);
} }
else if (strcmp(cmdLine.command, "HELP") == 0) {
// HELP command: Print a list of supported commands.
commandHelp(cmdLine.arg);
}
else if (strcmp(cmdLine.command, "READ") == 0) { else if (strcmp(cmdLine.command, "READ") == 0) {
// READ command: Takes a hex address range (or single address) as argument, // READ command: Takes a hex address range (or single address) as argument,
// reads data and returns it in hexadecimal ASCII format. // reads data and returns it in hexadecimal ASCII format.
@ -32,6 +36,10 @@ void executeCommand(CommandLine cmdLine) {
// WRITE command: Takes a hex address as argument, reads data from UART and writes it to the EEPROM. // WRITE command: Takes a hex address as argument, reads data from UART and writes it to the EEPROM.
commandRead(cmdLine.arg); commandRead(cmdLine.arg);
} }
else if (strcmp(cmdLine.command, "ERASE") == 0) {
// ERASE command: Takes a hex address range as argument and writes 0x00 bytes to the specified range.
commandRead(cmdLine.arg);
}
else if (strcmp(cmdLine.command, "TESTREAD") == 0) { else if (strcmp(cmdLine.command, "TESTREAD") == 0) {
// TESTREAD command: for testing purposes, reads a few bytes and returns them in a human readable format. // TESTREAD command: for testing purposes, reads a few bytes and returns them in a human readable format.
commandTestRead(); commandTestRead();
@ -68,6 +76,21 @@ void commandInit(char* arg) {
} }
} }
void commandHelp() {
uartPutLine("HELP - Supported commands:");
uartPutLine("HELP - HELP");
uartPutLine("HELP - INIT [BINARY|ASCII]");
uartPutLine("HELP - READ 0000:0FFF");
uartPutLine("HELP - WRITE 0000");
uartPutLine("HELP - ERASE 0000:0FFF");
// TODO remove those
uartPutLine("HELP - TESTREAD (only for testing)");
uartPutLine("HELP - TESTWRITE (only for testing)");
uartPutLine("OK");
}
void commandRead(char* arg) { void commandRead(char* arg) {
if (arg == NULL) { if (arg == NULL) {
uartPutLine("ERR READ needs an address or address range"); uartPutLine("ERR READ needs an address or address range");

View File

@ -6,7 +6,8 @@
void executeCommand(CommandLine cmdLine); void executeCommand(CommandLine cmdLine);
void commandInit(); void commandHelp();
void commandInit(char* arg);
void commandRead(char* arg); void commandRead(char* arg);
void commandWrite(char* arg); void commandWrite(char* arg);
void commandErase(); void commandErase();

View File

@ -15,7 +15,7 @@ int main(void) {
_delay_ms(100); _delay_ms(100);
// Write initial message via UART // Write initial message via UART
uartPutLine("INFO -- EEPROM programmer by binaryDiv"); uartPutLine("INFO - EEPROM programmer by binaryDiv");
while(1) { while(1) {
// Run main loop endlessly // Run main loop endlessly