Compare commits

..

No commits in common. "10111979a869405591c1082d6e64113a305491d9" and "1e644b9a5e7580a9991aca16f118babe1863eaaf" have entirely different histories.

5 changed files with 16 additions and 29 deletions

View File

@ -36,29 +36,29 @@ void executeCommand(CommandLine cmdLine) {
} }
else { else {
// unknown command: return error message // unknown command: return error message
uartPutLine("ERR invalid command"); uartPutString("ERR invalid command\r\n");
} }
} }
void commandInit() { void commandInit() {
// TODO init... or something? // TODO init... or something?
uartPutLine("OK"); uartPutString("OK\n");
} }
void commandRead(char* arg) { void commandRead(char* arg) {
if (arg == NULL) { if (arg == NULL) {
uartPutLine("ERR READ needs an address or address range"); uartPutString("ERR READ needs an address or address range\r\n");
return; return;
} }
// Parse address(es) // Parse address(es)
AddressRange range = parseAddressRange(arg); AddressRange range = parseAddressRange(arg);
if (!range.isValid) { if (!range.isValid) {
uartPutLine("ERR invalid address format"); uartPutString("ERR invalid address format\r\n");
return; return;
} }
uartPutLine("OK"); uartPutString("OK\n");
uint8_t byteBuffer[DATA_BLOCK_SIZE]; uint8_t byteBuffer[DATA_BLOCK_SIZE];
DataBuffer buffer = { DataBuffer buffer = {
@ -83,30 +83,30 @@ void commandRead(char* arg) {
uartPutString(outBuffer); uartPutString(outBuffer);
} }
uartPutLine(NULL); uartPutChar('\n');
} while (buffer.bytes > 0); } while (buffer.bytes > 0);
} }
void commandWrite(char* arg) { void commandWrite(char* arg) {
if (arg == NULL) { if (arg == NULL) {
uartPutLine("ERR WRITE needs a start address"); uartPutString("ERR WRITE needs a start address\r\n");
return; return;
} }
// Parse address // Parse address
AddressRange range = parseSingleAddress(arg); AddressRange range = parseSingleAddress(arg);
if (!range.isValid) { if (!range.isValid) {
uartPutLine("ERR invalid address format"); uartPutString("ERR invalid address format\r\n");
return; return;
} }
// TODO read data from input and write to EEPROM // TODO read data from input and write to EEPROM
uartPutLine("ERR not implemented"); uartPutString("ERR not implemented\n");
} }
void commandErase() { void commandErase() {
// TODO // TODO
uartPutLine("ERR not implemented"); uartPutString("ERR not implemented\n");
} }
// 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.
@ -128,9 +128,7 @@ void commandTestRead() {
uartPutChar(byte); uartPutChar(byte);
uartPutString(" (0x"); uartPutString(" (0x");
uartPutString(outBuffer); uartPutString(outBuffer);
uartPutString(")"); uartPutString(")\r\n");
uartPutLine(NULL);
} }
} }
@ -156,5 +154,5 @@ void commandTestWrite(char* arg) {
// TODO necessary? // TODO necessary?
_delay_ms(100); _delay_ms(100);
uartPutLine("TESTWRITE success"); uartPutString("TESTWRITE success\r\n");
} }

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"); uartPutString("INFO -- EEPROM programmer by binaryDiv\r\n");
while(1) { while(1) {
// Run main loop endlessly // Run main loop endlessly

View File

@ -28,7 +28,7 @@ CommandLine readNextCommand(char* buffer, uint8_t bufferLength) {
if (readChars >= bufferLength - 1) { if (readChars >= bufferLength - 1) {
// Reading was aborted after bufferLength-1 characters to prevent buffer overflow. // Reading was aborted after bufferLength-1 characters to prevent buffer overflow.
uartPutLine("ERR buffer overflow, discarding line"); uartPutString("ERR buffer overflow, discarding line\r\n");
// Discard everything until we read an actual end of line // Discard everything until we read an actual end of line
for (unsigned char c = 0; c != '\n' && c != '\r'; c = uartGetChar()); for (unsigned char c = 0; c != '\n' && c != '\r'; c = uartGetChar());
@ -113,7 +113,7 @@ AddressRange parseAddressRange(char* addressStr) {
AddressRange range = parseSingleAddress(addressStr); AddressRange range = parseSingleAddress(addressStr);
if (range.isValid && len == 9) { if (range.isValid && len == 9) {
if (!parseSingleAddressTo(addressStr + 5, &range.to)) { if (!parseSingleAddressTo(addressStr + 4, &range.to)) {
return (AddressRange) {false, 0, 0}; return (AddressRange) {false, 0, 0};
} }
} }

View File

@ -46,14 +46,6 @@ void uartPutString(char* data) {
} }
} }
// Transmit a string followed by a line break
void uartPutLine(char* data) {
if (data) {
uartPutString(data);
}
uartPutChar('\n');
}
// Receive a single character (blocking) // Receive a single character (blocking)
unsigned char uartGetChar() { unsigned char uartGetChar() {
// Block until a character has been received // Block until a character has been received

View File

@ -13,9 +13,6 @@ void uartPutChar(unsigned char data);
// Transmit a string // Transmit a string
void uartPutString(char* data); void uartPutString(char* data);
// Transmit a string followed by a line break
void uartPutLine(char* data);
// Read a single character (blocking) // Read a single character (blocking)
unsigned char uartGetChar(); unsigned char uartGetChar();