Skip to content

Commit

Permalink
Merge branch 'OpenRTX:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Tunas1337 authored Oct 10, 2024
2 parents d83a9c6 + 5e94d2f commit f53c677
Show file tree
Hide file tree
Showing 49 changed files with 1,261 additions and 1,712 deletions.
59 changes: 29 additions & 30 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -154,12 +154,11 @@ openrtx_def += {'GIT_VERSION': git_version}
## TYT MDx family
##

mdx_src = ['openrtx/src/core/xmodem.c',
'openrtx/src/core/backup.c',
'platform/drivers/ADC/ADC1_MDx.c',
mdx_src = ['platform/drivers/ADC/ADC1_MDx.c',
'platform/drivers/GPS/GPS_MDx.cpp',
'platform/drivers/NVM/W25Qx.c',
'platform/drivers/NVM/nvmem_settings_MDx.c',
'platform/drivers/NVM/nvmem_MDx.c',
'platform/drivers/audio/audio_MDx.c',
'platform/drivers/baseband/HR_Cx000.cpp',
'platform/drivers/tones/toneGenerator_MDx.cpp']
Expand All @@ -168,11 +167,10 @@ mdx_src = ['openrtx/src/core/xmodem.c',
## GDx family: Radioddity GD-77 and Baofeng DM-1801
##

gdx_src = ['openrtx/src/core/xmodem.c',
'openrtx/src/core/backup.c',
gdx_src = ['platform/targets/GDx/platform.c',
'platform/targets/GDx/hwconfig.c',
'platform/drivers/NVM/W25Qx.c',
'platform/drivers/NVM/AT24Cx_GDx.c',
'platform/drivers/NVM/spiFlash_GDx.c',
'platform/drivers/NVM/nvmem_GDx.c',
'platform/drivers/CPS/cps_io_native_GDx.c',
'platform/drivers/ADC/ADC0_GDx.c',
Expand All @@ -183,7 +181,11 @@ gdx_src = ['openrtx/src/core/xmodem.c',
'platform/drivers/baseband/HR_C6000_GDx.cpp',
'platform/drivers/display/UC1701_GDx.c',
'platform/drivers/keyboard/keyboard_GDx.c',
'platform/drivers/audio/audio_GDx.c']
'platform/drivers/audio/audio_GDx.c',
'platform/drivers/SPI/spi_custom.c',
'platform/drivers/SPI/spi_bitbang.c']

gdx_inc = ['platform/targets/GDx']

##
## --------------------- MCU-dependent source files ----------------------------
Expand All @@ -209,13 +211,13 @@ stm32f405_src = ['platform/mcu/STM32F4xx/boot/startup.cpp',
'platform/mcu/STM32F4xx/drivers/usb_vcom.c',
'platform/mcu/STM32F4xx/drivers/delays.cpp',
'platform/mcu/STM32F4xx/drivers/rtc.c',
'platform/mcu/STM32F4xx/drivers/SPI2.c',
'platform/mcu/STM32F4xx/drivers/USART3.cpp',
'platform/mcu/STM32F4xx/drivers/flash.c',
'platform/mcu/STM32F4xx/drivers/rng.c',
'platform/mcu/STM32F4xx/drivers/rcc.c',
'platform/mcu/STM32F4xx/drivers/i2c_stm32.c',
'platform/mcu/STM32F4xx/drivers/spi_stm32.c',
'platform/mcu/STM32F4xx/drivers/adc_stm32.c',
'platform/drivers/SPI/spi_stm32.c',
'platform/drivers/audio/stm32_dac.cpp',
'platform/drivers/audio/stm32_adc.cpp',
'platform/drivers/audio/stm32_pwm.cpp',
Expand Down Expand Up @@ -248,6 +250,7 @@ mk22fn512_src = ['platform/mcu/MK22FN512xxx12/boot/startup.cpp',
'platform/mcu/MK22FN512xxx12/drivers/usb/usb_device_khci.c',
'platform/mcu/MK22FN512xxx12/drivers/usb/usb_osa_bm.c',
'platform/mcu/MK22FN512xxx12/drivers/usb_vcom.c',
'platform/drivers/SPI/spi_mk22.c',
'platform/mcu/CMSIS/Device/NXP/MK22FN512xxx12/Source/system_MK22F51212.c']

mk22fn512_inc = ['platform/mcu/CMSIS/Include',
Expand Down Expand Up @@ -286,7 +289,6 @@ linux_def = {'PLATFORM_LINUX': '', 'VP_USE_FILESYSTEM':''}

sdl_dep = dependency('SDL2', required: false)
threads_dep = dependency('threads', required: false)
pulse_dep = dependency('libpulse', required: false)
linux_src += openrtx_src
linux_inc += openrtx_inc
linux_def += openrtx_def
Expand All @@ -309,7 +311,7 @@ linux_mod17_def = linux_def + {'CONFIG_SCREEN_WIDTH': '128', 'CONFIG_SCREEN_HEIG

linux_c_args = ['-ffunction-sections', '-fdata-sections']
linux_cpp_args = ['-ffunction-sections', '-fdata-sections', '-std=c++14']
linux_l_args = ['-lm', '-lreadline', '-lpulse-simple', '-Wl,--gc-sections']
linux_l_args = ['-lm', '-lreadline', '-Wl,--gc-sections']

# Add AddressSanitizer if required
if get_option('asan')
Expand All @@ -329,16 +331,15 @@ endif
##
## TYT MD-3x0 family
##
md3x0_src = ['platform/drivers/NVM/nvmem_MD3x0.c',
'platform/drivers/CPS/cps_io_native_MD3x0.c',
'platform/drivers/NVM/spiFlash_MD3x.c',
md3x0_src = ['platform/drivers/CPS/cps_io_native_MD3x0.c',
'platform/drivers/baseband/SKY72310.c',
'platform/drivers/baseband/radio_MD3x0.cpp',
'platform/drivers/baseband/HR_C5000_MDx.cpp',
'platform/drivers/keyboard/keyboard_MD3x.c',
'platform/drivers/display/HX8353_MD3x.cpp',
'platform/drivers/backlight/backlight_MDx.c',
'platform/targets/MD-3x0/platform.c']
'platform/targets/MD-3x0/platform.c',
'platform/targets/MD-3x0/hwconfig.c']

md3x0_inc = ['platform/targets/MD-3x0']
md3x0_def = {'PLATFORM_MD3x0': '', 'timegm': 'mktime'}
Expand All @@ -350,10 +351,9 @@ md3x0_def += openrtx_def + stm32f405_def + miosix_cm4f_def
##
## TYT MD-UV380
##
mduv3x0_src = ['platform/drivers/NVM/nvmem_MDUV3x0.c',
'platform/drivers/NVM/spiFlash_MD3x.c',
'platform/drivers/CPS/cps_io_native_MDUV3x0.c',
mduv3x0_src = ['platform/drivers/CPS/cps_io_native_MDUV3x0.c',
'platform/targets/MD-UV3x0/platform.c',
'platform/targets/MD-UV3x0/hwconfig.c',
'platform/drivers/keyboard/keyboard_MD3x.c',
'platform/drivers/display/HX8353_MD3x.cpp',
'platform/drivers/backlight/backlight_MDx.c',
Expand All @@ -373,12 +373,11 @@ mduv3x0_def += openrtx_def + stm32f405_def + miosix_cm4f_def
## TYT MD-9600
##
md9600_src = ['platform/targets/MD-9600/platform.c',
'platform/targets/MD-9600/hwconfig.c',
'platform/drivers/display/ST7567_MD9600.c',
'platform/drivers/keyboard/keyboard_MD9600.c',
'platform/drivers/chSelector/chSelector_MD9600.c',
'platform/drivers/baseband/radio_MD9600.cpp',
'platform/drivers/NVM/nvmem_MD9600.c',
'platform/drivers/NVM/spiFlash_MD9600.c',
'platform/drivers/CPS/cps_io_native_MD9600.c']

md9600_inc = ['platform/targets/MD-9600']
Expand All @@ -391,23 +390,23 @@ md9600_def += openrtx_def + stm32f405_def + miosix_cm4f_def
##
## Radioddity GD-77
##
gd77_src = ['platform/targets/GD-77/platform.c']
gd77_inc = ['platform/targets/GD-77']
gd77_src = []
gd77_inc = []
gd77_def = {'PLATFORM_GD77': ''}

gd77_src += openrtx_src + mk22fn512_src + miosix_cm4f_src + ui_src_default + gdx_src
gd77_inc += openrtx_inc + mk22fn512_inc + miosix_cm4f_inc
gd77_inc += openrtx_inc + mk22fn512_inc + miosix_cm4f_inc + gdx_inc
gd77_def += openrtx_def + mk22fn512_def + miosix_cm4f_def

##
## Baofeng DM-1801
##
dm1801_src = ['platform/targets/DM-1801/platform.c']
dm1801_inc = ['platform/targets/DM-1801']
dm1801_src = []
dm1801_inc = []
dm1801_def = {'PLATFORM_DM1801': ''}

dm1801_src += openrtx_src + mk22fn512_src + miosix_cm4f_src + ui_src_default + gdx_src
dm1801_inc += openrtx_inc + mk22fn512_inc + miosix_cm4f_inc
dm1801_inc += openrtx_inc + mk22fn512_inc + miosix_cm4f_inc + gdx_inc
dm1801_def += openrtx_def + mk22fn512_def + miosix_cm4f_def

##
Expand Down Expand Up @@ -530,7 +529,7 @@ endforeach
linux_opts = {
'sources' : linux_default_src,
'include_directories': linux_inc,
'dependencies' : [sdl_dep, threads_dep, pulse_dep, codec2_dep],
'dependencies' : [sdl_dep, threads_dep, codec2_dep],
'c_args' : linux_c_args,
'cpp_args' : linux_cpp_args,
'link_args' : linux_l_args
Expand All @@ -539,7 +538,7 @@ linux_opts = {
linux_small_opts = {
'sources' : linux_default_src,
'include_directories': linux_inc,
'dependencies' : [sdl_dep, threads_dep, pulse_dep, codec2_dep],
'dependencies' : [sdl_dep, threads_dep, codec2_dep],
'c_args' : linux_small_c_args,
'cpp_args' : linux_small_cpp_args,
'link_args' : linux_l_args
Expand All @@ -548,7 +547,7 @@ linux_small_opts = {
linux_mod17_opts = {
'sources' : linux_mod17_src,
'include_directories': linux_inc,
'dependencies' : [sdl_dep, threads_dep, pulse_dep, codec2_dep],
'dependencies' : [sdl_dep, threads_dep, codec2_dep],
'c_args' : linux_mod17_c_args,
'cpp_args' : linux_mod17_cpp_args,
'link_args' : linux_l_args
Expand Down Expand Up @@ -849,7 +848,7 @@ endforeach
unit_test_opts = {'c_args' : linux_c_args,
'cpp_args' : linux_cpp_args,
'include_directories': linux_inc,
'dependencies' : [sdl_dep, threads_dep, pulse_dep, codec2_dep],
'dependencies' : [sdl_dep, threads_dep, codec2_dep],
'link_args' : linux_l_args}

unit_test_src = linux_src + ui_src_default
Expand Down
103 changes: 14 additions & 89 deletions openrtx/include/calibration/calibInfo_MDx.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/***************************************************************************
* Copyright (C) 2020 - 2023 by Federico Amedeo Izzo IU2NUO, *
* Copyright (C) 2020 - 2024 by Federico Amedeo Izzo IU2NUO, *
* Niccolò Izzo IU2KIN *
* Frederik Saraci IU2NRO *
* Silvano Seva IU2KWO *
Expand Down Expand Up @@ -27,114 +27,39 @@
/**
* Data types defining the structure of calibration data stored in external
* flash memory of MDx devices.
*
* Single band and dual band devices use more or less the same calibration data
* entries, thus a single data structure have been made. The only difference
* between the two is that the dual band radios have five calibration points
* for the VHF band instead of nine.
*/

/**
* \brief Calibration data for MD-3x0.
*/
typedef struct
struct CalData
{
uint8_t vox1;
uint8_t vox10;
uint8_t rxLowVoltage;
uint8_t rxFullVoltage;
uint8_t rssi1;
uint8_t rssi4;
uint8_t analogMic;
uint8_t digitalMic;
uint8_t freqAdjustHigh;
uint8_t freqAdjustMid;
uint8_t freqAdjustLow;
freq_t rxFreq[9];
freq_t txFreq[9];
uint8_t txHighPower[9];
uint8_t txLowPower[9];
uint8_t rxSensitivity[9];
uint8_t openSql9[9];
uint8_t closeSql9[9];
uint8_t openSql1[9];
uint8_t closeSql1[9];
uint8_t maxVolume[9];
uint8_t ctcss67Hz[9];
uint8_t ctcss151Hz[9];
uint8_t ctcss254Hz[9];
uint8_t dcsMod2[9];
uint8_t dcsMod1[9];
uint8_t mod1Partial[9];
uint8_t analogVoiceAdjust[9];
uint8_t lockVoltagePartial[9];
uint8_t sendIpartial[9];
uint8_t sendQpartial[9];
uint8_t sendIrange[9];
uint8_t sendQrange[9];
uint8_t rxIpartial[9];
uint8_t rxQpartial[9];
uint8_t analogSendIrange[9];
uint8_t analogSendQrange[9];
}
md3x0Calib_t;
};

typedef struct
{
uint8_t freqAdjustMid;
freq_t rxFreq[5];
freq_t txFreq[5];
uint8_t txHighPower[5];
uint8_t txMidPower[5];
uint8_t txLowPower[5];
uint8_t rxSensitivity[5];
uint8_t openSql9[5];
uint8_t closeSql9[5];
uint8_t openSql1[5];
uint8_t closeSql1[5];
uint8_t ctcss67Hz[5];
uint8_t ctcss151Hz[5];
uint8_t ctcss254Hz[5];
uint8_t dcsMod1[5];
uint8_t sendIrange[5];
uint8_t sendQrange[5];
uint8_t analogSendIrange[5];
uint8_t analogSendQrange[5];
}
VhfCalib_t;

typedef struct
{
uint8_t freqAdjustMid;
freq_t rxFreq[9];
freq_t txFreq[9];
uint8_t txHighPower[9];
uint8_t txMidPower[9];
uint8_t txLowPower[9];
uint8_t rxSensitivity[9];
uint8_t openSql9[9];
uint8_t closeSql9[9];
uint8_t openSql1[9];
uint8_t closeSql1[9];
uint8_t ctcss67Hz[9];
uint8_t ctcss151Hz[9];
uint8_t ctcss254Hz[9];
uint8_t dcsMod1[9];
uint8_t sendIrange[9];
uint8_t sendQrange[9];
uint8_t analogSendIrange[9];
uint8_t analogSendQrange[9];
}
UhfCalib_t;
/**
* \brief Calibration data for MD-3x0.
*/
typedef struct CalData md3x0Calib_t;

/**
* \brief Calibration data for MD-UV3x0.
*/
typedef struct
{
uint8_t vox1;
uint8_t vox10;
uint8_t rxLowVoltage;
uint8_t rxFullVoltage;
uint8_t rssi1;
uint8_t rssi4;
VhfCalib_t vhfCal;
UhfCalib_t uhfCal;
struct CalData uhfCal;
struct CalData vhfCal;
}
mduv3x0Calib_t;

Expand Down
31 changes: 14 additions & 17 deletions openrtx/include/core/threads.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/***************************************************************************
* Copyright (C) 2020 - 2023 by Federico Amedeo Izzo IU2NUO, *
* Copyright (C) 2020 - 2024 by Federico Amedeo Izzo IU2NUO, *
* Niccolò Izzo IU2KIN *
* Frederik Saraci IU2NRO *
* Silvano Seva IU2KWO *
Expand All @@ -24,28 +24,25 @@
#include <stddef.h>

/**
* Spawn all the threads for the various functionalities.
*/
void create_threads();

/**
* Stack size for state update task, in bytes.
* Threads' stack sizes
*/
#define DEV_TASK_STKSIZE 2048
#define UI_THREAD_STKSIZE 2048
#define RTX_THREAD_STKSIZE 512
#define CODEC2_THREAD_STKSIZE 16384

/**
* Stack size for UI management, in bytes.
* Thread priority levels, UNIX-like: lower level, higher thread priority
*/
#define UI_TASK_STKSIZE 2048
#ifdef _MIOSIX
#define THREAD_PRIO_RT 0
#define THREAD_PRIO_HIGH 1
#define THREAD_PRIO_NORMAL 2
#define THREAD_PRIO_LOW 3
#endif

/**
* Stack size for baseband control task, in bytes.
*/
#define RTX_TASK_STKSIZE 512

/**
* Stack size for codec2 task, in bytes.
* Spawn all the threads for the various functionalities.
*/
#define CODEC2_TASK_STKSIZE 16384
void create_threads();

#endif /* THREADS_H */
Loading

0 comments on commit f53c677

Please sign in to comment.