mirror of
https://github.com/opentx/opentx.git
synced 2025-07-15 20:35:17 +03:00
[Horus] Emergency mode + some simu refactoring to avoid duplicated code
This commit is contained in:
parent
10d0c56b08
commit
473e69b3c3
9 changed files with 127 additions and 143 deletions
|
@ -9,6 +9,7 @@ set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}${VERSION_SUFFI
|
||||||
message(STATUS "OpenTX ${VERSION}")
|
message(STATUS "OpenTX ${VERSION}")
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8)
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
set(RADIO_DIRECTORY ${PROJECT_SOURCE_DIR}/radio)
|
set(RADIO_DIRECTORY ${PROJECT_SOURCE_DIR}/radio)
|
||||||
set(RADIO_SRC_DIRECTORY ${RADIO_DIRECTORY}/src)
|
set(RADIO_SRC_DIRECTORY ${RADIO_DIRECTORY}/src)
|
||||||
|
|
|
@ -538,12 +538,12 @@ void OpenTxSimulator::start(const char * filename, bool tests)
|
||||||
|
|
||||||
StartEepromThread(filename);
|
StartEepromThread(filename);
|
||||||
StartAudioThread(volumeGain);
|
StartAudioThread(volumeGain);
|
||||||
StartMainThread(tests);
|
StartSimu(tests);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenTxSimulator::stop()
|
void OpenTxSimulator::stop()
|
||||||
{
|
{
|
||||||
StopMainThread();
|
StopSimu();
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
StopAudioThread();
|
StopAudioThread();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -338,6 +338,15 @@ void perMain()
|
||||||
if (sticks_evt) evt = sticks_evt;
|
if (sticks_evt) evt = sticks_evt;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(RAMBACKUP)
|
||||||
|
if (unexpectedShutdown) {
|
||||||
|
lcd->clear();
|
||||||
|
lcdDrawText(LCD_W/2, LCD_H/2-20, "EMERGENCY MODE", DBLSIZE|CENTERED|TEXT_BGCOLOR);
|
||||||
|
lcdRefresh();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(USB_MASS_STORAGE)
|
#if defined(USB_MASS_STORAGE)
|
||||||
if (usbPlugged()) {
|
if (usbPlugged()) {
|
||||||
// disable access to menus
|
// disable access to menus
|
||||||
|
|
|
@ -2543,7 +2543,9 @@ void opentxInit(OPENTX_INIT_ARGS)
|
||||||
TRACE("opentxInit()");
|
TRACE("opentxInit()");
|
||||||
|
|
||||||
#if !defined(EEPROM)
|
#if !defined(EEPROM)
|
||||||
sdInit();
|
if (!UNEXPECTED_SHUTDOWN()) {
|
||||||
|
sdInit();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(COLORLCD)
|
#if defined(COLORLCD)
|
||||||
|
@ -2551,7 +2553,16 @@ void opentxInit(OPENTX_INIT_ARGS)
|
||||||
luaInit();
|
luaInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(RAMBACKUP)
|
||||||
|
if (UNEXPECTED_SHUTDOWN()) {
|
||||||
|
rambackupRestore();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
storageReadAll();
|
||||||
|
}
|
||||||
|
#else
|
||||||
storageReadAll();
|
storageReadAll();
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
if (UNEXPECTED_SHUTDOWN()) {
|
if (UNEXPECTED_SHUTDOWN()) {
|
||||||
|
@ -2635,10 +2646,20 @@ void opentxInit(OPENTX_INIT_ARGS)
|
||||||
startPulses();
|
startPulses();
|
||||||
|
|
||||||
wdt_enable(WDTO_500MS);
|
wdt_enable(WDTO_500MS);
|
||||||
|
|
||||||
|
#if defined(GUI)
|
||||||
|
menuHandlers[0] = menuMainView;
|
||||||
|
#if MENUS_LOCK != 2/*no menus*/
|
||||||
|
menuHandlers[1] = menuModelSelect;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(SIMU)
|
#if defined(SIMU)
|
||||||
int main(void)
|
void * simuMain(void *)
|
||||||
|
#else
|
||||||
|
int main()
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
// G: The WDT remains active after a WDT reset -- at maximum clock speed. So it's
|
// G: The WDT remains active after a WDT reset -- at maximum clock speed. So it's
|
||||||
// important to disable it before commencing with system initialisation (or
|
// important to disable it before commencing with system initialisation (or
|
||||||
|
@ -2663,13 +2684,8 @@ int main(void)
|
||||||
lcdInit();
|
lcdInit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(SIMU)
|
||||||
stackPaint();
|
stackPaint();
|
||||||
|
|
||||||
#if defined(GUI)
|
|
||||||
menuHandlers[0] = menuMainView;
|
|
||||||
#if MENUS_LOCK != 2/*no menus*/
|
|
||||||
menuHandlers[1] = menuModelSelect;
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(GUI) && !defined(PCBTARANIS)
|
#if defined(GUI) && !defined(PCBTARANIS)
|
||||||
|
@ -2710,19 +2726,16 @@ int main(void)
|
||||||
init_rotary_sw();
|
init_rotary_sw();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(CPUARM)
|
|
||||||
opentxInit(mcusr);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
tasksStart();
|
tasksStart();
|
||||||
#else
|
#else
|
||||||
|
opentxInit(mcusr);
|
||||||
#if defined(CPUM2560)
|
#if defined(CPUM2560)
|
||||||
uint8_t shutdown_state = 0;
|
uint8_t shutdown_state = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBFLAMENCO)
|
#if defined(PCBFLAMENCO)
|
||||||
menuEntryTime = get_tmr10ms() - 200;
|
// TODO not here it's an ARM board ... menuEntryTime = get_tmr10ms() - 200;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -2751,8 +2764,11 @@ int main(void)
|
||||||
wdt_disable();
|
wdt_disable();
|
||||||
while(1); // never return from main() - there is no code to return back, if any delays occurs in physical power it does dead loop.
|
while(1); // never return from main() - there is no code to return back, if any delays occurs in physical power it does dead loop.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(SIMU)
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif // !SIMU
|
|
||||||
|
|
||||||
#if defined(PWR_BUTTON_DELAY)
|
#if defined(PWR_BUTTON_DELAY)
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ Open9xSim::Open9xSim(FXApp* a):
|
||||||
|
|
||||||
Open9xSim::~Open9xSim()
|
Open9xSim::~Open9xSim()
|
||||||
{
|
{
|
||||||
StopMainThread();
|
StopSimu();
|
||||||
StopAudioThread();
|
StopAudioThread();
|
||||||
StopEepromThread();
|
StopEepromThread();
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@ int main(int argc,char **argv)
|
||||||
|
|
||||||
StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin");
|
StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin");
|
||||||
StartAudioThread();
|
StartAudioThread();
|
||||||
StartMainThread();
|
StartSimu();
|
||||||
|
|
||||||
return application.run();
|
return application.run();
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ class ModelCell
|
||||||
buffer.drawBitmapPattern(5, 23, LBM_LIBRARY_SLOT, TEXT_COLOR);
|
buffer.drawBitmapPattern(5, 23, LBM_LIBRARY_SLOT, TEXT_COLOR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char timer[LEN_TIMER_STRING];z
|
char timer[LEN_TIMER_STRING];
|
||||||
buffer.drawSizedText(5, 2, header.name, LEN_MODEL_NAME, ZCHAR|TEXT_COLOR);
|
buffer.drawSizedText(5, 2, header.name, LEN_MODEL_NAME, ZCHAR|TEXT_COLOR);
|
||||||
getTimerString(timer, 0);
|
getTimerString(timer, 0);
|
||||||
buffer.drawText(104, 41, timer, TEXT_COLOR);
|
buffer.drawText(104, 41, timer, TEXT_COLOR);
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
uint8_t MCUCSR, MCUSR;
|
||||||
volatile uint8_t pina=0xff, pinb=0xff, pinc=0xff, pind, pine=0xff, pinf=0xff, ping=0xff, pinh=0xff, pinj=0, pinl=0;
|
volatile uint8_t pina=0xff, pinb=0xff, pinc=0xff, pind, pine=0xff, pinf=0xff, ping=0xff, pinh=0xff, pinj=0, pinl=0;
|
||||||
uint8_t portb, portc, porth=0, dummyport;
|
uint8_t portb, portc, porth=0, dummyport;
|
||||||
uint16_t dummyport16;
|
uint16_t dummyport16;
|
||||||
|
@ -47,6 +48,10 @@ const char *eepromFile = NULL;
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
int g_snapshot_idx = 0;
|
int g_snapshot_idx = 0;
|
||||||
|
|
||||||
|
pthread_t main_thread_pid = 0;
|
||||||
|
uint8_t main_thread_running = 0;
|
||||||
|
char * main_thread_error = NULL;
|
||||||
|
|
||||||
#if defined(CPUSTM32)
|
#if defined(CPUSTM32)
|
||||||
uint32_t Peri1_frequency, Peri2_frequency;
|
uint32_t Peri1_frequency, Peri2_frequency;
|
||||||
GPIO_TypeDef gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog, gpioh, gpioi, gpioj;
|
GPIO_TypeDef gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog, gpioh, gpioi, gpioj;
|
||||||
|
@ -86,6 +91,10 @@ char simuSdDirectory[1024] = "";
|
||||||
uint8_t eeprom[EESIZE_SIMU];
|
uint8_t eeprom[EESIZE_SIMU];
|
||||||
sem_t *eeprom_write_sem;
|
sem_t *eeprom_write_sem;
|
||||||
|
|
||||||
|
void lcdInit()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void simuInit()
|
void simuInit()
|
||||||
{
|
{
|
||||||
for (int i = 0; i <= 17; i++) {
|
for (int i = 0; i <= 17; i++) {
|
||||||
|
@ -314,110 +323,19 @@ void *eeprom_write_function(void *)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t main_thread_running = 0;
|
|
||||||
char * main_thread_error = NULL;
|
|
||||||
extern void opentxStart();
|
|
||||||
void * main_thread(void *)
|
|
||||||
{
|
|
||||||
#ifdef SIMU_EXCEPTIONS
|
|
||||||
signal(SIGFPE, sig);
|
|
||||||
signal(SIGSEGV, sig);
|
|
||||||
|
|
||||||
try {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CPUARM)
|
|
||||||
stackPaint();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s_current_protocol[0] = 255;
|
|
||||||
|
|
||||||
menuLevel = 0;
|
|
||||||
menuHandlers[0] = menuMainView;
|
|
||||||
menuHandlers[1] = menuModelSelect;
|
|
||||||
|
|
||||||
#if defined(COLORLCD)
|
|
||||||
topbar = new Topbar(&g_model.topbarData);
|
|
||||||
luaInit();
|
|
||||||
// TODO the theme is not initialized, in case of sdcard error, we should have something strange
|
|
||||||
#endif
|
|
||||||
|
|
||||||
storageReadAll(); // load general setup and selected model
|
|
||||||
|
|
||||||
#if defined(COLORLCD)
|
|
||||||
loadTheme();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SIMU_DISKIO)
|
|
||||||
f_mount(&g_FATFS_Obj, "", 1);
|
|
||||||
// call sdGetFreeSectors() now because f_getfree() takes a long time first time it's called
|
|
||||||
sdGetFreeSectors();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CPUARM) && defined(SDCARD)
|
|
||||||
referenceSystemAudioFiles();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (g_eeGeneral.backlightMode != e_backlight_mode_off) backlightOn(); // on Tx start turn the light on
|
|
||||||
|
|
||||||
if (main_thread_running == 1) {
|
|
||||||
opentxStart();
|
|
||||||
}
|
|
||||||
|
|
||||||
s_current_protocol[0] = 0;
|
|
||||||
|
|
||||||
#if defined(PCBFLAMENCO)
|
|
||||||
menuEntryTime = get_tmr10ms() - 200;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (main_thread_running) {
|
|
||||||
#if defined(CPUARM)
|
|
||||||
doMixerCalculations();
|
|
||||||
#if defined(FRSKY) || defined(MAVLINK)
|
|
||||||
telemetryWakeup();
|
|
||||||
#endif
|
|
||||||
checkTrims();
|
|
||||||
#endif
|
|
||||||
perMain();
|
|
||||||
sleep(10/*ms*/);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(LUA)
|
|
||||||
luaClose();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SIMU_EXCEPTIONS
|
|
||||||
}
|
|
||||||
catch (...) {
|
|
||||||
main_thread_running = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SIMU_DISKIO)
|
|
||||||
if (diskImage) {
|
|
||||||
fclose(diskImage);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined WIN32 || !defined __GNUC__
|
#if defined WIN32 || !defined __GNUC__
|
||||||
#define chdir _chdir
|
#define chdir _chdir
|
||||||
#define getcwd _getcwd
|
#define getcwd _getcwd
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pthread_t main_thread_pid;
|
void StartSimu(bool tests)
|
||||||
void StartMainThread(bool tests)
|
|
||||||
{
|
{
|
||||||
#if defined(SDCARD)
|
main_thread_running = (tests ? 1 : 2);
|
||||||
if (strlen(simuSdDirectory) == 0)
|
|
||||||
getcwd(simuSdDirectory, 1024);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(SDCARD)
|
||||||
pthread_mutex_init(&mixerMutex, NULL);
|
if (strlen(simuSdDirectory) == 0) {
|
||||||
pthread_mutex_init(&audioMutex, NULL);
|
getcwd(simuSdDirectory, 1024);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -439,14 +357,30 @@ void StartMainThread(bool tests)
|
||||||
g_rtcTime = time(0);
|
g_rtcTime = time(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
main_thread_running = (tests ? 1 : 2);
|
#if defined(SIMU_EXCEPTIONS)
|
||||||
pthread_create(&main_thread_pid, NULL, &main_thread, NULL);
|
signal(SIGFPE, sig);
|
||||||
|
signal(SIGSEGV, sig);
|
||||||
|
try {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CPUARM)
|
||||||
|
simuMain();
|
||||||
|
#else
|
||||||
|
pthread_create(&main_thread_pid, NULL, &simuMain, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(SIMU_EXCEPTIONS)
|
||||||
|
}
|
||||||
|
catch (...) {
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void StopMainThread()
|
void StopSimu()
|
||||||
{
|
{
|
||||||
main_thread_running = 0;
|
main_thread_running = 0;
|
||||||
pthread_join(main_thread_pid, NULL);
|
if (main_thread_pid)
|
||||||
|
pthread_join(main_thread_pid, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
|
@ -1330,7 +1264,7 @@ void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct) { }
|
||||||
void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { }
|
void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { }
|
||||||
void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState) { }
|
void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState) { }
|
||||||
void RCC_LSEConfig(uint8_t RCC_LSE) { }
|
void RCC_LSEConfig(uint8_t RCC_LSE) { }
|
||||||
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG) { return RESET; }
|
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG) { return SET; }
|
||||||
ErrorStatus RTC_WaitForSynchro(void) { return SUCCESS; }
|
ErrorStatus RTC_WaitForSynchro(void) { return SUCCESS; }
|
||||||
void unlockFlash() { }
|
void unlockFlash() { }
|
||||||
void lockFlash() { }
|
void lockFlash() { }
|
||||||
|
@ -1362,3 +1296,17 @@ void serialPrintf(const char * format, ...) { }
|
||||||
void serialCrlf() { }
|
void serialCrlf() { }
|
||||||
void serialPutc(char c) { }
|
void serialPutc(char c) { }
|
||||||
uint16_t stackSize() { return 0; }
|
uint16_t stackSize() { return 0; }
|
||||||
|
|
||||||
|
void * start_routine(void * attr)
|
||||||
|
{
|
||||||
|
FUNCPtr task = (FUNCPtr)attr;
|
||||||
|
task(NULL);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_TID CoCreateTask(FUNCPtr task, void *argv, uint32_t parameter, void * stk, uint32_t stksize)
|
||||||
|
{
|
||||||
|
pthread_t tid;
|
||||||
|
pthread_create(&tid, NULL, start_routine, (void *)task);
|
||||||
|
return tid;
|
||||||
|
}
|
||||||
|
|
|
@ -349,8 +349,9 @@ void simuSetKey(uint8_t key, bool state);
|
||||||
void simuSetTrim(uint8_t trim, bool state);
|
void simuSetTrim(uint8_t trim, bool state);
|
||||||
void simuSetSwitch(uint8_t swtch, int8_t state);
|
void simuSetSwitch(uint8_t swtch, int8_t state);
|
||||||
|
|
||||||
void StartMainThread(bool tests=true);
|
void StartSimu(bool tests=true);
|
||||||
void StopMainThread();
|
void StopSimu();
|
||||||
|
|
||||||
void StartEepromThread(const char *filename="eeprom.bin");
|
void StartEepromThread(const char *filename="eeprom.bin");
|
||||||
void StopEepromThread();
|
void StopEepromThread();
|
||||||
#if defined(SIMU_AUDIO) && defined(CPUARM)
|
#if defined(SIMU_AUDIO) && defined(CPUARM)
|
||||||
|
@ -364,6 +365,7 @@ void StopEepromThread();
|
||||||
extern const char * eepromFile;
|
extern const char * eepromFile;
|
||||||
void eepromReadBlock (uint8_t * pointer_ram, uint32_t address, uint32_t size);
|
void eepromReadBlock (uint8_t * pointer_ram, uint32_t address, uint32_t size);
|
||||||
|
|
||||||
|
#define wdt_disable(...) sleep(1/*ms*/)
|
||||||
#define wdt_enable(...) sleep(1/*ms*/)
|
#define wdt_enable(...) sleep(1/*ms*/)
|
||||||
#define wdt_reset() sleep(1/*ms*/)
|
#define wdt_reset() sleep(1/*ms*/)
|
||||||
#define boardInit()
|
#define boardInit()
|
||||||
|
@ -380,11 +382,23 @@ extern OS_MutexID audioMutex;
|
||||||
#define E_OK 0
|
#define E_OK 0
|
||||||
#define WDRF 0
|
#define WDRF 0
|
||||||
|
|
||||||
|
void * simuMain(void * args = NULL);
|
||||||
|
extern uint8_t MCUCSR, MCUSR;
|
||||||
|
|
||||||
|
typedef unsigned int U32;
|
||||||
|
typedef unsigned long long U64;
|
||||||
|
typedef void (*FUNCPtr)(void*);
|
||||||
|
|
||||||
#define CoInitOS(...)
|
#define CoInitOS(...)
|
||||||
#define CoStartOS(...)
|
#define CoStartOS(...)
|
||||||
#define CoCreateTask(...) 0
|
|
||||||
|
OS_TID CoCreateTask(FUNCPtr task, void *argv, uint32_t parameter, void * stk, uint32_t stksize);
|
||||||
#define CoCreateTaskEx(...) 0
|
#define CoCreateTaskEx(...) 0
|
||||||
|
|
||||||
#define CoCreateMutex(...) PTHREAD_MUTEX_INITIALIZER
|
#define CoCreateMutex(...) PTHREAD_MUTEX_INITIALIZER
|
||||||
|
#define CoEnterMutexSection(m) pthread_mutex_lock(&(m))
|
||||||
|
#define CoLeaveMutexSection(m) pthread_mutex_unlock(&(m))
|
||||||
|
|
||||||
#define CoSetFlag(...)
|
#define CoSetFlag(...)
|
||||||
#define CoClearFlag(...)
|
#define CoClearFlag(...)
|
||||||
#define CoSetTmrCnt(...)
|
#define CoSetTmrCnt(...)
|
||||||
|
@ -392,8 +406,6 @@ extern OS_MutexID audioMutex;
|
||||||
#define CoExitISR(...)
|
#define CoExitISR(...)
|
||||||
#define CoStartTmr(...)
|
#define CoStartTmr(...)
|
||||||
#define CoWaitForSingleFlag(...) 0
|
#define CoWaitForSingleFlag(...) 0
|
||||||
#define CoEnterMutexSection(m) pthread_mutex_lock(&(m))
|
|
||||||
#define CoLeaveMutexSection(m) pthread_mutex_unlock(&(m))
|
|
||||||
#define CoTickDelay(...)
|
#define CoTickDelay(...)
|
||||||
#define CoCreateFlag(...) 0
|
#define CoCreateFlag(...) 0
|
||||||
#define CoGetOSTime(...) 0
|
#define CoGetOSTime(...) 0
|
||||||
|
@ -443,4 +455,6 @@ extern char simuSdDirectory[1024];
|
||||||
#define sd_card_ready() (true)
|
#define sd_card_ready() (true)
|
||||||
#define sdMounted() (true)
|
#define sdMounted() (true)
|
||||||
|
|
||||||
|
inline void ledOff() { }
|
||||||
|
|
||||||
#endif // _SIMPGMSPACE_H_
|
#endif // _SIMPGMSPACE_H_
|
||||||
|
|
|
@ -91,8 +91,6 @@ uint16_t stackAvailable()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(SIMU)
|
|
||||||
|
|
||||||
void mixerTask(void * pdata)
|
void mixerTask(void * pdata)
|
||||||
{
|
{
|
||||||
s_pulses_paused = true;
|
s_pulses_paused = true;
|
||||||
|
@ -190,14 +188,12 @@ void tasksStart()
|
||||||
|
|
||||||
mixerTaskId = CoCreateTask(mixerTask, NULL, 5, &mixerStack.stack[MIXER_STACK_SIZE-1], MIXER_STACK_SIZE);
|
mixerTaskId = CoCreateTask(mixerTask, NULL, 5, &mixerStack.stack[MIXER_STACK_SIZE-1], MIXER_STACK_SIZE);
|
||||||
menusTaskId = CoCreateTask(menusTask, NULL, 10, &menusStack.stack[MENUS_STACK_SIZE-1], MENUS_STACK_SIZE);
|
menusTaskId = CoCreateTask(menusTask, NULL, 10, &menusStack.stack[MENUS_STACK_SIZE-1], MENUS_STACK_SIZE);
|
||||||
audioTaskId = CoCreateTask(audioTask, NULL, 7, &audioStack.stack[AUDIO_STACK_SIZE-1], AUDIO_STACK_SIZE);
|
|
||||||
|
|
||||||
#if !defined(SIMU)
|
#if !defined(SIMU)
|
||||||
|
// TODO move the SIMU audio in this task
|
||||||
|
audioTaskId = CoCreateTask(audioTask, NULL, 7, &audioStack.stack[AUDIO_STACK_SIZE-1], AUDIO_STACK_SIZE);
|
||||||
|
#endif
|
||||||
audioMutex = CoCreateMutex();
|
audioMutex = CoCreateMutex();
|
||||||
mixerMutex = CoCreateMutex();
|
mixerMutex = CoCreateMutex();
|
||||||
#endif
|
|
||||||
|
|
||||||
CoStartOS();
|
CoStartOS();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !defined(SIMU)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue