mirror of
https://github.com/halleysfifthinc/AVCLAN-Mockingboard.git
synced 2026-08-06 17:03:17 +00:00
Add some compiler warnings and fix revealed bugs
This commit is contained in:
@@ -6,4 +6,5 @@ AllowShortBlocksOnASingleLine: Empty
|
||||
IndentCaseLabels: true
|
||||
IndentPPDirectives: BeforeHash
|
||||
AlignConsecutiveMacros: Consecutive
|
||||
AllowShortCaseLabelsOnASingleLine: true
|
||||
...
|
||||
|
||||
+3
-3
@@ -97,9 +97,9 @@ endif()
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Os")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -save-temps -g -gdwarf-3 -gstrict-dwarf")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O0 -save-temps -g -gdwarf-3 -gstrict-dwarf")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-Wall -Wswitch-enum -Werror -Os")
|
||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wswitch-enum -Werror -O2 -save-temps -g -gdwarf-3 -gstrict-dwarf")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wswitch-enum -Werror -O0 -save-temps -g -gdwarf-3 -gstrict-dwarf")
|
||||
|
||||
# Set startup time to 8 ms (0x4)
|
||||
set(AVR_UPLOADTOOL_BASE_OPTIONS ${AVR_UPLOADTOOL_BASE_OPTIONS} -U syscfg1:w:0x4:m)
|
||||
|
||||
+22
-13
@@ -360,7 +360,7 @@ void AVCLAN_sendbit(avclan_bit_t bit) {
|
||||
zero_length = AVCLAN_STARTBIT_LOGIC_0;
|
||||
one_length = AVCLAN_STARTBIT_LOGIC_1;
|
||||
break;
|
||||
default:
|
||||
default: __builtin_unreachable();
|
||||
}
|
||||
set_AVC_logic_for(0, zero_length);
|
||||
set_AVC_logic_for(1, one_length);
|
||||
@@ -542,7 +542,8 @@ uint8_t AVCLAN_readbyte(uint8_t *byte) {
|
||||
}
|
||||
|
||||
uint8_t AVCLAN_readframe() {
|
||||
typedef enum : uint8_t {
|
||||
struct errtype {
|
||||
enum : uint8_t {
|
||||
STARTBIT_TIMEOUT = 0x01,
|
||||
STARTBIT_LENGTH,
|
||||
BAD_CONTROLLER_PARITY,
|
||||
@@ -551,9 +552,7 @@ uint8_t AVCLAN_readframe() {
|
||||
BAD_LENGTH_PARITY,
|
||||
BAD_LENGTH_RANGE,
|
||||
BAD_DATA_PARITY
|
||||
} errno_t;
|
||||
struct errtype {
|
||||
errno_t errno;
|
||||
} errno;
|
||||
union {
|
||||
uint8_t val; // BAD_LENGTH_RANGE: the out-of-range length value
|
||||
struct {
|
||||
@@ -729,20 +728,19 @@ uint8_t AVCLAN_readframe() {
|
||||
}
|
||||
|
||||
uint8_t AVCLAN_sendframe(const AVCLAN_frame_t *frame) {
|
||||
typedef enum : uint8_t {
|
||||
struct errtype {
|
||||
enum : uint8_t {
|
||||
MUTED = 0x01,
|
||||
BUSY,
|
||||
NAK_ADDRESS = 0x10,
|
||||
NAK_CONTROL,
|
||||
NAK_MESSAGE_LENGTH,
|
||||
NAK_DATA
|
||||
} errno_t;
|
||||
struct errtype {
|
||||
errno_t errno;
|
||||
} errno;
|
||||
uint8_t val;
|
||||
} err = {0};
|
||||
|
||||
if (err.errno = AVCLAN_ismuted())
|
||||
if ((err.errno = AVCLAN_ismuted()))
|
||||
goto handle_err;
|
||||
|
||||
stopEvent();
|
||||
@@ -829,9 +827,13 @@ uint8_t AVCLAN_sendframe(const AVCLAN_frame_t *frame) {
|
||||
switch (err.errno) {
|
||||
case MUTED: break;
|
||||
case BUSY: RS232_Print(": Busy bus\n"); break;
|
||||
default:
|
||||
case NAK_ADDRESS:
|
||||
case NAK_CONTROL:
|
||||
case NAK_MESSAGE_LENGTH:
|
||||
case NAK_DATA:
|
||||
RS232_Print("NAK: ");
|
||||
switch (err.errno) {
|
||||
case NAK_ADDRESS: RS232_Print("address\n"); break;
|
||||
case NAK_CONTROL: RS232_Print("Control\n"); break;
|
||||
case NAK_MESSAGE_LENGTH: RS232_Print("Message length\n"); break;
|
||||
case NAK_DATA:
|
||||
@@ -839,8 +841,12 @@ uint8_t AVCLAN_sendframe(const AVCLAN_frame_t *frame) {
|
||||
RS232_PrintDec(err.val);
|
||||
RS232_Print("]\n");
|
||||
break;
|
||||
case MUTED: __builtin_unreachable();
|
||||
case BUSY: __builtin_unreachable();
|
||||
default:
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
} else {
|
||||
startEvent();
|
||||
@@ -1000,6 +1006,7 @@ uint8_t AVCLAN_handleframe(const AVCLAN_frame_t *frame) {
|
||||
resp->data = (uint8_t *)&function_change_resp;
|
||||
respond = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
@@ -1026,14 +1033,14 @@ uint8_t AVCLAN_handleframe(const AVCLAN_frame_t *frame) {
|
||||
goto CMD_SW_RESPONSE;
|
||||
case Track_Seek_Up:
|
||||
cd_status.state = cd_SEEKING_TRACK;
|
||||
*cd_Track++;
|
||||
(*cd_Track)++;
|
||||
*cd_Time_Min = 0xff;
|
||||
*cd_Time_Sec = 0x7f;
|
||||
cd_status.flags2 = 0xc0;
|
||||
goto CMD_SW_RESPONSE;
|
||||
case Track_Seek_Down:
|
||||
cd_status.state = cd_SEEKING_TRACK;
|
||||
*cd_Track--;
|
||||
(*cd_Track)--;
|
||||
*cd_Time_Min = 0xff;
|
||||
*cd_Time_Sec = 0x7f;
|
||||
cd_status.flags2 = 0xc0;
|
||||
@@ -1045,6 +1052,7 @@ uint8_t AVCLAN_handleframe(const AVCLAN_frame_t *frame) {
|
||||
resp->peripheral_addr = frame->controller_addr;
|
||||
respond = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
@@ -1076,6 +1084,7 @@ uint8_t AVCLAN_handleframe(const AVCLAN_frame_t *frame) {
|
||||
resp->peripheral_addr = frame->controller_addr;
|
||||
respond = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ uint8_t readBinary;
|
||||
uint8_t muteBus;
|
||||
uint8_t readkey;
|
||||
|
||||
const char const *offon[] = {"OFF", "ON"};
|
||||
const char *const offon[] = {"OFF", "ON"};
|
||||
|
||||
void Setup();
|
||||
void general_GPIO_init();
|
||||
|
||||
Reference in New Issue
Block a user