diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 13f6a6fc1..c789dfbe9 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -246,7 +246,10 @@ void generalDefault() memclear(&g_eeGeneral, sizeof(g_eeGeneral)); g_eeGeneral.version = EEPROM_VER; g_eeGeneral.variant = EEPROM_VARIANT; + +#if !defined(PCBHORUS) g_eeGeneral.contrast = 25; +#endif #if defined(PCBFLAMENCO) g_eeGeneral.vBatWarn = 33; @@ -1055,7 +1058,7 @@ void doSplash() #if defined(PCBSTD) lcdSetContrast(); -#elif !defined(PCBTARANIS) +#elif !defined(PCBHORUS) && !defined(PCBTARANIS) tmr10ms_t curTime = get_tmr10ms() + 10; uint8_t contrast = 10; lcdSetRefVolt(contrast); @@ -1105,7 +1108,7 @@ void doSplash() } #endif -#if !defined(PCBTARANIS) && !defined(PCBSTD) +#if !defined(PCBHORUS) && !defined(PCBTARANIS) && !defined(PCBSTD) if (curTime < get_tmr10ms()) { curTime += 10; if (contrast < g_eeGeneral.contrast) { @@ -1975,6 +1978,11 @@ uint8_t calcStickScroll( uint8_t index ) void opentxStart() { +#if defined(SIMU) + if (main_thread_running == 2) + return; +#endif + doSplash(); #if defined(DEBUG_TRACE_BUFFER) @@ -2673,7 +2681,7 @@ int main() MCUCSR = 0; #endif #if defined(PCBTARANIS) - g_eeGeneral.contrast=30; + g_eeGeneral.contrast = 30; #endif wdt_disable(); diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 7d0a29217..9dbbbfc64 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -79,11 +79,6 @@ Adc Adc0; uint8_t * eeprom_buffer_data; volatile int32_t eeprom_buffer_size; bool eeprom_read_operation; - #define EESIZE_SIMU (128*4096) // TODO why here? -#endif - -#if !defined(EESIZE_SIMU) - #define EESIZE_SIMU EESIZE #endif #if defined(SDCARD) && !defined(SKIP_FATFS_DECLARATION) @@ -336,7 +331,10 @@ void *eeprom_write_function(void *) void StartSimu(bool tests) { - main_thread_running = (tests ? 1 : 2); + s_current_protocol[0] = 255; + menuLevel = 0; + + main_thread_running = (tests ? 1 : 2); // TODO rename to simu_run_mode with #define #if defined(SDCARD) if (strlen(simuSdDirectory) == 0) { @@ -385,7 +383,11 @@ void StartSimu(bool tests) void StopSimu() { main_thread_running = 0; -#if !defined(CPUARM) + +#if defined(CPUARM) + pthread_join(mixerTaskId, NULL); + pthread_join(menusTaskId, NULL); +#else pthread_join(main_thread_pid, NULL); #endif } diff --git a/radio/src/targets/simu/simpgmspace.h b/radio/src/targets/simu/simpgmspace.h index 75b04dca7..c1e6c17bd 100644 --- a/radio/src/targets/simu/simpgmspace.h +++ b/radio/src/targets/simu/simpgmspace.h @@ -336,6 +336,7 @@ extern volatile unsigned char pina, pinb, pinc, pind, pine, pinf, ping, pinh, pi extern uint8_t portb, portc, porth, dummyport; extern uint16_t dummyport16; extern uint8_t main_thread_running; +extern char * main_thread_error; #define getADC() #define getADC_bandgap() @@ -362,6 +363,13 @@ void StopEepromThread(); #define StopAudioThread() #endif +#if !defined(EEPROM_RLC) + #define EESIZE_SIMU (128*4096) +#else + #define EESIZE_SIMU EESIZE +#endif + +extern uint8_t eeprom[EESIZE_SIMU]; extern const char * eepromFile; void eepromReadBlock (uint8_t * pointer_ram, uint32_t address, uint32_t size); diff --git a/radio/src/tasks_arm.cpp b/radio/src/tasks_arm.cpp index a1603af99..99236dace 100644 --- a/radio/src/tasks_arm.cpp +++ b/radio/src/tasks_arm.cpp @@ -97,6 +97,11 @@ void mixerTask(void * pdata) while(1) { +#if defined(SIMU) + if (main_thread_running == 0) + return; +#endif + if (!s_pulses_paused) { uint16_t t0 = getTmr2MHz(); @@ -149,6 +154,11 @@ void menusTask(void * pdata) if (runtime < MENU_TASK_PERIOD_TICKS) { CoTickDelay(MENU_TASK_PERIOD_TICKS - runtime); } + +#if defined(SIMU) + if (main_thread_running == 0) + return; +#endif } #if defined(PCBTARANIS) && defined(REV9E)