1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-20 14:55:13 +03:00

Switch to CMake - Taranis bootloader added. Tests done.

This commit is contained in:
Bertrand Songis 2015-12-23 18:39:02 +01:00
parent 356faefb6d
commit d02d0f26db
14 changed files with 215 additions and 120 deletions

View file

@ -28,6 +28,7 @@ add_subdirectory(translations)
add_subdirectory(bitmaps) add_subdirectory(bitmaps)
add_subdirectory(lua) add_subdirectory(lua)
set(EEPROM_VARIANT 0)
set(GVARS_VARIANT 1) set(GVARS_VARIANT 1)
set(FRSKY_VARIANT 2) set(FRSKY_VARIANT 2)
set(3POS_VARIANT 4) set(3POS_VARIANT 4)
@ -93,6 +94,7 @@ if(PCB STREQUAL HORUS)
STM32F4xx_StdPeriph_Driver/src/stm32f4xx_dma2d.c STM32F4xx_StdPeriph_Driver/src/stm32f4xx_dma2d.c
) )
elseif(PCB STREQUAL TARANIS) elseif(PCB STREQUAL TARANIS)
option(PCBREV "PCB Revision" REVPLUS)
option(SHUTDOWN_CONFIRMATION "Shutdown confirmation" OFF) option(SHUTDOWN_CONFIRMATION "Shutdown confirmation" OFF)
option(LCD_DUAL_BUFFER "Dual LCD Buffer" OFF) option(LCD_DUAL_BUFFER "Dual LCD Buffer" OFF)
option(TARANIS_INTERNAL_PPM "Taranis internal module hack to output PPM" OFF) option(TARANIS_INTERNAL_PPM "Taranis internal module hack to output PPM" OFF)
@ -132,6 +134,7 @@ elseif(PCB STREQUAL TARANIS)
set(SRC ${SRC} bmp.cpp) set(SRC ${SRC} bmp.cpp)
set(GUI_SRC ${GUI_SRC} menu_general_diagkeys.cpp menu_general_diaganas.cpp menu_general_hardware.cpp view_channels.cpp view_telemetry.cpp view_text.cpp view_about.cpp) set(GUI_SRC ${GUI_SRC} menu_general_diagkeys.cpp menu_general_diaganas.cpp menu_general_hardware.cpp view_channels.cpp view_telemetry.cpp view_text.cpp view_about.cpp)
set(TARGET_SRC ${TARGET_SRC} board_taranis.cpp rtc_driver.cpp) set(TARGET_SRC ${TARGET_SRC} board_taranis.cpp rtc_driver.cpp)
set(FIRMWARE_SRC ${FIRMWARE_SRC} loadboot.cpp)
set(FIRMWARE_TARGET_SRC set(FIRMWARE_TARGET_SRC
${FIRMWARE_TARGET_SRC} ${FIRMWARE_TARGET_SRC}
lcd_driver.cpp lcd_driver.cpp
@ -154,7 +157,6 @@ elseif(PCB STREQUAL 9X OR PCB STREQUAL 9XR)
set(MCU atmega64) set(MCU atmega64)
string(TOLOWER ${PCB} FLAVOUR) string(TOLOWER ${PCB} FLAVOUR)
set(EEPROM_VARIANT_NEEDED ON) set(EEPROM_VARIANT_NEEDED ON)
set(EEPROM_VARIANT 0)
set(EEPROM EEPROM_RLC) set(EEPROM EEPROM_RLC)
set(GUI_DIR 9x) set(GUI_DIR 9x)
set(TARGET_DIR 9x) set(TARGET_DIR 9x)
@ -276,6 +278,8 @@ endif()
if(ARCH STREQUAL ARM) if(ARCH STREQUAL ARM)
option(TIMERS "Timers count" 2) option(TIMERS "Timers count" 2)
option(CLI "Command Line Interface" OFF)
option(DEBUG "Debug mode" OFF)
option(SPORT_FILE_LOG "S.PORT Logs on SD card" OFF) option(SPORT_FILE_LOG "S.PORT Logs on SD card" OFF)
option(TRACE_SD_CARD "Traces SD enabled" OFF) option(TRACE_SD_CARD "Traces SD enabled" OFF)
option(TRACE_FATFS "Traces FatFS enabled" OFF) option(TRACE_FATFS "Traces FatFS enabled" OFF)
@ -292,22 +296,31 @@ if(ARCH STREQUAL ARM)
endif() endif()
if(TRACE_SD_CARD) if(TRACE_SD_CARD)
add_definitions(-DTRACE_SD_CARD) add_definitions(-DTRACE_SD_CARD)
# DEBUG = YES set(DEBUG ON)
# DEBUG_TRACE_BUFFER = YES set(DEBUG_TRACE_BUFFER ON)
endif() endif()
if(TRACE_FATFS) if(TRACE_FATFS)
add_definitions(-DTRACE_FATFS) add_definitions(-DTRACE_FATFS)
# DEBUG = YES set(DEBUG ON)
# DEBUG_TRACE_BUFFER = YES set(DEBUG_TRACE_BUFFER ON)
endif() endif()
if(TRACE_AUDIO) if(TRACE_AUDIO)
add_definitions(-DTRACE_AUDIO) add_definitions(-DTRACE_AUDIO)
# DEBUG = YES set(DEBUG ON)
# DEBUG_TRACE_BUFFER = YES set(DEBUG_TRACE_BUFFER ON)
endif() endif()
if(DEBUG_TRACE_BUFFER) if(DEBUG_TRACE_BUFFER)
add_definitions(-DDEBUG_TRACE_BUFFER) add_definitions(-DDEBUG_TRACE_BUFFER)
endif() endif()
if(CLI)
add_definitions(-DCLI)
set(SRC ${SRC} cli.cpp dump.cpp)
elseif(DEBUG)
set(SRC ${SRC} dump.cpp)
endif()
if(DEBUG)
add_definitions(-DDEBUG)
endif()
if(SUPPORT_D16_EU_ONLY) if(SUPPORT_D16_EU_ONLY)
add_definitions(-DMODULE_D16_EU_ONLY_SUPPORT) add_definitions(-DMODULE_D16_EU_ONLY_SUPPORT)
endif() endif()
@ -409,7 +422,7 @@ else()
include_directories(${THIRDPARTY} targets/common_avr) include_directories(${THIRDPARTY} targets/common_avr)
set(SRC ${SRC} telemetry/mavlink.cpp targets/common_avr/serial_driver.cpp) set(SRC ${SRC} telemetry/mavlink.cpp targets/common_avr/serial_driver.cpp)
set(GUI_SRC ${GUI_SRC} view_mavlink.cpp) set(GUI_SRC ${GUI_SRC} view_mavlink.cpp)
MATH(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${MAVLINK_VARIANT}) math(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${MAVLINK_VARIANT})
elseif(EXT STREQUAL TELEMETREZ) elseif(EXT STREQUAL TELEMETREZ)
add_definitions(-DTELEMETREZ) add_definitions(-DTELEMETREZ)
set(SRC ${SRC} telemetry/jeti.cpp) set(SRC ${SRC} telemetry/jeti.cpp)
@ -442,7 +455,7 @@ else()
add_definitions(-DVARIO) add_definitions(-DVARIO)
set(SRC ${SRC} vario.cpp) set(SRC ${SRC} vario.cpp)
endif() endif()
MATH(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${FRSKY_VARIANT}) math(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${FRSKY_VARIANT})
endif() endif()
add_definitions(-DTIMERS=2) add_definitions(-DTIMERS=2)
if(EEPROM_VARIANT_NEEDED) if(EEPROM_VARIANT_NEEDED)
@ -538,7 +551,7 @@ endif()
if(GVARS) if(GVARS)
add_definitions(-DGVARS) add_definitions(-DGVARS)
MATH(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${GVARS_VARIANT}) math(EXPR EEPROM_VARIANT ${EEPROM_VARIANT}+${GVARS_VARIANT})
endif() endif()
if(FAI STREQUAL YES) if(FAI STREQUAL YES)
@ -656,13 +669,30 @@ if(ARCH STREQUAL ARM)
set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -o <OBJECT> <SOURCE>") set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -o <OBJECT> <SOURCE>")
set(COMMON_FLAGS "-mcpu=${MCU} -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms=opentx.lst -DRUN_FROM_FLASH=1 -O${OPT} -gdwarf-2 -DHSE_VALUE=${HSE_VALUE} -fno-exceptions -fdata-sections -ffunction-sections ${WARNING_FLAGS}") set(COMMON_FLAGS "-mcpu=${MCU} -mthumb -fomit-frame-pointer -fverbose-asm -Wa,-ahlms=opentx.lst -O${OPT} -gdwarf-2 -DHSE_VALUE=${HSE_VALUE} -fno-exceptions -fdata-sections -ffunction-sections ${WARNING_FLAGS}")
set(CMAKE_C_FLAGS "${COMMON_FLAGS} -Wimplicit") set(CMAKE_C_FLAGS "${COMMON_FLAGS} -Wimplicit")
set(CMAKE_CXX_FLAGS "${COMMON_FLAGS}") set(CMAKE_CXX_FLAGS "${COMMON_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "-mcpu=${MCU} -mthumb -nostartfiles -lm -T${RADIO_SRC_DIRECTORY}/${LINKER_SCRIPT} -Wl,-Map=opentx.map,--cref,--no-warn-mismatch,--gc-sections") set(CMAKE_EXE_LINKER_FLAGS "-mcpu=${MCU} -mthumb -nostartfiles -lm -T${RADIO_SRC_DIRECTORY}/${LINKER_SCRIPT} -Wl,-Map=opentx.map,--cref,--no-warn-mismatch,--gc-sections")
add_executable(firmware.bin ${SRC}) if(PCB STREQUAL TARANIS)
add_dependencies(firmware.bin ${FIRMWARE_DEPENDENCIES}) add_subdirectory(targets/${TARGET_DIR}/bootloader)
add_custom_command(
OUTPUT bootloader.bin bootloader.lbm
COMMAND arm-none-eabi-objcopy -O binary targets/${TARGET_DIR}/bootloader/bootloader.elf bootloader.bin
COMMAND python ${RADIO_DIRECTORY}/util/bin2lbm.py bootloader.bin bootloader.lbm
DEPENDS bootloader.elf
)
add_custom_target(bootloader DEPENDS bootloader.lbm)
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} bootloader)
endif()
add_executable(firmware.elf ${SRC} ${FIRMWARE_HEADERS})
add_dependencies(firmware.elf ${FIRMWARE_DEPENDENCIES})
add_custom_target(firmware.bin
COMMAND arm-none-eabi-objcopy -O binary firmware.elf firmware.bin
DEPENDS firmware.elf
)
else() else()
cmake_force_c_compiler(avr-gcc GNU) cmake_force_c_compiler(avr-gcc GNU)
cmake_force_cxx_compiler(avr-gcc GNU) cmake_force_cxx_compiler(avr-gcc GNU)
@ -688,7 +718,7 @@ else()
) )
add_custom_target(firmware.bin add_custom_target(firmware.bin
COMMAND avr-objcopy -O binary firmware.elf firmware.hex COMMAND avr-objcopy -O binary firmware.elf firmware.bin
DEPENDS firmware.elf DEPENDS firmware.elf
) )
@ -696,7 +726,6 @@ else()
COMMAND avr-size --mcu=${MCU} --format=avr firmware.elf COMMAND avr-size --mcu=${MCU} --format=avr firmware.elf
DEPENDS firmware.hex DEPENDS firmware.hex
) )
endif() endif()
add_custom_target(firmware.lss add_custom_target(firmware.lss

View file

@ -1,4 +1,4 @@
add_bitmaps_target(taranis_xbm_1bit ${RADIO_SRC_DIRECTORY}/bitmaps/*.xbm 128 1bit) add_bitmaps_target(taranis_xbm ${RADIO_SRC_DIRECTORY}/bitmaps/*.xbm 128 1bit)
add_bitmaps_target(taranis_fonts_1bit ${RADIO_SRC_DIRECTORY}/fonts/std/*.png 128 "") add_bitmaps_target(taranis_fonts ${RADIO_SRC_DIRECTORY}/fonts/std/*.png 128 "")
add_bitmaps_target(taranis_bitmaps ${RADIO_SRC_DIRECTORY}/bitmaps/taranis/*.png 212 4bits) add_bitmaps_target(taranis_bitmaps ${RADIO_SRC_DIRECTORY}/bitmaps/taranis/*.png 212 4bits)
add_dependencies(taranis_bitmaps taranis_fonts_1bit taranis_xbm_1bit) add_dependencies(taranis_bitmaps taranis_fonts taranis_xbm)

View file

@ -45,9 +45,7 @@
* *
****************************************************************************/ ****************************************************************************/
#if !defined(SIMU) #include "opentx.h"
#include <stdint.h>
#if defined(PCBSKY9X) #if defined(PCBSKY9X)
#include "AT91SAM3S4.h" #include "AT91SAM3S4.h"
@ -188,4 +186,3 @@ void _bootStart()
} }
#endif #endif
#endif

View file

@ -975,74 +975,7 @@ void checkAll();
#include "sbus.h" #include "sbus.h"
#endif #endif
extern void backlightOn(); void backlightOn();
enum Analogs {
STICK1,
STICK2,
STICK3,
STICK4,
#if defined(PCBHORUS)
POT1,
POT2,
POT3,
POT_LAST=POT3,
SLIDER1,
SLIDER2,
SLIDER3,
SLIDER4,
#elif defined(PCBFLAMENCO)
POT1,
POT2,
POT_LAST = POT2,
SLIDER1,
SLIDER2,
SWITCHES1,
SWITCHES2,
SWITCHES3,
SWITCHES4,
#elif defined(PCBTARANIS)
POT1,
POT2,
POT3,
#if defined(REV9E)
POT4,
POT_LAST = POT4,
#else
POT_LAST = POT3,
#endif
SLIDER1,
SLIDER2,
#if defined(REV9E)
SLIDER3,
SLIDER4,
#endif
#else
POT1,
POT2,
POT3,
POT_LAST = POT3,
#endif
#if defined(TELEMETRY_MOD_14051) || defined(TELEMETRY_MOD_14051_SWAPPED)
// When the mod is applied, ADC7 is connected to 14051's X pin and TX_VOLTAGE
// is connected to 14051's X0 pin (one of the multiplexed inputs). TX_VOLTAGE
// value is filled in by processMultiplexAna().
// This shifts TX_VOLTAGE from 7 to 8 and makes X14051 take the 7th position
// corresponding to ADC7.
X14051,
#endif
TX_VOLTAGE,
#if defined(PCBSKY9X) && !defined(REVA)
TX_CURRENT,
#endif
#if defined(PCBHORUS)
MOUSE1,
MOUSE2,
#endif
NUMBER_ANALOG
};
void checkBacklight(); void checkBacklight();
void doLoopCommonActions(); void doLoopCommonActions();

View file

@ -35,6 +35,27 @@
*/ */
// ADC driver // ADC driver
enum Analogs {
STICK1,
STICK2,
STICK3,
STICK4,
POT1,
POT2,
POT3,
POT_LAST = POT3,
#if defined(TELEMETRY_MOD_14051) || defined(TELEMETRY_MOD_14051_SWAPPED)
// When the mod is applied, ADC7 is connected to 14051's X pin and TX_VOLTAGE
// is connected to 14051's X0 pin (one of the multiplexed inputs). TX_VOLTAGE
// value is filled in by processMultiplexAna().
// This shifts TX_VOLTAGE from 7 to 8 and makes X14051 take the 7th position
// corresponding to ADC7.
X14051,
#endif
TX_VOLTAGE,
NUMBER_ANALOG
};
void adcInit(); void adcInit();
void adcPrepareBandgap(); void adcPrepareBandgap();
void getADC(); void getADC();

View file

@ -217,6 +217,25 @@ void watchdogInit(unsigned int duration);
#endif #endif
// ADC driver // ADC driver
enum Analogs {
STICK1,
STICK2,
STICK3,
STICK4,
POT1,
POT2,
POT3,
POT_LAST=POT3,
SLIDER1,
SLIDER2,
SLIDER3,
SLIDER4,
TX_VOLTAGE,
MOUSE1,
MOUSE2,
NUMBER_ANALOG
};
void adcInit(void); void adcInit(void);
void adcRead(void); void adcRead(void);
uint16_t getAnalogValue(uint32_t value); uint16_t getAnalogValue(uint32_t value);

View file

@ -228,6 +228,21 @@ void disable_dsm2(uint32_t port);
#define isBacklightEnable() (PWM->PWM_CH_NUM[0].PWM_CDTY != 100) #define isBacklightEnable() (PWM->PWM_CH_NUM[0].PWM_CDTY != 100)
// ADC driver // ADC driver
enum Analogs {
STICK1,
STICK2,
STICK3,
STICK4,
POT1,
POT2,
POT3,
POT_LAST = POT3,
TX_VOLTAGE,
#if !defined(REVA)
TX_CURRENT,
#endif
NUMBER_ANALOG
};
void adcInit(); void adcInit();
void adcRead(void); void adcRead(void);
inline uint16_t getAnalogValue(uint32_t value); inline uint16_t getAnalogValue(uint32_t value);

View file

@ -155,6 +155,7 @@ extern "C" {
#endif #endif
void delaysInit(void); void delaysInit(void);
void delay_01us(uint16_t nb); void delay_01us(uint16_t nb);
void delay(uint32_t ms);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
@ -250,8 +251,32 @@ void watchdogInit(unsigned int duration);
#endif #endif
// ADC driver // ADC driver
enum Analogs {
STICK1,
STICK2,
STICK3,
STICK4,
POT1,
POT2,
POT3,
#if defined(REV9E)
POT4,
POT_LAST = POT4,
#else
POT_LAST = POT3,
#endif
SLIDER1,
SLIDER2,
#if defined(REV9E)
SLIDER3,
SLIDER4,
#endif
TX_VOLTAGE,
NUMBER_ANALOG
};
void adcInit(void); void adcInit(void);
void adcRead(void); void adcRead(void);
extern uint16_t adcValues[NUMBER_ANALOG];
uint16_t getAnalogValue(uint32_t value); uint16_t getAnalogValue(uint32_t value);
#define BATT_SCALE 150 #define BATT_SCALE 150

View file

@ -0,0 +1,67 @@
if(PCBREV STREQUAL REV9E)
set(BOOTLOADER_SRC
${BOOTLOADER_SRC}
../system_stm32f4xx.c
../../../${STM32LIB_DIR}/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc_ride7/startup_stm32f40_41xxx.s
../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_rcc.c
../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_gpio.c
../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_spi.c
../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/stm32f4xx_i2c.c
../../../${STM32LIB_DIR}/STM32F4xx_StdPeriph_Driver/src/misc.c
)
else()
set(BOOTLOADER_SRC
${BOOTLOADER_SRC}
../system_stm32f2xx.c
../../../${STM32LIB_DIR}/CMSIS/Device/ST/STM32F2xx/Source/Templates/gcc_ride7/startup_stm32f2xx.s
../../../${STM32LIB_DIR}/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_rcc.c
../../../${STM32LIB_DIR}/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_gpio.c
../../../${STM32LIB_DIR}/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_spi.c
../../../${STM32LIB_DIR}/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_i2c.c
../../../${STM32LIB_DIR}/STM32F2xx_StdPeriph_Driver/src/misc.c
)
endif()
set(BOOTLOADER_SRC
${BOOTLOADER_SRC}
../../../gui/taranis/lcd.cpp
../../../gui/taranis/fonts.cpp
../../../keys.cpp
../../../strhelpers.cpp
../../../${STM32USB_DIR}/STM32_USB_OTG_Driver/src/usb_core.c
../../../${STM32USB_DIR}/STM32_USB_OTG_Driver/src/usb_dcd.c
../../../${STM32USB_DIR}/STM32_USB_OTG_Driver/src/usb_dcd_int.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Core/src/usbd_core.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Core/src/usbd_ioreq.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Core/src/usbd_req.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Class/msc/src/usbd_msc_data.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Class/msc/src/usbd_msc_scsi.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Class/msc/src/usbd_msc_bot.c
../../../${STM32USB_DIR}/STM32_USB_Device_Library/Class/msc/src/usbd_msc_core.c
../../../${FATFS_DIR}/ff.c
../../../${FATFS_DIR}/option/ccsbcs.c
../lcd_driver.cpp
../configure_pins.cpp
../keys_driver.cpp
../i2c_driver.cpp
../flash_driver.cpp
../diskio.cpp
../usbd_usr.cpp
../usbd_storage_msd.cpp
../delays.c
../usbd_desc.c
../aspi.c
../usb_bsp.c
../usb_driver.c
../pwr_driver.c
init.c
boot.cpp
)
remove_definitions(-DUSB_JOYSTICK -DUSB_SERIAL -DDEBUG)
add_definitions(-DBOOT -DUSB_MASS_STORAGE)
set(CMAKE_EXE_LINKER_FLAGS "-mcpu=${MCU} -mthumb -nostartfiles -lm -T${RADIO_SRC_DIRECTORY}/targets/taranis/stm32_ramboot.ld -Wl,-Map=bootloader.map,--cref,--no-warn-mismatch,--gc-sections")
add_executable(bootloader.elf ${BOOTLOADER_SRC})
add_dependencies(bootloader.elf taranis_fonts firmware_translations)

View file

@ -55,3 +55,10 @@ void delay_01us(uint16_t nb)
while(TIM13->CNT < nb); while(TIM13->CNT < nb);
TIM13->CR1 = 0x02; TIM13->CR1 = 0x02;
} }
void delay(uint32_t ms)
{
while(ms--) {
delay_01us(10000);
}
}

