830 lines
20 KiB
C
830 lines
20 KiB
C
/*================================================================
|
||
Copyright (c) 2020 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
|
||
Quectel Wireless Solution Proprietary and Confidential.
|
||
=================================================================*/
|
||
/*=================================================================
|
||
|
||
EDIT HISTORY FOR MODULE
|
||
|
||
This section contains comments describing changes made to the module.
|
||
Notice that changes are listed in reverse chronological order.
|
||
|
||
WHEN WHO WHAT, WHERE, WHY
|
||
------------ ------- -------------------------------------------------------------------------------
|
||
|
||
=================================================================*/
|
||
|
||
#include <stdio.h>
|
||
#include <string.h>
|
||
#include <stdlib.h>
|
||
|
||
#include "ql_app_feature_config.h"
|
||
#include "ql_api_osi.h"
|
||
#include "ql_log.h"
|
||
#include "ql_pin_cfg.h"
|
||
#include "nw_demo.h"
|
||
#include "gpio_demo.h"
|
||
#include "gpio_int_demo.h"
|
||
#include "datacall_demo.h"
|
||
#include "osi_demo.h"
|
||
#include "ql_dev_demo.h"
|
||
#include "adc_demo.h"
|
||
#include "led_cfg_demo.h"
|
||
#include "ql_sim_demo.h"
|
||
#include "power_demo.h"
|
||
#include "ql_api_dev.h"
|
||
|
||
#ifdef QL_APP_FEATURE_USB
|
||
#include "usb_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_MMS
|
||
#include "mms_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_UART
|
||
#include "uart_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_RS485
|
||
#include "rs485_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_AUDIO
|
||
#include "audio_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LCD
|
||
#include "lcd_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LVGL
|
||
#include "lvgl_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_HTTP
|
||
#include "http_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_FTP
|
||
#include "ftp_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_MQTT
|
||
#include "mqtt_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_SSL
|
||
#include "ssl_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_PING
|
||
#include "ping_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_NTP
|
||
#include "ntp_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LBS
|
||
#include "lbs_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_QTHSDK
|
||
#include "qthsdk_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_SOCKET
|
||
#include "socket_demo.h"
|
||
#endif
|
||
|
||
|
||
#ifdef QL_APP_FEATURE_FILE_ZIP
|
||
#include "zip_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_BT
|
||
|
||
#ifdef QL_APP_FEATURE_BT_SPP
|
||
#include "bt_spp_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_BT_HFP
|
||
#include "bt_hfp_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_BT_A2DP_AVRCP
|
||
#include "bt_a2dp_avrcp_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_BLE_GATT
|
||
#include "ble_gatt_demo.h"
|
||
#include "ble_hid_demo.h"
|
||
#endif
|
||
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FILE
|
||
#include "ql_fs_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_SMS
|
||
#include "sms_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_VOICE_CALL
|
||
#include "voice_call_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_GNSS
|
||
#include "gnss_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI
|
||
#include "spi_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI_NOR_FLASH
|
||
#include "spi_nor_flash_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI4_EXT_NOR_SFFS
|
||
#include "spi4_ext_nor_sffs_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI6_EXT_NOR
|
||
#include "spi6_ext_nor_flash_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI_NAND_FLASH
|
||
#include "spi_nand_flash_demo.h"
|
||
#endif
|
||
|
||
|
||
#ifdef QL_APP_FEATURE_CAMERA
|
||
#include "camera_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_WIFISCAN
|
||
#include "wifi_scan_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_HTTP_FOTA
|
||
#include "fota_http_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FTP_FOTA
|
||
#include "fota_ftp_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_DECODER
|
||
#include "decoder_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_APP_IMG_AT
|
||
#include "app_img_at_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_VOLTE
|
||
#include "volte_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_VSIM_ADAPT
|
||
#include "vsim_adapt_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_KEYPAD
|
||
#include "keypad_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_RTC
|
||
#include "ql_rtc_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SECURE_BOOT
|
||
#include "ql_api_dev.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_USB_CHARGE
|
||
#include "charge_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_QCLOUD_IOT
|
||
#include "qcloud_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_VIRT_AT
|
||
#include "ql_virt_at_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_TTS
|
||
#include "tts_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_I2C
|
||
#include "I2C_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_PBK
|
||
#include "ql_pbk_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SDMMC
|
||
#include "ql_sdmmc_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_ALI_LINKSDK
|
||
#include "ali_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_USBNET
|
||
#include "usbnet_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FS_NAND_FLASH
|
||
#include "fs_nand_flash_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FS_NOR_FLASH
|
||
#include "fs_nor_flash_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SFTP
|
||
#include "sftp_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_MXML
|
||
#include "mxml_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_CLOUDOTA
|
||
#include "cloudota_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_EMBED_NOR_FLASH
|
||
#include "embed_nor_flash_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_HILINK
|
||
#include "hilink.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_PSM
|
||
#include "psm_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_STK
|
||
#include "stk_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_GPRS_DATA_TRANSFER
|
||
#include "gprs_data_transfer_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_TP
|
||
#include "tp_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_ALIOTSMARTCARD
|
||
#include "aliotsmartcard_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_MIPI_LCD
|
||
#include "mipi_lcd_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_ALIPAY_IOT_SDK
|
||
extern void ql_alipay_iot_sdk_app_init(void);
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_NTRIP_RTK
|
||
#include "ntrip_rtk_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LWM2M
|
||
#include "lwm2m_client_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SS
|
||
#include "ussd_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_ETHERNET
|
||
#include "ethernet_demo.h"
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_WEBSOCKET
|
||
#include "websocket_demo.h"
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_WIFI
|
||
#include "wifi_demo.h"
|
||
#endif
|
||
|
||
/************************************************************************************************/
|
||
//#include "t2n_app.h"
|
||
//#include "rtk_app.h"
|
||
#include "ql_sdmmc.h"
|
||
#include "lora_app.h"
|
||
#include "lora_test.h"
|
||
# include "esp32_iap_demo.h"
|
||
/************************************************************************************************/
|
||
|
||
#define QL_INIT_LOG_LEVEL QL_LOG_LEVEL_INFO
|
||
#define QL_INIT_LOG(msg, ...) QL_LOG(QL_INIT_LOG_LEVEL, "ql_INIT", msg, ##__VA_ARGS__)
|
||
#define QL_INIT_LOG_PUSH(msg, ...) QL_LOG_PUSH("ql_INIT", msg, ##__VA_ARGS__)
|
||
|
||
static void prvInvokeGlobalCtors(void)
|
||
{
|
||
extern void (*__init_array_start[])();
|
||
extern void (*__init_array_end[])();
|
||
|
||
size_t count = __init_array_end - __init_array_start;
|
||
for (size_t i = 0; i < count; ++i)
|
||
__init_array_start[i]();
|
||
}
|
||
|
||
void ql_pin_cfg_init(void)
|
||
{
|
||
uint8_t index = 0;
|
||
uint8_t pin_num = 0;
|
||
uint8_t default_func = 0;
|
||
uint8_t gpio_func = 0;
|
||
ql_GpioNum gpio_num = 0;
|
||
ql_GpioDir gpio_dir = 0;
|
||
ql_PullMode gpio_pull = 0;
|
||
ql_LvlMode gpio_lvl = 0;
|
||
|
||
for( index = 0; index < QL_GPIO_PIN_MAX; index++ )
|
||
{
|
||
//QL_INIT_LOG("pin%d=%d", index, ql_pin_cfg_map[index].pin_num);
|
||
if (QUEC_PIN_NONE == ql_pin_cfg_map[index].pin_num)
|
||
{
|
||
QL_INIT_LOG("init exit %d!", index);
|
||
break;
|
||
}
|
||
pin_num = ql_pin_cfg_map[index].pin_num;
|
||
default_func = ql_pin_cfg_map[index].default_func;
|
||
gpio_func = ql_pin_cfg_map[index].gpio_func;
|
||
gpio_num = ql_pin_cfg_map[index].gpio_num;
|
||
gpio_dir = ql_pin_cfg_map[index].gpio_dir;
|
||
gpio_pull = ql_pin_cfg_map[index].gpio_pull;
|
||
gpio_lvl = ql_pin_cfg_map[index].gpio_lvl;
|
||
|
||
ql_pin_set_func(pin_num, default_func);
|
||
if( default_func == gpio_func )
|
||
{
|
||
ql_gpio_init(gpio_num, gpio_dir, gpio_pull, gpio_lvl);
|
||
}
|
||
}
|
||
}
|
||
|
||
void ql_sdmmc_init(void)
|
||
{
|
||
//QlOSStatus err = QL_SDMMC_SUCCESS;
|
||
ql_pin_set_func(QL_PIN_SDMMC_CMD, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_pin_set_func(QL_PIN_SDMMC_DATA_0, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_pin_set_func(QL_PIN_SDMMC_DATA_1, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_pin_set_func(QL_PIN_SDMMC_DATA_2, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_pin_set_func(QL_PIN_SDMMC_DATA_3, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_pin_set_func(QL_PIN_SDMMC_CLK, QL_PIN_SDMMC_MODE_FUNC); // Pin reuse
|
||
ql_sdmmc_cfg_t cfg = {
|
||
.dev = QL_SDMMC_SD_CARD_ONLY, // 只以sd卡方式进行初始化
|
||
.sd_mv = 0, // SD卡默认电压域3.2v
|
||
.emmc_mv = 0, // emmc默认电压域1.8v
|
||
};
|
||
ql_sdmmc_set_dev_cfg(cfg);
|
||
|
||
if (QL_SDMMC_SUCCESS != ql_sdmmc_mount())
|
||
{
|
||
QL_INIT_LOG("sd mount failed");
|
||
}
|
||
else
|
||
{
|
||
QL_INIT_LOG("sd mount succeed");
|
||
// int fd = ql_fopen("SD:123.txt", "wb+");
|
||
// if (fd < 0)
|
||
// {
|
||
// QL_INIT_LOG("open file failed");
|
||
// err = fd;
|
||
// goto exit;
|
||
// }
|
||
// char *str = "sd card test";
|
||
// int err = ql_fwrite(str, strlen(str) + 1, 1, fd); // strlen not include '\0'
|
||
// if (err < 0)
|
||
// {
|
||
// QL_INIT_LOG("write file failed");
|
||
|
||
// }
|
||
// ql_fclose(fd);
|
||
}
|
||
// exit:
|
||
// return;
|
||
}
|
||
|
||
ql_task_t ql_rtk_task = NULL;
|
||
ql_task_t ql_t2n_task = NULL;
|
||
|
||
extern void t2n_task(void *param);
|
||
extern void rtk_task(void *param);
|
||
extern void uart1_app_init(void);
|
||
// extern void test_app_init(void);
|
||
|
||
static void ql_init_demo_thread(void *param)
|
||
{
|
||
QL_INIT_LOG("init demo thread enter, param 0x%x", param);
|
||
|
||
/*Caution:If the macro of secure boot and the function are opened, download firmware and restart will enable secure boot.
|
||
the secret key cannot be changed forever*/
|
||
#ifdef QL_APP_FEATURE_SECURE_BOOT
|
||
//ql_dev_enable_secure_boot();
|
||
#endif
|
||
|
||
#if 0
|
||
ql_gpio_app_init();
|
||
ql_gpioint_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_LEDCFG
|
||
#if !defined(QL_APP_PROJECT_DEF_EC600U) || \
|
||
(defined(QL_APP_PROJECT_DEF_EC600U) && !defined(QL_APP_FEATURE_DSSS) && !defined(QL_APP_FEATURE_DSIM))
|
||
ql_ledcfg_app_init();
|
||
#endif
|
||
#endif
|
||
|
||
/*
|
||
1. 验证usb虚拟U盘功能需要在target.config中打开宏CONFIG_QUEC_PROJECT_FEATURE_USB_MASS_STORAGE
|
||
2. 映射sd卡到PC端需要打开sd卡demo(ql_sdmmc_app_init)去挂载sd卡文件系统
|
||
3. 映射6线flash到PC端需要打开6线flash demo(ql_spi6_ext_nor_flash_demo_init)挂载6线flash文件系统
|
||
*/
|
||
#ifdef QL_APP_FEATURE_USB
|
||
//ql_usb_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_AUDIO
|
||
//ql_audio_app_init();
|
||
#ifdef QL_APP_FEATURE_HEADSET_DET
|
||
//ql_headset_det_app_init();
|
||
#endif
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_TTS
|
||
/*
|
||
*demo1直接调用TTS库和audio播放api进行TTS播放,
|
||
*demo2对TTS库和audio的播放api进行封装,封装后的TTS api与我司asr系列的TTS api类似
|
||
*注意:由于audio播放器只有一个,因此这两个demo只能运行一个,不能两个demo同时播放
|
||
*用户如需将TTS库放到内核,则在target.config中将 CONFIG_QUEC_PROJECT_FEATURE_TTS_IN_KERNEL 置为 y,
|
||
并修改分区,将内核分区增大250k左右,其余的内容不变
|
||
*/
|
||
//ql_tts_demo1_init();
|
||
//ql_tts_demo2_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_LCD
|
||
//ql_lcd_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LVGL
|
||
//ql_lvgl_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_MIPI_LCD
|
||
/* to show a picture defined at a_rabbit/rabbit_mouse .h file, */
|
||
/* it need more flash, please adjust your APPIMG partition size */
|
||
//ql_mipi_lcd_app_init();
|
||
#endif
|
||
//ql_nw_app_init();
|
||
//ql_datacall_app_init();
|
||
//ql_osi_demo_init();
|
||
|
||
#ifdef QL_APP_FEATURE_SDMMC
|
||
//ql_sdmmc_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FILE
|
||
//ql_fs_demo_init();
|
||
#endif
|
||
|
||
//ql_dev_app_init();
|
||
//ql_adc_app_init();
|
||
|
||
#ifdef QL_APP_FEATURE_UART
|
||
//ql_uart_app_init();
|
||
//ql_uart_rb_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_RS485
|
||
//ql_rs485_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_BT
|
||
|
||
#ifdef QL_APP_FEATURE_BT_SPP
|
||
//ql_bt_spp_demo_init();
|
||
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_BLE_GATT
|
||
//ql_ble_gatt_server_demo_init();
|
||
//ql_ble_gatt_client_demo_init();
|
||
//ql_ble_hid_demo_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_BT_HFP
|
||
//ql_bt_hfp_demo_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_BT_A2DP_AVRCP
|
||
//ql_bt_a2dp_avrcp_app_init();
|
||
#endif
|
||
#endif
|
||
//ql_sim_app_init();
|
||
ql_power_app_init();
|
||
#ifdef QL_APP_FEATURE_PSM
|
||
//ql_psm_app_init();
|
||
#endif
|
||
|
||
|
||
#ifdef QL_APP_FEATURE_CLOUDOTA
|
||
//ql_cloudota_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_PWK
|
||
//ql_pwrkey_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FTP
|
||
//ql_ftp_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_HTTP
|
||
//ql_http_app_init();
|
||
//ql_http_post_app_init();
|
||
//ql_http_put_app_init();
|
||
//ql_https_get_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_MQTT
|
||
//ql_mqtt_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_SSL
|
||
//ql_ssl_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_PING
|
||
//ql_ping_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_NTP
|
||
//ql_ntp_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LBS
|
||
//ql_lbs_app_init();
|
||
#if defined (QL_APP_FEATURE_WIFISCAN)
|
||
//ql_lbs_wifi_app_init();
|
||
#endif
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_QTHSDK
|
||
//ql_qthsdk_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_SOCKET
|
||
//ql_socket_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_MMS
|
||
//ql_mms_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SMS
|
||
//ql_sms_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_PBK
|
||
//ql_pbk_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_STK
|
||
// ql_stk_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_VOICE_CALL
|
||
//ql_voice_call_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_VOLTE
|
||
//ql_volte_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_VSIM_ADAPT
|
||
//ql_vsim_adapt_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_GNSS
|
||
//ql_gnss_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FILE_ZIP
|
||
//ql_zip_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI
|
||
//ql_spi_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_CAMERA
|
||
/*因为camera被i2c用来演示功能,所以打开camera demo时不可同时打开i2c demo*/
|
||
/*because camera as a demonstration for i2c, so camera demo can not be opened when the i2c demo open */
|
||
//ql_camera_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI_NOR_FLASH
|
||
//ql_spi_nor_flash_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI4_EXT_NOR_SFFS
|
||
//ql_spi4_ext_nor_sffs_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI6_EXT_NOR
|
||
//ql_spi6_ext_nor_flash_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SPI_NAND_FLASH
|
||
//ql_spi_nand_flash_demo_init();
|
||
#endif
|
||
|
||
|
||
#if defined (QL_APP_FEATURE_WIFISCAN)
|
||
//ql_wifiscan_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_HTTP_FOTA
|
||
//ql_fota_http_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FTP_FOTA
|
||
//ql_fota_ftp_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_DECODER
|
||
//ql_decoder_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_APP_IMG_AT
|
||
//ql_app_img_at_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_KEYPAD
|
||
//ql_keypad_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_RTC
|
||
//ql_rtc_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_USB_CHARGE
|
||
//ql_charge_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_ALI_LINKSDK
|
||
//ql_ali_sdk_mqtt_client_test_init(); /* mqtt_basic_demo.c */
|
||
//ql_ali_sdk_bootstrap_test_init(); /* bootstrap_posix_demo.c */
|
||
//ql_ali_sdk_cota_test_init(); /* cota_basic_demo.c */
|
||
//ql_ali_sdk_das_test_init(); /* das_basic_demo.c */
|
||
//ql_ali_sdk_data_model_test_init(); /* data_model_basic_demo.c */
|
||
//ql_ali_sdk_devinfo_test_init(); /* devinfo_posix_demo.c */
|
||
//ql_ali_sdk_diag_test_init(); /* diag_basic_demo.c */
|
||
//ql_ali_sdk_dynreg_test_init(); /* dynreg_basic_demo.c */
|
||
//ql_ali_sdk_dynregmq_test_init(); /* dynregmq_basic_demo.c */
|
||
//ql_ali_sdk_fota_test_init(); /* fota_basic_demo.c */
|
||
//ql_ali_sdk_http_client_test_init(); /* http_basic_demo.c */
|
||
//ql_ali_sdk_logpost_test_init(); /* logpost_basic_demo.c */
|
||
//ql_ali_sdk_mqtt_broadcast_test_init(); /* mqtt_broadcast_demo.c */
|
||
//ql_ali_sdk_rrpc_test_init(); /* mqtt_rrpc_demo.c */
|
||
//ql_ali_sdk_ntp_test_init(); /* ntp_posix_demo.c */
|
||
//ql_ali_sdk_shadow_test_init(); /* shadow_basic_demo.c */
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_QCLOUD_IOT
|
||
//light_data_template_sample_start();/* light_data_template_sample_start_demo.c */
|
||
//mqtt_sample_start(); /* mqtt_sample_start_demo.c */
|
||
//data_template_sample_start(); /* data_template_sample_start_demo.c */
|
||
//ota_mqtt_sample_start(); /* ota_mqtt_sample_start_demo.c */
|
||
//raw_data_sample_start(); /* raw_data_sample_start_demo.c */
|
||
//dynreg_dev_sample_start(); /* dynreg_dev_sample_start_demo.c */
|
||
//gateway_sample_start(); /* gateway_sample_start_demo.c */
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_VIRT_AT
|
||
//ql_virt_at_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_I2C
|
||
/*因为i2c通过camera来演示功能,所以打开i2c demo时不可同时打开camera demo*/
|
||
/*because I2C uses the camera as a demonstration, so i2c demo can not be opened when the camera demo open */
|
||
//ql_i2c_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_USBNET
|
||
//ql_usbnet_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FS_NAND_FLASH
|
||
//ql_fs_nand_flash_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_FS_NOR_FLASH
|
||
//ql_fs_nor_flash_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SFTP
|
||
//ql_sftp_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_MXML
|
||
//ql_mxml_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_EMBED_NOR_FLASH
|
||
//ql_embed_nor_flash_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_HILINK
|
||
//hilink_main();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_GPRS_DATA_TRANSFER
|
||
//ql_gprs_data_transfer_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_TP
|
||
//ql_tp_demo_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_ALIPAY_IOT_SDK
|
||
//ql_alipay_iot_sdk_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_ALIOTSMARTCARD
|
||
//ql_aliotsmartcard_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_NTRIP_RTK
|
||
//ql_ntrip_rtk_demo_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_LWM2M
|
||
//ql_m2m_app_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_SS
|
||
//ql_ussd_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_WEBSOCKET
|
||
//ql_websocket_app_init();
|
||
#endif
|
||
#ifdef QL_APP_FEATURE_ETHERNET
|
||
//ql_ethernet_demo_init();
|
||
#endif
|
||
|
||
#ifdef QL_APP_FEATURE_WIFI
|
||
//ql_wifi_demo_init();
|
||
#endif
|
||
|
||
/***************************************************************************************************/
|
||
|
||
// // ql_rtos_task_sleep_s(15);
|
||
// ql_sdmmc_init();
|
||
// // test_app_init();
|
||
|
||
// QlOSStatus err = 0;
|
||
// err = ql_rtos_task_create(&ql_t2n_task, 8192, APP_PRIORITY_HIGH, "t2n", t2n_task, NULL, 1);
|
||
// if (err != QL_OSI_SUCCESS){
|
||
// QL_INIT_LOG("init failed");
|
||
// }
|
||
// err = ql_rtos_task_create(&ql_rtk_task, 8192, APP_PRIORITY_NORMAL - 1, "rtk", rtk_task, NULL, 1);
|
||
// if (err != QL_OSI_SUCCESS){
|
||
// QL_INIT_LOG("init failed");
|
||
// }
|
||
// uart1_app_init();
|
||
// lvgl_demo_init();
|
||
|
||
// //ql_http_app_init();
|
||
|
||
ql_esp32_iap_app_init();
|
||
|
||
/***************************************************************************************************/
|
||
|
||
ql_rtos_task_sleep_ms(1000); /*Chaos change: set to 1000 for the camera power on*/
|
||
|
||
/*To save logs to sdcard/nandflash, you must call this function after initializing sdcard/nandflash file system;*/
|
||
/*Logs before this point can be output via USB or debug port, which can be configured in prvTraceInit of app_start*/
|
||
//ql_fs_trace_init();
|
||
|
||
ql_rtos_task_delete(NULL);
|
||
}
|
||
|
||
int appimg_enter(void *param)
|
||
{
|
||
QlOSStatus err = QL_OSI_SUCCESS;
|
||
ql_task_t ql_init_task = NULL;
|
||
|
||
QL_INIT_LOG("init demo enter: %s @ %s", QL_APP_VERSION, QL_APP_BUILD_RELEASE_TYPE);
|
||
prvInvokeGlobalCtors();
|
||
if(0 == strcasecmp(QL_APP_BUILD_RELEASE_TYPE, "release"))
|
||
{
|
||
ql_dev_cfg_wdt(1);
|
||
//open the kernel log
|
||
//ql_quec_trace_enable(1);
|
||
}
|
||
else
|
||
{
|
||
ql_dev_cfg_wdt(0);
|
||
//close the kernel log
|
||
//ql_quec_trace_enable(0);
|
||
}
|
||
|
||
/*Caution: GPIO pin must be initialized here, otherwise the pin status cannot be determined*/
|
||
ql_pin_cfg_init();
|
||
|
||
err = ql_rtos_task_create(&ql_init_task, 1024*4, APP_PRIORITY_NORMAL, "ql_init", ql_init_demo_thread, NULL, 1);
|
||
if(err != QL_OSI_SUCCESS)
|
||
{
|
||
QL_INIT_LOG("init failed");
|
||
}
|
||
|
||
return err;
|
||
}
|
||
|
||
void appimg_exit(void)
|
||
{
|
||
QL_INIT_LOG("init demo exit");
|
||
}
|
||
|
||
|