diff --git a/radio/src/dmafifo.h b/radio/src/dmafifo.h index 74226d1d8..8fa651432 100644 --- a/radio/src/dmafifo.h +++ b/radio/src/dmafifo.h @@ -27,7 +27,7 @@ template class DMAFifo { public: - DMAFifo(DMA_Stream_TypeDef * stream): + explicit DMAFifo(DMA_Stream_TypeDef * stream): stream(stream), ridx(0) { diff --git a/radio/src/rtos.h b/radio/src/rtos.h index 6e42ebf30..0c3cf4ee5 100644 --- a/radio/src/rtos.h +++ b/radio/src/rtos.h @@ -22,6 +22,7 @@ #define _RTOS_H_ #include "definitions.h" +#include "board.h" #ifdef __cplusplus extern "C++" { @@ -155,7 +156,7 @@ template } #endif - #define RTOS_MS_PER_TICK ((CFG_CPU_FREQ / CFG_SYSTICK_FREQ) / (CFG_CPU_FREQ / 1000)) // RTOS timer tick length in ms (currently 2) + #define RTOS_MS_PER_TICK ((CPU_FREQ / CFG_SYSTICK_FREQ) / (CPU_FREQ / 1000)) // RTOS timer tick length in ms (currently 2) typedef OS_TID RTOS_TASK_HANDLE; typedef OS_MutexID RTOS_MUTEX_HANDLE; diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index 26db35d53..20f5cfd0c 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -148,11 +148,11 @@ OpenTxSim::~OpenTxSim() { TRACE("OpenTxSim::~OpenTxSim()"); - StopSimu(); - StopAudioThread(); + simuStop(); + stopAudioThread(); #if defined(EEPROM) - StopEepromThread(); + stopEepromThread(); #endif delete bmp; @@ -581,10 +581,10 @@ int main(int argc, char ** argv) simuInit(); #if defined(EEPROM) - StartEepromThread(argc >= 2 ? argv[1] : "eeprom.bin"); + startEepromThread(argc >= 2 ? argv[1] : "eeprom.bin"); #endif - StartAudioThread(); - StartSimu(false, argc >= 3 ? argv[2] : 0, argc >= 4 ? argv[3] : 0); + startAudioThread(); + simuStart(false, argc >= 3 ? argv[2] : 0, argc >= 4 ? argv[3] : 0); return application.run(); } diff --git a/radio/src/targets/common/arm/stm32/CMakeLists.txt b/radio/src/targets/common/arm/stm32/CMakeLists.txt index e8d9e49af..5593f5e5a 100644 --- a/radio/src/targets/common/arm/stm32/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/CMakeLists.txt @@ -32,7 +32,7 @@ set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ../common/arm/stm32/rtc_driver.cpp ${AUX_SERIAL_DRIVER} - ../common/arm/stm32/delays.cpp + ../common/arm/stm32/delays_driver.cpp ../common/arm/stm32/usb_bsp.c ../common/arm/stm32/usbd_desc.c ../common/arm/stm32/usbd_usr.cpp diff --git a/radio/src/targets/common/arm/stm32/board_common.h b/radio/src/targets/common/arm/stm32/board_common.h index 0ead6ffbd..dc5f0706f 100644 --- a/radio/src/targets/common/arm/stm32/board_common.h +++ b/radio/src/targets/common/arm/stm32/board_common.h @@ -69,6 +69,7 @@ #include "stm32f2xx_flash.h" #include "stm32f2xx_dbgmcu.h" #include "misc.h" + #include "dwt.h" // the old ST library that we use does not define DWT register for STM32F2xx #endif #if __clang__ @@ -127,13 +128,28 @@ static inline bool isVBatBridgeEnabled() } // Delays driver +#define SYSTEM_TICKS_1MS ((CPU_FREQ + 500) / 1000) +#define SYSTEM_TICKS_1US ((CPU_FREQ + 500000) / 1000000) +#define SYSTEM_TICKS_01US ((CPU_FREQ + 5000000) / 10000000) + #ifdef __cplusplus extern "C" { #endif -void delaysInit(void); -void delay_01us(uint16_t nb); -void delay_us(uint16_t nb); -void delay_ms(uint32_t ms); + +inline uint32_t ticksNow() +{ +#if defined(SIMU) + return 0; +#else + return DWT->CYCCNT; +#endif +} + +void delaysInit(); +void delay_01us(uint32_t count); +void delay_us(uint32_t count); +void delay_ms(uint32_t count); + #ifdef __cplusplus } #endif diff --git a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt index c750e9f5a..17a18dbcc 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt +++ b/radio/src/targets/common/arm/stm32/bootloader/CMakeLists.txt @@ -78,7 +78,7 @@ set(BOOTLOADER_SRC ../../../../../targets/${TARGET_DIR}/bootloader/boot_menu.cpp ../usbd_usr.cpp ../usbd_storage_msd.cpp - ../delays.cpp + ../delays_driver.cpp ../usbd_desc.c ../usb_bsp.c ../usb_driver.cpp diff --git a/radio/src/targets/common/arm/stm32/delays.cpp b/radio/src/targets/common/arm/stm32/delays.cpp deleted file mode 100644 index c8eb8a3af..000000000 --- a/radio/src/targets/common/arm/stm32/delays.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) OpenTX - * - * Based on code named - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x - * gruvin9x - http://code.google.com/p/gruvin9x - * - * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include "board.h" -#if defined(STM32F2) - #include "dwt.h" // the old ST library that we use does not define DWT register for STM32F2xx -#endif - -#define SYSTEM_TICKS_1US ((CFG_CPU_FREQ + 500000) / 1000000) // number of system ticks in 1us -#define SYSTEM_TICKS_01US ((CFG_CPU_FREQ + 5000000) / 10000000) // number of system ticks in 0.1us (rounding needed for sys frequencies that are not multiple of 10MHz) - -void delaysInit(void) -{ - CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; - DWT->CYCCNT = 0; - DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; -} - -void delay_01us(uint16_t nb) -{ - volatile uint32_t dwtStart = DWT->CYCCNT; - volatile uint32_t dwtTotal = (SYSTEM_TICKS_01US * nb) - 10; - while ((DWT->CYCCNT - dwtStart) < dwtTotal); -} - -void delay_us(uint16_t nb) -{ - volatile uint32_t dwtStart = DWT->CYCCNT; - volatile uint32_t dwtTotal = (SYSTEM_TICKS_1US * nb) - 10; - while ((DWT->CYCCNT - dwtStart) < dwtTotal); -} - -void delay_ms(uint32_t ms) -{ - while (ms--) { - delay_us(1000); - } -} diff --git a/radio/src/targets/common/arm/stm32/delays_driver.cpp b/radio/src/targets/common/arm/stm32/delays_driver.cpp new file mode 100644 index 000000000..894797a23 --- /dev/null +++ b/radio/src/targets/common/arm/stm32/delays_driver.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) OpenTX + * + * Based on code named + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "board.h" + +void delaysInit() +{ + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; + DWT->CYCCNT = 0; + DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk; +} + +void delay_01us(uint32_t count) +{ + volatile uint32_t dwtStart = ticksNow(); + volatile uint32_t dwtTotal = (SYSTEM_TICKS_01US * count) - 10; + while ((ticksNow() - dwtStart) < dwtTotal); +} + +void delay_us(uint32_t count) +{ + volatile uint32_t dwtStart = ticksNow(); + volatile uint32_t dwtTotal = (SYSTEM_TICKS_1US * count) - 10; + while ((ticksNow() - dwtStart) < dwtTotal); +} + +void delay_1ms() +{ + volatile uint32_t dwtStart = ticksNow(); + volatile uint32_t dwtTotal = SYSTEM_TICKS_1MS - 10; + while ((ticksNow() - dwtStart) < dwtTotal); +} + +void delay_ms(uint32_t count) +{ + while (count--) { + delay_1ms(); + } +} diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 545805e93..078144d0b 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -123,15 +123,6 @@ uint32_t sdMounted(); #define SD_CARD_PRESENT() true #endif -#if defined(DISK_CACHE) -#include "FatFs/diskio.h" -DRESULT __disk_read(BYTE drv, BYTE * buff, DWORD sector, UINT count); -DRESULT __disk_write(BYTE drv, const BYTE * buff, DWORD sector, UINT count); -#else -#define __disk_read disk_read -#define __disk_write disk_write -#endif - // Flash Write driver #define FLASH_PAGESIZE 256 void unlockFlash(); @@ -658,13 +649,13 @@ void bluetoothWriteWakeup(); uint8_t bluetoothIsWriting(); void bluetoothDisable(); -#if defined(__cplusplus) -#include "fifo.h" -#include "dmafifo.h" -extern DMAFifo<512> telemetryFifo; -typedef DMAFifo<32> AuxSerialRxFifo; -extern AuxSerialRxFifo auxSerialRxFifo; -extern volatile uint32_t externalModulePort; -#endif +//#if defined(__cplusplus) +//#include "fifo.h" +//#include "dmafifo.h" +//extern DMAFifo<512> telemetryFifo; +//typedef DMAFifo<32> AuxSerialRxFifo; +//extern AuxSerialRxFifo auxSerialRxFifo; +//extern volatile uint32_t externalModulePort; +//#endif #endif // _BOARD_H_ diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index b3a34ddd8..b7573a7ab 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -21,6 +21,8 @@ #ifndef _HAL_H_ #define _HAL_H_ +#define CPU_FREQ 168000000 + // Keys #define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_GPIOH | RCC_AHB1Periph_GPIOI | RCC_AHB1Periph_GPIOJ) #if defined(PCBX12S) diff --git a/radio/src/targets/nv14/board.h b/radio/src/targets/nv14/board.h index 074d5b258..36a26513c 100644 --- a/radio/src/targets/nv14/board.h +++ b/radio/src/targets/nv14/board.h @@ -23,8 +23,8 @@ #include "../definitions.h" #include "../opentx_constants.h" -#include "board_common.h" #include "hal.h" +#include "board_common.h" #if !defined(LUA_EXPORT_GENERATION) #include "stm32f4xx_sdio.h" @@ -71,18 +71,6 @@ void boardOff(); void init2MhzTimer(); void init5msTimer(); -// Delays driver -#ifdef __cplusplus -extern "C" { -#endif -void delaysInit(); -void delay_01us(uint16_t nb); -void delay_us(uint16_t nb); -void delay_ms(uint32_t ms); -#ifdef __cplusplus -} -#endif - // CPU Unique ID #define LEN_CPU_UID (3*8+2) void getCPUUniqueID(char * s); @@ -110,15 +98,6 @@ uint32_t sdMounted(); #define SD_CARD_PRESENT() true #endif -#if defined(DISK_CACHE) -#include "diskio.h" -DRESULT __disk_read(BYTE drv, BYTE * buff, DWORD sector, UINT count); -DRESULT __disk_write(BYTE drv, const BYTE * buff, DWORD sector, UINT count); -#else -#define __disk_read disk_read -#define __disk_write disk_write -#endif - // Flash Write driver #define FLASH_PAGESIZE 256 void unlockFlash(); @@ -373,7 +352,6 @@ void adcInit(); void adcRead(); uint16_t getAnalogValue(uint8_t index); uint16_t getBatteryVoltage(); // returns current battery voltage in 10mV steps -uint16_t getBattery2Voltage(); // returns current battery voltage in 10mV steps #define BATTERY_WARN 36 // 3.6V #define BATTERY_MIN 35 // 3.5V diff --git a/radio/src/targets/nv14/hal.h b/radio/src/targets/nv14/hal.h index 977ed66ba..516eefaeb 100644 --- a/radio/src/targets/nv14/hal.h +++ b/radio/src/targets/nv14/hal.h @@ -21,6 +21,8 @@ #ifndef _HAL_H_ #define _HAL_H_ +#define CPU_FREQ 168000000 + /* Timers Allocation: * TIM1 = Haptic * TIM4 = Trainer diff --git a/radio/src/targets/simu/opentxsimulator.cpp b/radio/src/targets/simu/opentxsimulator.cpp index b4ec95e43..5cf4fe52b 100644 --- a/radio/src/targets/simu/opentxsimulator.cpp +++ b/radio/src/targets/simu/opentxsimulator.cpp @@ -126,9 +126,9 @@ void OpenTxSimulator::start(const char * filename, bool tests) QMutexLocker lckr(&m_mtxSimuMain); QMutexLocker slckr(&m_mtxSettings); - StartEepromThread(filename); - StartAudioThread(volumeGain); - StartSimu(tests, simuSdDirectory.toLatin1().constData(), simuSettingsDirectory.toLatin1().constData()); + startEepromThread(filename); + startAudioThread(volumeGain); + simuStart(tests, simuSdDirectory.toLatin1().constData(), simuSettingsDirectory.toLatin1().constData()); emit started(); QTimer::singleShot(0, this, SLOT(run())); // old style for Qt < 5.4 @@ -143,9 +143,9 @@ void OpenTxSimulator::stop() setStopRequested(true); QMutexLocker lckr(&m_mtxSimuMain); - StopSimu(); - StopAudioThread(); - StopEepromThread(); + simuStop(); + stopAudioThread(); + stopEepromThread(); emit stopped(); } diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index c10b0c479..9b04ff266 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -52,6 +52,25 @@ USART_TypeDef Usart0, Usart1, Usart2, Usart3, Usart4; SysTick_Type systick; ADC_Common_TypeDef adc; RTC_TypeDef rtc; +void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { } +void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) { } +void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState) { } +void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { } +FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) { return RESET; } +uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) { return 0; } +void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) { } +void DMA_DeInit(DMA_Stream_TypeDef* DMAy_Streamx) { } +void DMA_Init(DMA_Stream_TypeDef* DMAy_Streamx, DMA_InitTypeDef* DMA_InitStruct) { } +void DMA_ITConfig(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT, FunctionalState NewState) { } +void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) { } +void DMA_Cmd(DMA_Stream_TypeDef* DMAy_Streamx, FunctionalState NewState) { } +void lcdCopy(void * dest, void * src); +FlagStatus DMA_GetFlagStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_FLAG) { return RESET; } +ITStatus DMA_GetITStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { return RESET; } +void DMA_ClearITPendingBit(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { } +void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) { } +void UART3_Configure(uint32_t baudrate, uint32_t masterClock) { } +void NVIC_Init(NVIC_InitTypeDef * NVIC_InitStruct) { } #else Pio Pioa, Piob, Pioc; Pmc pmc; @@ -175,7 +194,7 @@ void simuSetSwitch(uint8_t swtch, int8_t state) switchesStates[swtch] = state; } -void StartSimu(bool tests, const char * sdPath, const char * settingsPath) +void simuStart(bool tests, const char * sdPath, const char * settingsPath) { if (simu_running) return; @@ -224,7 +243,7 @@ void StartSimu(bool tests, const char * sdPath, const char * settingsPath) #endif } -void StopSimu() +void simuStop() { if (!simu_running) return; @@ -379,12 +398,12 @@ void * audioThread(void *) return nullptr; } -void StartAudioThread(int volumeGain) +void startAudioThread(int volumeGain) { simuAudio.leftoverLen = 0; simuAudio.threadRunning = true; simuAudio.volumeGain = volumeGain; - TRACE_SIMPGMSPACE("StartAudioThread(%d)", volumeGain); + TRACE_SIMPGMSPACE("startAudioThread(%d)", volumeGain); setScaledVolume(VOLUME_LEVEL_DEF); pthread_attr_t attr; @@ -398,7 +417,7 @@ void StartAudioThread(int volumeGain) #endif } -void StopAudioThread() +void stopAudioThread() { simuAudio.threadRunning = false; pthread_join(simuAudio.threadPid, nullptr); diff --git a/radio/src/targets/simu/simpgmspace.h b/radio/src/targets/simu/simpgmspace.h index 9ae195dc2..6ce99257b 100644 --- a/radio/src/targets/simu/simpgmspace.h +++ b/radio/src/targets/simu/simpgmspace.h @@ -240,25 +240,27 @@ extern char * main_thread_error; inline void getADC() { } uint64_t simuTimerMicros(void); - -void simuInit(); -void StartSimu(bool tests=true, const char * sdPath = 0, const char * settingsPath = 0); -void StopSimu(); -bool simuIsRunning(); uint8_t simuSleep(uint32_t ms); // returns true if thread shutdown requested void simuSetKey(uint8_t key, bool state); void simuSetTrim(uint8_t trim, bool state); void simuSetSwitch(uint8_t swtch, int8_t state); -void StartEepromThread(const char *filename="eeprom.bin"); -void StopEepromThread(); +#if defined(__cplusplus) +void simuInit(); +void simuStart(bool tests = true, const char * sdPath = nullptr, const char * settingsPath = nullptr); +void simuStop(); +bool simuIsRunning(); +void startEepromThread(const char * filename = "eeprom.bin"); +void stopEepromThread(); + #if defined(SIMU_AUDIO) - void StartAudioThread(int volumeGain = 10); - void StopAudioThread(void); + void startAudioThread(int volumeGain = 10); + void stopAudioThread(void); #else - #define StartAudioThread(dummy) - #define StopAudioThread() + #define startAudioThread(dummy) + #define stopAudioThread() +#endif #endif void simuMain(); @@ -269,7 +271,6 @@ void simuMain(); #define USART_ClearFlag(...) #if defined(STM32) -inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { } #define TIM_DeInit(...) #define TIM_SetCompare2(...) #define TIM_ClearFlag(...) @@ -280,27 +281,10 @@ inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { #define GPIO_ReadInputDataBit(GPIOx, pin) (GPIOx->BSRRL & pin) #define RCC_AHB1PeriphClockCmd(...) #define RCC_APB2PeriphClockCmd(...) -inline void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) { } -inline void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState) { } -inline void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState) { } -inline FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG) { return RESET; } -inline uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) { return 0; } -inline void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data) { } -inline void DMA_DeInit(DMA_Stream_TypeDef* DMAy_Streamx) { } -inline void DMA_Init(DMA_Stream_TypeDef* DMAy_Streamx, DMA_InitTypeDef* DMA_InitStruct) { } -inline void DMA_ITConfig(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT, FunctionalState NewState) { } -inline void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct) { } -inline void DMA_Cmd(DMA_Stream_TypeDef* DMAy_Streamx, FunctionalState NewState) { } -void lcdCopy(void * dest, void * src); -inline FlagStatus DMA_GetFlagStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_FLAG) { return RESET; } -inline ITStatus DMA_GetITStatus(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { return RESET; } -inline void DMA_ClearITPendingBit(DMA_Stream_TypeDef* DMAy_Streamx, uint32_t DMA_IT) { } -inline void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState) { } -inline void UART3_Configure(uint32_t baudrate, uint32_t masterClock) { } -inline void NVIC_Init(NVIC_InitTypeDef *) { } #endif -inline void delay_01us(int dummy) { } +// inline void delay_01us(uint32_t dummy) { } + #define configure_pins(...) #if defined(SDCARD) && !defined(SKIP_FATFS_DECLARATION) && !defined(SIMU_DISKIO) diff --git a/radio/src/targets/simu/simueeprom.cpp b/radio/src/targets/simu/simueeprom.cpp index ad9dedc13..7991e00bb 100644 --- a/radio/src/targets/simu/simueeprom.cpp +++ b/radio/src/targets/simu/simueeprom.cpp @@ -139,7 +139,7 @@ void eepromWriteBlock(uint8_t * buffer, size_t address, size_t size) pthread_t eeprom_thread_pid; -void StartEepromThread(const char * filename) +void startEepromThread(const char * filename) { eepromFile = filename; if (eepromFile) { @@ -160,7 +160,7 @@ void StartEepromThread(const char * filename) RTOS_CREATE_TASK(eeprom_thread_pid, eeprom_thread_function, "eeprom"); } -void StopEepromThread() +void stopEepromThread() { eeprom_thread_running = false; sem_post(eeprom_write_sem); diff --git a/radio/src/targets/sky9x/board.h b/radio/src/targets/sky9x/board.h index c9bcad31b..e64069aa8 100644 --- a/radio/src/targets/sky9x/board.h +++ b/radio/src/targets/sky9x/board.h @@ -28,6 +28,8 @@ #include "audio_driver.h" #include "../opentx_constants.h" +#define CPU_FREQ 36000000 + extern uint16_t ResetReason; #define BOOTLOADER_SIZE 0x8000 diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index bc9f762e2..4189d1fcd 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -24,8 +24,8 @@ #include #include "definitions.h" #include "opentx_constants.h" -#include "board_common.h" #include "hal.h" +#include "board_common.h" #if defined(ROTARY_ENCODER_NAVIGATION) // Rotary Encoder driver diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 9787d28f1..a83d230c1 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -21,6 +21,12 @@ #ifndef _HAL_H_ #define _HAL_H_ +#if defined(STM32F4) + #define CPU_FREQ 168000000 +#else + #define CPU_FREQ 120000000 +#endif + // Keys #if defined(PCBX9E) #define KEYS_GPIO_REG_MENU GPIOD->IDR diff --git a/radio/src/tests/gtests.cpp b/radio/src/tests/gtests.cpp index 77fa35317..c9fbd84f2 100644 --- a/radio/src/tests/gtests.cpp +++ b/radio/src/tests/gtests.cpp @@ -159,7 +159,7 @@ int main(int argc, char **argv) { QCoreApplication app(argc, argv); simuInit(); - StartEepromThread(nullptr); + startEepromThread(nullptr); #if defined(EEPROM_SIZE) eeprom = (uint8_t *)malloc(EEPROM_SIZE); #endif diff --git a/radio/src/thirdparty/CoOS/OsConfig.h b/radio/src/thirdparty/CoOS/OsConfig.h index 341f262d0..3adcdbc61 100644 --- a/radio/src/thirdparty/CoOS/OsConfig.h +++ b/radio/src/thirdparty/CoOS/OsConfig.h @@ -71,17 +71,6 @@ Idle task stack size(word). #define CFG_IDLE_STACK_SIZE (25) #endif -/*!< -System frequency (Hz). -*/ -#if defined(STM32F4) -#define CFG_CPU_FREQ (168000000) -#elif defined(STM32) -#define CFG_CPU_FREQ (120000000) -#else -#define CFG_CPU_FREQ (36000000) // TODO check if really correct for sky9x? -#endif - /*!< systick frequency (Hz). */ diff --git a/radio/src/thirdparty/CoOS/portable/OsArch.h b/radio/src/thirdparty/CoOS/portable/OsArch.h index 4e20b52a3..ea778e2f4 100644 --- a/radio/src/thirdparty/CoOS/portable/OsArch.h +++ b/radio/src/thirdparty/CoOS/portable/OsArch.h @@ -42,10 +42,11 @@ #ifndef _CPU_H #define _CPU_H +#include "board.h" #define NVIC_ST_CTRL (*((volatile U32 *)0xE000E010)) #define NVIC_ST_RELOAD (*((volatile U32 *)0xE000E014)) -#define RELOAD_VAL ((U32)(( (U32)CFG_CPU_FREQ) / (U32)CFG_SYSTICK_FREQ) -1) +#define RELOAD_VAL ((U32)(( (U32)CPU_FREQ) / (U32)CFG_SYSTICK_FREQ) -1) /*!< Initial System tick. */ #define InitSysTick() NVIC_ST_RELOAD = RELOAD_VAL; \ diff --git a/radio/src/thirdparty/FatFs/diskio.h b/radio/src/thirdparty/FatFs/diskio.h index c46ed78ce..871d0a0b9 100644 --- a/radio/src/thirdparty/FatFs/diskio.h +++ b/radio/src/thirdparty/FatFs/diskio.h @@ -5,12 +5,12 @@ #ifndef _DISKIO_DEFINED #define _DISKIO_DEFINED +#include "ff.h" + #ifdef __cplusplus extern "C" { #endif -#include "ff.h" - /* Status of Disk Functions */ typedef BYTE DSTATUS; @@ -34,6 +34,14 @@ DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count); DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count); DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); +#if defined(DISK_CACHE) +// #include "FatFs/diskio.h" +DRESULT __disk_read(BYTE drv, BYTE * buff, DWORD sector, UINT count); +DRESULT __disk_write(BYTE drv, const BYTE * buff, DWORD sector, UINT count); +#else +#define __disk_read disk_read +#define __disk_write disk_write +#endif /* Disk Status Bits (DSTATUS) */ diff --git a/radio/src/thirdparty/FatFs/ff.h b/radio/src/thirdparty/FatFs/ff.h index 9527faf0f..ad1101fce 100644 --- a/radio/src/thirdparty/FatFs/ff.h +++ b/radio/src/thirdparty/FatFs/ff.h @@ -22,12 +22,12 @@ #ifndef FF_DEFINED #define FF_DEFINED 86604 /* Revision ID */ +#include "ffconf.h" /* FatFs configuration options */ + #ifdef __cplusplus extern "C" { #endif -#include "ffconf.h" /* FatFs configuration options */ - #if FF_DEFINED != FFCONF_DEF #error Wrong configuration file (ffconf.h). #endif diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index 05cd2ae9d..d0634734b 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit 05cd2ae9dc309b7dc69369b3ed0953823e6c9194 +Subproject commit d0634734b4a4edf7505368333daff0a118cb2f17