View file

@ -27,16 +27,6 @@
bool lcdInitFinished = false; bool lcdInitFinished = false;
void lcdInitFinish(); void lcdInitFinish();
/*
delaysInit() must be called before the first call to this function!
*/
static void Delay(uint32_t ms)
{
while(ms--) {
delay_01us(10000);
}
}
#if defined(REVPLUS) #if defined(REVPLUS)
// New hardware SPI driver for LCD // New hardware SPI driver for LCD
@ -71,7 +61,7 @@ void initLcdSpi()
static void LCD_Init() static void LCD_Init()
{ {
WriteCommand(0x2F); //Internal pump control WriteCommand(0x2F); //Internal pump control
Delay(20); delay(20);
WriteCommand(0x24); //Temperature compensation WriteCommand(0x24); //Temperature compensation
WriteCommand(0xE9); //set bias=1/10 WriteCommand(0xE9); //set bias=1/10
WriteCommand(0x81); //Set Vop WriteCommand(0x81); //Set Vop
@ -106,7 +96,7 @@ static void LCD_Init()
static void LCD_Init() static void LCD_Init()
{ {
AspiCmd(0x2B); //Panel loading set ,Internal VLCD. AspiCmd(0x2B); //Panel loading set ,Internal VLCD.
Delay(20); delay(20);
AspiCmd(0x25); //Temperature compensation curve definition: 0x25 = -0.05%/oC AspiCmd(0x25); //Temperature compensation curve definition: 0x25 = -0.05%/oC
AspiCmd(0xEA); //set bias=1/10 :Command table NO.27 AspiCmd(0xEA); //set bias=1/10 :Command table NO.27
AspiCmd(0x81); //Set Vop AspiCmd(0x81); //Set Vop
@ -349,7 +339,7 @@ void lcdOff()
to re-init LCD without any delay to re-init LCD without any delay
*/ */
AspiCmd(0xAE); //LCD sleep AspiCmd(0xAE); //LCD sleep
Delay(3); //wait for caps to drain delay(3); //wait for caps to drain
} }
/* /*
@ -357,7 +347,7 @@ void lcdOff()
soon as possible after the reset because LCD takes a lot of soon as possible after the reset because LCD takes a lot of
time to properly power-on. time to properly power-on.
Make sure that Delay() is functional before calling this function! Make sure that delay() is functional before calling this function!
*/ */
void lcdInit() void lcdInit()
{ {
@ -367,7 +357,7 @@ void lcdInit()
//reset LCD module //reset LCD module
LCD_RST_LOW(); LCD_RST_LOW();
Delay(1); // only 3 us needed according to data-sheet, we use 1 ms delay(1); // only 3 us needed according to data-sheet, we use 1 ms
LCD_RST_HIGH(); LCD_RST_HIGH();
} }
@ -404,13 +394,13 @@ void lcdInitFinish()
#if !defined(BOOT) #if !defined(BOOT)
while(g_tmr10ms < (RESET_WAIT_DELAY_MS/10)) {}; //wait measured from the power-on while(g_tmr10ms < (RESET_WAIT_DELAY_MS/10)) {}; //wait measured from the power-on
#else #else
Delay(RESET_WAIT_DELAY_MS); delay(RESET_WAIT_DELAY_MS);
#endif #endif
} }
LCD_Init(); LCD_Init();
AspiCmd(0xAF); //dc2=1, IC into exit SLEEP MODE, dc3=1 gray=ON, dc4=1 Green Enhanc mode disabled AspiCmd(0xAF); //dc2=1, IC into exit SLEEP MODE, dc3=1 gray=ON, dc4=1 Green Enhanc mode disabled
Delay(20); //needed for internal DC-DC converter startup delay(20); //needed for internal DC-DC converter startup
} }
void lcdSetRefVolt(uint8_t val) void lcdSetRefVolt(uint8_t val)

