0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00

Fix some warnings, made all the serial/uart comms packet structure packed, otherwise the compiler can totally mess up ones day there !

This commit is contained in:
OneOfEleven 2023-10-10 12:44:10 +01:00
parent b19be17f01
commit 774e34bf43
9 changed files with 311 additions and 297 deletions

View File

@ -226,7 +226,9 @@ endif
# catch any and all warnings # catch any and all warnings
# better to bust than add new bugs # better to bust than add new bugs
CFLAGS += -Wextra #CFLAGS += -Wall
#CFLAGS += -Wextra
CFLAGS += -Wpedantic
CFLAGS += -DPRINTF_INCLUDE_CONFIG_H CFLAGS += -DPRINTF_INCLUDE_CONFIG_H
CFLAGS += -DGIT_HASH=\"$(GIT_HASH)\" CFLAGS += -DGIT_HASH=\"$(GIT_HASH)\"

View File

@ -676,7 +676,10 @@ static void MAIN_Key_STAR(bool key_pressed, bool key_held)
#endif #endif
{ // start entering a DTMF string { // 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_box_index = 0;
g_dtmf_input_mode = true; g_dtmf_input_mode = true;

View File

@ -46,17 +46,17 @@
typedef struct { typedef struct {
uint16_t ID; uint16_t ID;
uint16_t Size; uint16_t Size;
} Header_t; } __attribute__((packed)) Header_t;
typedef struct { typedef struct {
uint8_t Padding[2]; uint8_t Padding[2];
uint16_t ID; uint16_t ID;
} Footer_t; } __attribute__((packed)) Footer_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
uint32_t Timestamp; uint32_t Timestamp;
} CMD_0514_t; } __attribute__((packed)) CMD_0514_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
@ -66,8 +66,8 @@ typedef struct {
bool g_is_in_lock_screen; bool g_is_in_lock_screen;
uint8_t Padding[2]; uint8_t Padding[2];
uint32_t Challenge[4]; uint32_t Challenge[4];
} Data; } __attribute__((packed)) Data;
} REPLY_0514_t; } __attribute__((packed)) REPLY_0514_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
@ -75,7 +75,7 @@ typedef struct {
uint8_t Size; uint8_t Size;
uint8_t Padding; uint8_t Padding;
uint32_t Timestamp; uint32_t Timestamp;
} CMD_051B_t; } __attribute__((packed)) CMD_051B_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
@ -84,8 +84,8 @@ typedef struct {
uint8_t Size; uint8_t Size;
uint8_t Padding; uint8_t Padding;
uint8_t Data[128]; uint8_t Data[128];
} Data; } __attribute__((packed)) Data;
} REPLY_051B_t; } __attribute__((packed)) REPLY_051B_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
@ -93,15 +93,15 @@ typedef struct {
uint8_t Size; uint8_t Size;
bool bAllowPassword; bool bAllowPassword;
uint32_t Timestamp; uint32_t Timestamp;
uint8_t Data[0]; // uint8_t Data[0];
} CMD_051D_t; } __attribute__((packed)) CMD_051D_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
struct { struct {
uint16_t Offset; uint16_t Offset;
} Data; } __attribute__((packed)) Data;
} REPLY_051D_t; } __attribute__((packed)) REPLY_051D_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
@ -109,34 +109,34 @@ typedef struct {
uint16_t RSSI; uint16_t RSSI;
uint8_t ExNoiseIndicator; uint8_t ExNoiseIndicator;
uint8_t GlitchIndicator; uint8_t GlitchIndicator;
} Data; } __attribute__((packed)) Data;
} REPLY_0527_t; } __attribute__((packed)) REPLY_0527_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
struct { struct {
uint16_t Voltage; uint16_t Voltage;
uint16_t Current; uint16_t Current;
} Data; } __attribute__((packed)) Data;
} REPLY_0529_t; } __attribute__((packed)) REPLY_0529_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
uint32_t Response[4]; uint32_t Response[4];
} CMD_052D_t; } __attribute__((packed)) CMD_052D_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
struct { struct {
bool bIsLocked; bool bIsLocked;
uint8_t Padding[3]; uint8_t Padding[3];
} Data; } __attribute__((packed)) Data;
} REPLY_052D_t; } __attribute__((packed)) REPLY_052D_t;
typedef struct { typedef struct {
Header_t Header; Header_t Header;
uint32_t Timestamp; uint32_t Timestamp;
} CMD_052F_t; } __attribute__((packed)) CMD_052F_t;
static const uint8_t Obfuscation[16] = static const uint8_t Obfuscation[16] =
{ {
@ -150,8 +150,8 @@ static union
{ {
Header_t Header; Header_t Header;
uint8_t Data[252]; uint8_t Data[252];
}; } __attribute__((packed));
} UART_Command; } __attribute__((packed)) UART_Command;
static uint32_t Timestamp; static uint32_t Timestamp;
static uint16_t g_uart_write_index; 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) static void CMD_051D(const uint8_t *pBuffer)
{ {
const CMD_051D_t *pCmd = (const CMD_051D_t *)pBuffer; const CMD_051D_t *pCmd = (const CMD_051D_t *)pBuffer;
REPLY_051D_t Reply; REPLY_051D_t Reply;
bool bReloadEeprom; bool bReloadEeprom;
bool bIsLocked; bool bIsLocked;
if (pCmd->Timestamp != Timestamp) if (pCmd->Timestamp != Timestamp)
return; return;
@ -314,7 +314,7 @@ static void CMD_051D(const uint8_t *pBuffer)
bReloadEeprom = true; bReloadEeprom = true;
if ((Offset < 0x0E98 || Offset >= 0x0EA0) || !g_is_in_lock_screen || pCmd->bAllowPassword) 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) if (bReloadEeprom)
@ -339,22 +339,27 @@ static void CMD_0527(void)
static void CMD_0529(void) static void CMD_0529(void)
{ {
uint16_t voltage;
uint16_t current;
REPLY_0529_t Reply; REPLY_0529_t Reply;
Reply.Header.ID = 0x52A; Reply.Header.ID = 0x52A;
Reply.Header.Size = sizeof(Reply.Data); Reply.Header.Size = sizeof(Reply.Data);
// Original doesn't actually send current! // Original doesn't actually send current!
BOARD_ADC_GetBatteryInfo(&Reply.Data.Voltage, &Reply.Data.Current); BOARD_ADC_GetBatteryInfo(&voltage, &current);
Reply.Data.Voltage = voltage;
Reply.Data.Current = current;
SendReply(&Reply, sizeof(Reply)); SendReply(&Reply, sizeof(Reply));
} }
static void CMD_052D(const uint8_t *pBuffer) static void CMD_052D(const uint8_t *pBuffer)
{ {
const CMD_052D_t *pCmd = (const CMD_052D_t *)pBuffer; CMD_052D_t *pCmd = (CMD_052D_t *)pBuffer;
REPLY_052D_t Reply; REPLY_052D_t Reply;
bool bIsLocked; uint32_t response[4];
bool bIsLocked;
#ifdef ENABLE_FMRADIO #ifdef ENABLE_FMRADIO
g_fm_radio_count_down_500ms = fm_radio_countdown_500ms; 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; bIsLocked = g_has_custom_aes_key;
if (!bIsLocked) 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) 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) if (bIsLocked)
g_try_count++; g_try_count++;
} }
@ -385,7 +394,7 @@ static void CMD_052D(const uint8_t *pBuffer)
bIsLocked = true; bIsLocked = true;
} }
g_is_locked = bIsLocked; g_is_locked = bIsLocked;
Reply.Data.bIsLocked = bIsLocked; Reply.Data.bIsLocked = bIsLocked;
SendReply(&Reply, sizeof(Reply)); SendReply(&Reply, sizeof(Reply));

502
bitmaps.c
View File

@ -8,387 +8,387 @@ const uint8_t BITMAP_POWERSAVE[8] =
{ {
#if 0 #if 0
// "S" // "S"
0b00000000, __extension__ 0b00000000,
0b00100110, __extension__ 0b00100110,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b00110010 __extension__ 0b00110010
#else #else
// "PS" // "PS"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00010001, __extension__ 0b00010001,
0b00001110, __extension__ 0b00001110,
0b00000000, __extension__ 0b00000000,
0b01000110, __extension__ 0b01000110,
0b01001001, __extension__ 0b01001001,
0b00110001 __extension__ 0b00110001
#endif #endif
}; };
const uint8_t BITMAP_TX[8] = const uint8_t BITMAP_TX[8] =
{ // "TX" { // "TX"
0b00000000, __extension__ 0b00000000,
0b00000001, __extension__ 0b00000001,
0b00000001, __extension__ 0b00000001,
0b01111111, __extension__ 0b01111111,
0b00000001, __extension__ 0b00000001,
0b00000001, __extension__ 0b00000001,
0b00000000, __extension__ 0b00000000,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_RX[8] = const uint8_t BITMAP_RX[8] =
{ // "RX" { // "RX"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00001001, __extension__ 0b00001001,
0b00011001, __extension__ 0b00011001,
0b01100110, __extension__ 0b01100110,
0b00000000, __extension__ 0b00000000,
0b00000000, __extension__ 0b00000000,
0b00000000 __extension__ 0b00000000
}; };
#ifndef ENABLE_REVERSE_BAT_SYMBOL #ifndef ENABLE_REVERSE_BAT_SYMBOL
// Quansheng way (+ pole to the left) // Quansheng way (+ pole to the left)
const uint8_t BITMAP_BATTERY_LEVEL[17] = const uint8_t BITMAP_BATTERY_LEVEL[17] =
{ {
0b00000000, __extension__ 0b00000000,
0b00111110, __extension__ 0b00111110,
0b00100010, __extension__ 0b00100010,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01111111 __extension__ 0b01111111
}; };
#else #else
// reversed (+ pole to the right) // reversed (+ pole to the right)
const uint8_t BITMAP_BATTERY_LEVEL[17] = const uint8_t BITMAP_BATTERY_LEVEL[17] =
{ {
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b00100010, __extension__ 0b00100010,
0b00111110 __extension__ 0b00111110
}; };
#endif #endif
const uint8_t BITMAP_USB_C[9] = const uint8_t BITMAP_USB_C[9] =
{ // USB symbol { // USB symbol
0b00000000, __extension__ 0b00000000,
0b00011100, __extension__ 0b00011100,
0b00100111, __extension__ 0b00100111,
0b01000100, __extension__ 0b01000100,
0b01000100, __extension__ 0b01000100,
0b01000100, __extension__ 0b01000100,
0b01000100, __extension__ 0b01000100,
0b00100111, __extension__ 0b00100111,
0b00011100 __extension__ 0b00011100
}; };
const uint8_t BITMAP_KEYLOCK[6] = const uint8_t BITMAP_KEYLOCK[6] =
{ // teeny padlock symbol { // teeny padlock symbol
0b00000000, __extension__ 0b00000000,
0b01111100, __extension__ 0b01111100,
0b01000110, __extension__ 0b01000110,
0b01000101, __extension__ 0b01000101,
0b01000110, __extension__ 0b01000110,
0b01111100 __extension__ 0b01111100
}; };
const uint8_t BITMAP_F_KEY[6] = const uint8_t BITMAP_F_KEY[6] =
{ // F-Key symbol { // F-Key symbol
0b00000000, __extension__ 0b00000000,
0b01011111, __extension__ 0b01011111,
0b01000101, __extension__ 0b01000101,
0b01000101, __extension__ 0b01000101,
0b01000101, __extension__ 0b01000101,
0b01000001 __extension__ 0b01000001
}; };
#ifdef ENABLE_VOX #ifdef ENABLE_VOX
const uint8_t BITMAP_VOX[18] = const uint8_t BITMAP_VOX[18] =
{ // "VOX" { // "VOX"
0b00000000, __extension__ 0b00000000,
0b00011111, __extension__ 0b00011111,
0b00100000, __extension__ 0b00100000,
0b01000000, __extension__ 0b01000000,
0b00100000, __extension__ 0b00100000,
0b00011111, __extension__ 0b00011111,
0b00000000, __extension__ 0b00000000,
0b00111110, __extension__ 0b00111110,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b00111110, __extension__ 0b00111110,
0b00000000, __extension__ 0b00000000,
0b01100011, __extension__ 0b01100011,
0b00010100, __extension__ 0b00010100,
0b00001000, __extension__ 0b00001000,
0b00010100, __extension__ 0b00010100,
0b01100011 __extension__ 0b01100011
}; };
#endif #endif
#if 0 #if 0
const uint8_t BITMAP_WX[12] = const uint8_t BITMAP_WX[12] =
{ // "WX" { // "WX"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00100000, __extension__ 0b00100000,
0b00011000, __extension__ 0b00011000,
0b00100000, __extension__ 0b00100000,
0b01111111, __extension__ 0b01111111,
0b00000000, __extension__ 0b00000000,
0b01100011, __extension__ 0b01100011,
0b00010100, __extension__ 0b00010100,
0b00001000, __extension__ 0b00001000,
0b00010100, __extension__ 0b00010100,
0b01100011 __extension__ 0b01100011
}; };
#else #else
// 'XB' (cross-band/cross-VFO) // 'XB' (cross-band/cross-VFO)
const uint8_t BITMAP_XB[12] = const uint8_t BITMAP_XB[12] =
{ // "XB" { // "XB"
0b00000000, __extension__ 0b00000000,
0b01100011, __extension__ 0b01100011,
0b00010100, __extension__ 0b00010100,
0b00001000, __extension__ 0b00001000,
0b00010100, __extension__ 0b00010100,
0b01100011, __extension__ 0b01100011,
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b00110110 __extension__ 0b00110110
}; };
#endif #endif
const uint8_t BITMAP_TDR1[12] = const uint8_t BITMAP_TDR1[12] =
{ // "DW" { // "DW"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b00111110, __extension__ 0b00111110,
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00100000, __extension__ 0b00100000,
0b00011000, __extension__ 0b00011000,
0b00100000, __extension__ 0b00100000,
0b01111111 __extension__ 0b01111111
}; };
const uint8_t BITMAP_TDR2[12] = const uint8_t BITMAP_TDR2[12] =
{ // "><" .. DW on hold { // "><" .. DW on hold
0b00000000, __extension__ 0b00000000,
0b00000000, __extension__ 0b00000000,
0b00100010, __extension__ 0b00100010,
0b00110110, __extension__ 0b00110110,
0b00011100, __extension__ 0b00011100,
0b00001000, __extension__ 0b00001000,
0b00000000, __extension__ 0b00000000,
0b00001000, __extension__ 0b00001000,
0b00011100, __extension__ 0b00011100,
0b00110110, __extension__ 0b00110110,
0b00100010, __extension__ 0b00100010,
0b00000000 __extension__ 0b00000000
}; };
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
const uint8_t BITMAP_VOICE_PROMPT[9] = const uint8_t BITMAP_VOICE_PROMPT[9] =
{ {
0b00000000, __extension__ 0b00000000,
0b00011000, __extension__ 0b00011000,
0b00011000, __extension__ 0b00011000,
0b00100100, __extension__ 0b00100100,
0b00100100, __extension__ 0b00100100,
0b01000010, __extension__ 0b01000010,
0b01000010, __extension__ 0b01000010,
0b11111111, __extension__ 0b11111111,
0b00011000 __extension__ 0b00011000
}; };
#endif #endif
#ifdef ENABLE_FMRADIO #ifdef ENABLE_FMRADIO
const uint8_t BITMAP_FM[12] = const uint8_t BITMAP_FM[12] =
{ // "FM" { // "FM"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00001001, __extension__ 0b00001001,
0b00001001, __extension__ 0b00001001,
0b00001001, __extension__ 0b00001001,
0b00000001, __extension__ 0b00000001,
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00000010, __extension__ 0b00000010,
0b00001100, __extension__ 0b00001100,
0b00000010, __extension__ 0b00000010,
0b01111111 __extension__ 0b01111111
}; };
#endif #endif
#ifdef ENABLE_NOAA #ifdef ENABLE_NOAA
const uint8_t BITMAP_NOAA[12] = const uint8_t BITMAP_NOAA[12] =
{ // "NS" { // "NS"
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b00000100, __extension__ 0b00000100,
0b00001000, __extension__ 0b00001000,
0b00010000, __extension__ 0b00010000,
0b01111111, __extension__ 0b01111111,
0b00000000, __extension__ 0b00000000,
0b01000110, __extension__ 0b01000110,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b01001001, __extension__ 0b01001001,
0b00110001 __extension__ 0b00110001
}; };
#endif #endif
const uint8_t BITMAP_ANTENNA[5] = const uint8_t BITMAP_ANTENNA[5] =
{ {
0b00000011, __extension__ 0b00000011,
0b00000101, __extension__ 0b00000101,
0b01111111, __extension__ 0b01111111,
0b00000101, __extension__ 0b00000101,
0b00000011 __extension__ 0b00000011
}; };
const uint8_t BITMAP_ANTENNA_LEVEL1[3] = const uint8_t BITMAP_ANTENNA_LEVEL1[3] =
{ {
0b01100000, __extension__ 0b01100000,
0b01100000, __extension__ 0b01100000,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_ANTENNA_LEVEL2[3] = const uint8_t BITMAP_ANTENNA_LEVEL2[3] =
{ {
0b01110000, __extension__ 0b01110000,
0b01110000, __extension__ 0b01110000,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_ANTENNA_LEVEL3[3] = const uint8_t BITMAP_ANTENNA_LEVEL3[3] =
{ {
0b01111000, __extension__ 0b01111000,
0b01111000, __extension__ 0b01111000,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_ANTENNA_LEVEL4[3] = const uint8_t BITMAP_ANTENNA_LEVEL4[3] =
{ {
0b01111100, __extension__ 0b01111100,
0b01111100, __extension__ 0b01111100,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_ANTENNA_LEVEL5[3] = const uint8_t BITMAP_ANTENNA_LEVEL5[3] =
{ {
0b01111110, __extension__ 0b01111110,
0b01111110, __extension__ 0b01111110,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_ANTENNA_LEVEL6[3] = const uint8_t BITMAP_ANTENNA_LEVEL6[3] =
{ {
0b01111111, __extension__ 0b01111111,
0b01111111, __extension__ 0b01111111,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_MARKER[8] = const uint8_t BITMAP_MARKER[8] =
{ {
0b11111111, __extension__ 0b11111111,
0b11111111, __extension__ 0b11111111,
0b01111110, __extension__ 0b01111110,
0b01111110, __extension__ 0b01111110,
0b00111100, __extension__ 0b00111100,
0b00111100, __extension__ 0b00111100,
0b00011000, __extension__ 0b00011000,
0b00011000 __extension__ 0b00011000
}; };
const uint8_t BITMAP_VFO_DEFAULT[8] = const uint8_t BITMAP_VFO_DEFAULT[8] =
{ {
0b00000000, __extension__ 0b00000000,
0b01111111, __extension__ 0b01111111,
0b01111111, __extension__ 0b01111111,
0b00111110, __extension__ 0b00111110,
0b00111110, __extension__ 0b00111110,
0b00011100, __extension__ 0b00011100,
0b00011100, __extension__ 0b00011100,
0b00001000 __extension__ 0b00001000
}; };
const uint8_t BITMAP_VFO_NOT_DEFAULT[8] = const uint8_t BITMAP_VFO_NOT_DEFAULT[8] =
{ {
0b00000000, __extension__ 0b00000000,
0b01000001, __extension__ 0b01000001,
0b01000001, __extension__ 0b01000001,
0b00100010, __extension__ 0b00100010,
0b00100010, __extension__ 0b00100010,
0b00010100, __extension__ 0b00010100,
0b00010100, __extension__ 0b00010100,
0b00001000 __extension__ 0b00001000
}; };
const uint8_t BITMAP_SCANLIST1[6] = const uint8_t BITMAP_SCANLIST1[6] =
{ // 'I' symbol { // 'I' symbol
0b00000000, __extension__ 0b00000000,
0b00000000, __extension__ 0b00000000,
0b01000010, __extension__ 0b01000010,
0b01111110, __extension__ 0b01111110,
0b01000010, __extension__ 0b01000010,
0b00000000 __extension__ 0b00000000
}; };
const uint8_t BITMAP_SCANLIST2[6] = const uint8_t BITMAP_SCANLIST2[6] =
{ // 'II' symbol { // 'II' symbol
0b00000000, __extension__ 0b00000000,
0b01000010, __extension__ 0b01000010,
0b01111110, __extension__ 0b01111110,
0b01000010, __extension__ 0b01000010,
0b01111110, __extension__ 0b01111110,
0b01000010 __extension__ 0b01000010
}; };
const uint8_t BITMAP_COMPAND[6] = const uint8_t BITMAP_COMPAND[6] =
{ {
0b00000000, __extension__ 0b00000000,
0b00111100, __extension__ 0b00111100,
0b01000010, __extension__ 0b01000010,
0b01000010, __extension__ 0b01000010,
0b01000010, __extension__ 0b01000010,
0b00100100 __extension__ 0b00100100
}; };

View File

@ -54,7 +54,7 @@ void BK4819_Init(void)
BK4819_SetAGC(0); BK4819_SetAGC(0);
// BK4819_SetAGC(1); // 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); BK4819_WriteRegister(BK4819_REG_7D, 0xE940);
@ -837,7 +837,7 @@ void BK4819_RX_TurnOn(void)
// Disable TX DSP // Disable TX DSP
// Enable RX 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) void BK4819_PickRXFilterPathBasedOnFrequency(uint32_t Frequency)

Binary file not shown.

Binary file not shown.

4
misc.h
View File

@ -25,11 +25,11 @@
#endif #endif
#ifndef MAX #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 #endif
#ifndef MIN #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 #endif
//#define IS_USER_CHANNEL(x) ((x) >= USER_CHANNEL_FIRST && (x) <= USER_CHANNEL_LAST) //#define IS_USER_CHANNEL(x) ((x) >= USER_CHANNEL_FIRST && (x) <= USER_CHANNEL_LAST)

View File

@ -40,11 +40,11 @@ void UI_DrawBattery(uint8_t *bitmap, const unsigned int level, const unsigned in
for (i = 0; i < bars; i++) for (i = 0; i < bars; i++)
{ {
#ifdef ENABLE_REVERSE_BAT_SYMBOL #ifdef ENABLE_REVERSE_BAT_SYMBOL
bitmap[3 + (i * 3) + 0] = 0b01011101; bitmap[3 + (i * 3) + 0] = __extension__ 0b01011101;
bitmap[3 + (i * 3) + 1] = 0b01011101; bitmap[3 + (i * 3) + 1] = __extension__ 0b01011101;
#else #else
bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 0] = 0b01011101; bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 0] = __extension__ 0b01011101;
bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 1] = 0b01011101; bitmap[sizeof(BITMAP_BATTERY_LEVEL) - 3 - (i * 3) - 1] = __extension__ 0b01011101;
#endif #endif
} }
} }