diff --git a/Makefile b/Makefile index 09d22e7..0c4fc96 100644 --- a/Makefile +++ b/Makefile @@ -226,7 +226,9 @@ endif # catch any and all warnings # better to bust than add new bugs -CFLAGS += -Wextra +#CFLAGS += -Wall +#CFLAGS += -Wextra +CFLAGS += -Wpedantic CFLAGS += -DPRINTF_INCLUDE_CONFIG_H CFLAGS += -DGIT_HASH=\"$(GIT_HASH)\" diff --git a/app/main.c b/app/main.c index f90f078..298b474 100644 --- a/app/main.c +++ b/app/main.c @@ -676,7 +676,10 @@ static void MAIN_Key_STAR(bool key_pressed, bool key_held) #endif { // start entering a DTMF string - memmove(g_dtmf_input_box, g_dtmf_string, MIN(sizeof(g_dtmf_input_box), sizeof(g_dtmf_string) - 1)); + memmove( + g_dtmf_input_box, + g_dtmf_string, + (sizeof(g_dtmf_input_box) <= (sizeof(g_dtmf_string) - 1)) ? sizeof(g_dtmf_input_box) : sizeof(g_dtmf_string) - 1); g_dtmf_input_box_index = 0; g_dtmf_input_mode = true; diff --git a/app/uart.c b/app/uart.c index e46e0a6..d8ad225 100644 --- a/app/uart.c +++ b/app/uart.c @@ -46,17 +46,17 @@ typedef struct { uint16_t ID; uint16_t Size; -} Header_t; +} __attribute__((packed)) Header_t; typedef struct { uint8_t Padding[2]; uint16_t ID; -} Footer_t; +} __attribute__((packed)) Footer_t; typedef struct { Header_t Header; uint32_t Timestamp; -} CMD_0514_t; +} __attribute__((packed)) CMD_0514_t; typedef struct { Header_t Header; @@ -66,8 +66,8 @@ typedef struct { bool g_is_in_lock_screen; uint8_t Padding[2]; uint32_t Challenge[4]; - } Data; -} REPLY_0514_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_0514_t; typedef struct { Header_t Header; @@ -75,7 +75,7 @@ typedef struct { uint8_t Size; uint8_t Padding; uint32_t Timestamp; -} CMD_051B_t; +} __attribute__((packed)) CMD_051B_t; typedef struct { Header_t Header; @@ -84,8 +84,8 @@ typedef struct { uint8_t Size; uint8_t Padding; uint8_t Data[128]; - } Data; -} REPLY_051B_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_051B_t; typedef struct { Header_t Header; @@ -93,15 +93,15 @@ typedef struct { uint8_t Size; bool bAllowPassword; uint32_t Timestamp; - uint8_t Data[0]; -} CMD_051D_t; +// uint8_t Data[0]; +} __attribute__((packed)) CMD_051D_t; typedef struct { Header_t Header; struct { uint16_t Offset; - } Data; -} REPLY_051D_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_051D_t; typedef struct { Header_t Header; @@ -109,34 +109,34 @@ typedef struct { uint16_t RSSI; uint8_t ExNoiseIndicator; uint8_t GlitchIndicator; - } Data; -} REPLY_0527_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_0527_t; typedef struct { Header_t Header; struct { uint16_t Voltage; uint16_t Current; - } Data; -} REPLY_0529_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_0529_t; typedef struct { Header_t Header; uint32_t Response[4]; -} CMD_052D_t; +} __attribute__((packed)) CMD_052D_t; typedef struct { Header_t Header; struct { bool bIsLocked; uint8_t Padding[3]; - } Data; -} REPLY_052D_t; + } __attribute__((packed)) Data; +} __attribute__((packed)) REPLY_052D_t; typedef struct { Header_t Header; uint32_t Timestamp; -} CMD_052F_t; +} __attribute__((packed)) CMD_052F_t; static const uint8_t Obfuscation[16] = { @@ -150,8 +150,8 @@ static union { Header_t Header; uint8_t Data[252]; - }; -} UART_Command; + } __attribute__((packed)); +} __attribute__((packed)) UART_Command; static uint32_t Timestamp; static uint16_t g_uart_write_index; @@ -281,9 +281,9 @@ static void CMD_051B(const uint8_t *pBuffer) static void CMD_051D(const uint8_t *pBuffer) { const CMD_051D_t *pCmd = (const CMD_051D_t *)pBuffer; - REPLY_051D_t Reply; - bool bReloadEeprom; - bool bIsLocked; + REPLY_051D_t Reply; + bool bReloadEeprom; + bool bIsLocked; if (pCmd->Timestamp != Timestamp) return; @@ -314,7 +314,7 @@ static void CMD_051D(const uint8_t *pBuffer) bReloadEeprom = true; if ((Offset < 0x0E98 || Offset >= 0x0EA0) || !g_is_in_lock_screen || pCmd->bAllowPassword) - EEPROM_WriteBuffer(Offset, &pCmd->Data[i * 8U]); + EEPROM_WriteBuffer(Offset, (uint8_t *)&pCmd + (i * 8)); // 1of11 } if (bReloadEeprom) @@ -339,22 +339,27 @@ static void CMD_0527(void) static void CMD_0529(void) { + uint16_t voltage; + uint16_t current; REPLY_0529_t Reply; Reply.Header.ID = 0x52A; Reply.Header.Size = sizeof(Reply.Data); // Original doesn't actually send current! - BOARD_ADC_GetBatteryInfo(&Reply.Data.Voltage, &Reply.Data.Current); + BOARD_ADC_GetBatteryInfo(&voltage, ¤t); + Reply.Data.Voltage = voltage; + Reply.Data.Current = current; SendReply(&Reply, sizeof(Reply)); } static void CMD_052D(const uint8_t *pBuffer) { - const CMD_052D_t *pCmd = (const CMD_052D_t *)pBuffer; - REPLY_052D_t Reply; - bool bIsLocked; + CMD_052D_t *pCmd = (CMD_052D_t *)pBuffer; + REPLY_052D_t Reply; + uint32_t response[4]; + bool bIsLocked; #ifdef ENABLE_FMRADIO g_fm_radio_count_down_500ms = fm_radio_countdown_500ms; @@ -365,11 +370,15 @@ static void CMD_052D(const uint8_t *pBuffer) bIsLocked = g_has_custom_aes_key; if (!bIsLocked) - bIsLocked = IsBadChallenge(g_custom_aes_key, g_challenge, pCmd->Response); - + { + bIsLocked = IsBadChallenge(g_custom_aes_key, g_challenge, response); + memmove(pCmd->Response, response, sizeof(pCmd->Response)); + } + if (!bIsLocked) { - bIsLocked = IsBadChallenge(g_default_aes_key, g_challenge, pCmd->Response); + bIsLocked = IsBadChallenge(g_default_aes_key, g_challenge, response); + memmove(pCmd->Response, response, sizeof(pCmd->Response)); if (bIsLocked) g_try_count++; } @@ -385,7 +394,7 @@ static void CMD_052D(const uint8_t *pBuffer) bIsLocked = true; } - g_is_locked = bIsLocked; + g_is_locked = bIsLocked; Reply.Data.bIsLocked = bIsLocked; SendReply(&Reply, sizeof(Reply)); diff --git a/bitmaps.c b/bitmaps.c index 25327cc..fbca511 100644 --- a/bitmaps.c +++ b/bitmaps.c @@ -8,387 +8,387 @@ const uint8_t BITMAP_POWERSAVE[8] = { #if 0 // "S" - 0b00000000, - 0b00100110, - 0b01001001, - 0b01001001, - 0b01001001, - 0b01001001, - 0b01001001, - 0b00110010 + __extension__ 0b00000000, + __extension__ 0b00100110, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b00110010 #else // "PS" - 0b00000000, - 0b01111111, - 0b00010001, - 0b00001110, - 0b00000000, - 0b01000110, - 0b01001001, - 0b00110001 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00010001, + __extension__ 0b00001110, + __extension__ 0b00000000, + __extension__ 0b01000110, + __extension__ 0b01001001, + __extension__ 0b00110001 #endif }; const uint8_t BITMAP_TX[8] = { // "TX" - 0b00000000, - 0b00000001, - 0b00000001, - 0b01111111, - 0b00000001, - 0b00000001, - 0b00000000, - 0b00000000 + __extension__ 0b00000000, + __extension__ 0b00000001, + __extension__ 0b00000001, + __extension__ 0b01111111, + __extension__ 0b00000001, + __extension__ 0b00000001, + __extension__ 0b00000000, + __extension__ 0b00000000 }; const uint8_t BITMAP_RX[8] = { // "RX" - 0b00000000, - 0b01111111, - 0b00001001, - 0b00011001, - 0b01100110, - 0b00000000, - 0b00000000, - 0b00000000 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00001001, + __extension__ 0b00011001, + __extension__ 0b01100110, + __extension__ 0b00000000, + __extension__ 0b00000000, + __extension__ 0b00000000 }; #ifndef ENABLE_REVERSE_BAT_SYMBOL // Quansheng way (+ pole to the left) const uint8_t BITMAP_BATTERY_LEVEL[17] = { - 0b00000000, - 0b00111110, - 0b00100010, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01111111 + __extension__ 0b00000000, + __extension__ 0b00111110, + __extension__ 0b00100010, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01111111 }; #else // reversed (+ pole to the right) const uint8_t BITMAP_BATTERY_LEVEL[17] = { - 0b00000000, - 0b01111111, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b01000001, - 0b00100010, - 0b00111110 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b00100010, + __extension__ 0b00111110 }; #endif const uint8_t BITMAP_USB_C[9] = { // USB symbol - 0b00000000, - 0b00011100, - 0b00100111, - 0b01000100, - 0b01000100, - 0b01000100, - 0b01000100, - 0b00100111, - 0b00011100 + __extension__ 0b00000000, + __extension__ 0b00011100, + __extension__ 0b00100111, + __extension__ 0b01000100, + __extension__ 0b01000100, + __extension__ 0b01000100, + __extension__ 0b01000100, + __extension__ 0b00100111, + __extension__ 0b00011100 }; const uint8_t BITMAP_KEYLOCK[6] = { // teeny padlock symbol - 0b00000000, - 0b01111100, - 0b01000110, - 0b01000101, - 0b01000110, - 0b01111100 + __extension__ 0b00000000, + __extension__ 0b01111100, + __extension__ 0b01000110, + __extension__ 0b01000101, + __extension__ 0b01000110, + __extension__ 0b01111100 }; const uint8_t BITMAP_F_KEY[6] = { // F-Key symbol - 0b00000000, - 0b01011111, - 0b01000101, - 0b01000101, - 0b01000101, - 0b01000001 + __extension__ 0b00000000, + __extension__ 0b01011111, + __extension__ 0b01000101, + __extension__ 0b01000101, + __extension__ 0b01000101, + __extension__ 0b01000001 }; #ifdef ENABLE_VOX const uint8_t BITMAP_VOX[18] = { // "VOX" - 0b00000000, - 0b00011111, - 0b00100000, - 0b01000000, - 0b00100000, - 0b00011111, - 0b00000000, - 0b00111110, - 0b01000001, - 0b01000001, - 0b01000001, - 0b00111110, - 0b00000000, - 0b01100011, - 0b00010100, - 0b00001000, - 0b00010100, - 0b01100011 + __extension__ 0b00000000, + __extension__ 0b00011111, + __extension__ 0b00100000, + __extension__ 0b01000000, + __extension__ 0b00100000, + __extension__ 0b00011111, + __extension__ 0b00000000, + __extension__ 0b00111110, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b00111110, + __extension__ 0b00000000, + __extension__ 0b01100011, + __extension__ 0b00010100, + __extension__ 0b00001000, + __extension__ 0b00010100, + __extension__ 0b01100011 }; #endif #if 0 const uint8_t BITMAP_WX[12] = { // "WX" - 0b00000000, - 0b01111111, - 0b00100000, - 0b00011000, - 0b00100000, - 0b01111111, - 0b00000000, - 0b01100011, - 0b00010100, - 0b00001000, - 0b00010100, - 0b01100011 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00100000, + __extension__ 0b00011000, + __extension__ 0b00100000, + __extension__ 0b01111111, + __extension__ 0b00000000, + __extension__ 0b01100011, + __extension__ 0b00010100, + __extension__ 0b00001000, + __extension__ 0b00010100, + __extension__ 0b01100011 }; #else // 'XB' (cross-band/cross-VFO) const uint8_t BITMAP_XB[12] = { // "XB" - 0b00000000, - 0b01100011, - 0b00010100, - 0b00001000, - 0b00010100, - 0b01100011, - 0b00000000, - 0b01111111, - 0b01001001, - 0b01001001, - 0b01001001, - 0b00110110 + __extension__ 0b00000000, + __extension__ 0b01100011, + __extension__ 0b00010100, + __extension__ 0b00001000, + __extension__ 0b00010100, + __extension__ 0b01100011, + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b00110110 }; #endif const uint8_t BITMAP_TDR1[12] = { // "DW" - 0b00000000, - 0b01111111, - 0b01000001, - 0b01000001, - 0b01000001, - 0b00111110, - 0b00000000, - 0b01111111, - 0b00100000, - 0b00011000, - 0b00100000, - 0b01111111 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b00111110, + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00100000, + __extension__ 0b00011000, + __extension__ 0b00100000, + __extension__ 0b01111111 }; const uint8_t BITMAP_TDR2[12] = { // "><" .. DW on hold - 0b00000000, - 0b00000000, - 0b00100010, - 0b00110110, - 0b00011100, - 0b00001000, - 0b00000000, - 0b00001000, - 0b00011100, - 0b00110110, - 0b00100010, - 0b00000000 + __extension__ 0b00000000, + __extension__ 0b00000000, + __extension__ 0b00100010, + __extension__ 0b00110110, + __extension__ 0b00011100, + __extension__ 0b00001000, + __extension__ 0b00000000, + __extension__ 0b00001000, + __extension__ 0b00011100, + __extension__ 0b00110110, + __extension__ 0b00100010, + __extension__ 0b00000000 }; #ifdef ENABLE_VOICE const uint8_t BITMAP_VOICE_PROMPT[9] = { - 0b00000000, - 0b00011000, - 0b00011000, - 0b00100100, - 0b00100100, - 0b01000010, - 0b01000010, - 0b11111111, - 0b00011000 + __extension__ 0b00000000, + __extension__ 0b00011000, + __extension__ 0b00011000, + __extension__ 0b00100100, + __extension__ 0b00100100, + __extension__ 0b01000010, + __extension__ 0b01000010, + __extension__ 0b11111111, + __extension__ 0b00011000 }; #endif #ifdef ENABLE_FMRADIO const uint8_t BITMAP_FM[12] = { // "FM" - 0b00000000, - 0b01111111, - 0b00001001, - 0b00001001, - 0b00001001, - 0b00000001, + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00001001, + __extension__ 0b00001001, + __extension__ 0b00001001, + __extension__ 0b00000001, - 0b00000000, - 0b01111111, - 0b00000010, - 0b00001100, - 0b00000010, - 0b01111111 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00000010, + __extension__ 0b00001100, + __extension__ 0b00000010, + __extension__ 0b01111111 }; #endif #ifdef ENABLE_NOAA const uint8_t BITMAP_NOAA[12] = { // "NS" - 0b00000000, - 0b01111111, - 0b00000100, - 0b00001000, - 0b00010000, - 0b01111111, + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b00000100, + __extension__ 0b00001000, + __extension__ 0b00010000, + __extension__ 0b01111111, - 0b00000000, - 0b01000110, - 0b01001001, - 0b01001001, - 0b01001001, - 0b00110001 + __extension__ 0b00000000, + __extension__ 0b01000110, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b01001001, + __extension__ 0b00110001 }; #endif const uint8_t BITMAP_ANTENNA[5] = { - 0b00000011, - 0b00000101, - 0b01111111, - 0b00000101, - 0b00000011 + __extension__ 0b00000011, + __extension__ 0b00000101, + __extension__ 0b01111111, + __extension__ 0b00000101, + __extension__ 0b00000011 }; const uint8_t BITMAP_ANTENNA_LEVEL1[3] = { - 0b01100000, - 0b01100000, - 0b00000000 + __extension__ 0b01100000, + __extension__ 0b01100000, + __extension__ 0b00000000 }; const uint8_t BITMAP_ANTENNA_LEVEL2[3] = { - 0b01110000, - 0b01110000, - 0b00000000 + __extension__ 0b01110000, + __extension__ 0b01110000, + __extension__ 0b00000000 }; const uint8_t BITMAP_ANTENNA_LEVEL3[3] = { - 0b01111000, - 0b01111000, - 0b00000000 + __extension__ 0b01111000, + __extension__ 0b01111000, + __extension__ 0b00000000 }; const uint8_t BITMAP_ANTENNA_LEVEL4[3] = { - 0b01111100, - 0b01111100, - 0b00000000 + __extension__ 0b01111100, + __extension__ 0b01111100, + __extension__ 0b00000000 }; const uint8_t BITMAP_ANTENNA_LEVEL5[3] = { - 0b01111110, - 0b01111110, - 0b00000000 + __extension__ 0b01111110, + __extension__ 0b01111110, + __extension__ 0b00000000 }; const uint8_t BITMAP_ANTENNA_LEVEL6[3] = { - 0b01111111, - 0b01111111, - 0b00000000 + __extension__ 0b01111111, + __extension__ 0b01111111, + __extension__ 0b00000000 }; const uint8_t BITMAP_MARKER[8] = { - 0b11111111, - 0b11111111, - 0b01111110, - 0b01111110, - 0b00111100, - 0b00111100, - 0b00011000, - 0b00011000 + __extension__ 0b11111111, + __extension__ 0b11111111, + __extension__ 0b01111110, + __extension__ 0b01111110, + __extension__ 0b00111100, + __extension__ 0b00111100, + __extension__ 0b00011000, + __extension__ 0b00011000 }; const uint8_t BITMAP_VFO_DEFAULT[8] = { - 0b00000000, - 0b01111111, - 0b01111111, - 0b00111110, - 0b00111110, - 0b00011100, - 0b00011100, - 0b00001000 + __extension__ 0b00000000, + __extension__ 0b01111111, + __extension__ 0b01111111, + __extension__ 0b00111110, + __extension__ 0b00111110, + __extension__ 0b00011100, + __extension__ 0b00011100, + __extension__ 0b00001000 }; const uint8_t BITMAP_VFO_NOT_DEFAULT[8] = { - 0b00000000, - 0b01000001, - 0b01000001, - 0b00100010, - 0b00100010, - 0b00010100, - 0b00010100, - 0b00001000 + __extension__ 0b00000000, + __extension__ 0b01000001, + __extension__ 0b01000001, + __extension__ 0b00100010, + __extension__ 0b00100010, + __extension__ 0b00010100, + __extension__ 0b00010100, + __extension__ 0b00001000 }; const uint8_t BITMAP_SCANLIST1[6] = { // 'I' symbol - 0b00000000, - 0b00000000, - 0b01000010, - 0b01111110, - 0b01000010, - 0b00000000 + __extension__ 0b00000000, + __extension__ 0b00000000, + __extension__ 0b01000010, + __extension__ 0b01111110, + __extension__ 0b01000010, + __extension__ 0b00000000 }; const uint8_t BITMAP_SCANLIST2[6] = { // 'II' symbol - 0b00000000, - 0b01000010, - 0b01111110, - 0b01000010, - 0b01111110, - 0b01000010 + __extension__ 0b00000000, + __extension__ 0b01000010, + __extension__ 0b01111110, + __extension__ 0b01000010, + __extension__ 0b01111110, + __extension__ 0b01000010 }; const uint8_t BITMAP_COMPAND[6] = { - 0b00000000, - 0b00111100, - 0b01000010, - 0b01000010, - 0b01000010, - 0b00100100 + __extension__ 0b00000000, + __extension__ 0b00111100, + __extension__ 0b01000010, + __extension__ 0b01000010, + __extension__ 0b01000010, + __extension__ 0b00100100 }; diff --git a/driver/bk4819.c b/driver/bk4819.c index b20a465..399025b 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -54,7 +54,7 @@ void BK4819_Init(void) BK4819_SetAGC(0); // BK4819_SetAGC(1); - BK4819_WriteRegister(BK4819_REG_19, 0b0001000001000001); // <15> MIC AGC 1 = disable 0 = enable + BK4819_WriteRegister(BK4819_REG_19, 0x1041); // 0001 0000 0100 0001 <15> MIC AGC 1 = disable 0 = enable BK4819_WriteRegister(BK4819_REG_7D, 0xE940); @@ -837,7 +837,7 @@ void BK4819_RX_TurnOn(void) // Disable TX DSP // Enable RX DSP // - BK4819_WriteRegister(BK4819_REG_30, 0b1011111111110001); // 1 0 1111 1 1 1111 0 0 0 1 + BK4819_WriteRegister(BK4819_REG_30, 0xbff1); // 1 0 1111 1 1 1111 0 0 0 1 } void BK4819_PickRXFilterPathBasedOnFrequency(uint32_t Frequency) @@ -1007,7 +1007,7 @@ void BK4819_PlayTone(uint16_t Frequency, bool bTuningGainSwitch) void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level, const bool play_speaker) { BK4819_EnterTxMute(); - + if (play_speaker) { GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); @@ -1035,7 +1035,7 @@ void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); BK4819_SetAF(BK4819_AF_MUTE); } - + BK4819_WriteRegister(BK4819_REG_70, 0x0000); BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); BK4819_ExitTxMute(); diff --git a/firmware.bin b/firmware.bin index 386073f..af87fcb 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index c45feaf..6950ff7 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/misc.h b/misc.h index 09881ed..9c07516 100644 --- a/misc.h +++ b/misc.h @@ -25,11 +25,11 @@ #endif #ifndef MAX - #define MAX(a, b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; }) +// #define MAX(a, b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a > _b ? _a : _b; }) #endif #ifndef MIN - #define MIN(a, b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) +// #define MIN(a, b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) #endif //#define IS_USER_CHANNEL(x) ((x) >= USER_CHANNEL_FIRST && (x) <= USER_CHANNEL_LAST) diff --git a/ui/battery.c b/ui/battery.c index 70fd8c4..8233819 100644 --- a/ui/battery.c +++ b/ui/battery.c @@ -40,11 +40,11 @@ void UI_DrawBattery(uint8_t *bitmap, const unsigned int level, const unsigned in for (i = 0; i < bars; i++) { #ifdef ENABLE_REVERSE_BAT_SYMBOL - bitmap[3 + (i * 3) + 0] = 0b01011101; - bitmap[3 + (i * 3) + 1] = 0b01011101; + bitmap[3 + (i * 3) + 0] = __extension__ 0b01011101; + bitmap[3 + (i * 3) + 1] = __extension__ 0b01011101; #else - bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 0] = 0b01011101; - bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 1] = 0b01011101; + bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 0] = __extension__ 0b01011101; + bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 1] = __extension__ 0b01011101; #endif } }