View file

@ -65,12 +65,7 @@
#define USBD_SERIALNUMBER_FS_STRING "00000000001B" #define USBD_SERIALNUMBER_FS_STRING "00000000001B"
#if defined(BOOT) #if defined(USB_JOYSTICK)
#define USBD_PID 0x5720
#define USBD_PRODUCT_FS_STRING "FrSky Taranis Bootloader"
#define USBD_CONFIGURATION_FS_STRING "MSC Config"
#define USBD_INTERFACE_FS_STRING "MSC Interface"
#elif defined(USB_JOYSTICK)
#define USBD_PID 0x5710 #define USBD_PID 0x5710
#define USBD_PRODUCT_FS_STRING "FrSky Taranis Joystick" #define USBD_PRODUCT_FS_STRING "FrSky Taranis Joystick"
#define USBD_CONFIGURATION_FS_STRING "HID Config" #define USBD_CONFIGURATION_FS_STRING "HID Config"

View file

@ -72,12 +72,6 @@ void TaskStack<SIZE>::paint()
} }
} }
template<int SIZE>
uint16_t TaskStack<SIZE>::size()
{
return SIZE*4;
}
uint16_t getStackAvailable(void * address, uint16_t size) uint16_t getStackAvailable(void * address, uint16_t size)
{ {
uint32_t * array = (uint32_t *)address; uint32_t * array = (uint32_t *)address;

View file

@ -62,7 +62,10 @@ class TaskStack
public: public:
TaskStack() { } TaskStack() { }
void paint(); void paint();
uint16_t size(); uint16_t size()
{
return SIZE * 4;
}
uint16_t available() uint16_t available()
{ {
return getStackAvailable(stack, SIZE); return getStackAvailable(stack, SIZE);