demo工程暂存 优化菜单界面UI和功能
This commit is contained in:
173
MCU/examples/application/bootloader/Inc/FreeRTOSConfig.h
Normal file
173
MCU/examples/application/bootloader/Inc/FreeRTOSConfig.h
Normal file
@ -0,0 +1,173 @@
|
||||
/*
|
||||
* FreeRTOS V202112.00
|
||||
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* http://www.FreeRTOS.org
|
||||
* http://aws.amazon.com/freertos
|
||||
*
|
||||
* 1 tab == 4 spaces!
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
See http://www.freertos.org/a00110.html for an explanation of the
|
||||
definitions contained in this file.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Application specific definitions.
|
||||
*
|
||||
* These definitions should be adjusted for your particular hardware and
|
||||
* application requirements.
|
||||
*
|
||||
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||
* http://www.freertos.org/a00110.html
|
||||
*----------------------------------------------------------*/
|
||||
|
||||
#include "app_config.h"
|
||||
|
||||
extern uint32_t SystemCoreClock;
|
||||
|
||||
/* Cortex M33 port configuration. */
|
||||
#define configENABLE_MPU 0
|
||||
#define configENABLE_FPU 1
|
||||
#define configENABLE_TRUSTZONE 0
|
||||
|
||||
/* Constants related to the behaviour or the scheduler. */
|
||||
#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_TIME_SLICING 1
|
||||
#define configMAX_PRIORITIES ( FREERTOS_MAX_PRIORITY )
|
||||
#define configIDLE_SHOULD_YIELD 1
|
||||
#define configUSE_16_BIT_TICKS 0 /* Only for 8 and 16-bit hardware. */
|
||||
|
||||
/* Constants that describe the hardware and memory usage. */
|
||||
#define configCPU_CLOCK_HZ SystemCoreClock
|
||||
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( uint16_t ) 128 )
|
||||
#define configMINIMAL_SECURE_STACK_SIZE ( 1024 )
|
||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) )
|
||||
|
||||
/* Constants that build features in or out. */
|
||||
#define configUSE_MUTEXES 1
|
||||
#define configUSE_TICKLESS_IDLE 1
|
||||
#define configUSE_APPLICATION_TASK_TAG 0
|
||||
#define configUSE_NEWLIB_REENTRANT 0
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
#define configUSE_COUNTING_SEMAPHORES 1
|
||||
#define configUSE_RECURSIVE_MUTEXES 1
|
||||
#define configUSE_QUEUE_SETS 1
|
||||
#define configUSE_TASK_NOTIFICATIONS 1
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
|
||||
/* Constants that define which hook (callback) functions should be used. */
|
||||
#define configUSE_IDLE_HOOK 0
|
||||
#define configUSE_TICK_HOOK 1
|
||||
#define configUSE_MALLOC_FAILED_HOOK 0
|
||||
|
||||
/* Constants provided for debugging and optimisation assistance. */
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
|
||||
#define configQUEUE_REGISTRY_SIZE 0
|
||||
|
||||
/* Software timer definitions. */
|
||||
#define configUSE_TIMERS 1
|
||||
#define configTIMER_TASK_PRIORITY ( 3 )
|
||||
#define configTIMER_QUEUE_LENGTH 5
|
||||
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE )
|
||||
|
||||
/* Set the following definitions to 1 to include the API function, or zero
|
||||
* to exclude the API function. NOTE: Setting an INCLUDE_ parameter to 0 is
|
||||
* only necessary if the linker does not automatically remove functions that are
|
||||
* not referenced anyway. */
|
||||
#define INCLUDE_vTaskPrioritySet 1
|
||||
#define INCLUDE_uxTaskPriorityGet 1
|
||||
#define INCLUDE_vTaskDelete 1
|
||||
#define INCLUDE_vTaskCleanUpResources 0
|
||||
#define INCLUDE_vTaskSuspend 1
|
||||
#define INCLUDE_vTaskDelayUntil 1
|
||||
#define INCLUDE_vTaskDelay 1
|
||||
#define INCLUDE_xTaskAbortDelay 1
|
||||
#define INCLUDE_uxTaskGetStackHighWaterMark 0
|
||||
#define INCLUDE_xTaskGetIdleTaskHandle 0
|
||||
#define INCLUDE_xTaskGetHandle 1
|
||||
#define INCLUDE_eTaskGetState 1
|
||||
#define INCLUDE_xTaskResumeFromISR 0
|
||||
#define INCLUDE_xTaskGetCurrentTaskHandle 1
|
||||
#define INCLUDE_xTaskGetSchedulerState 0
|
||||
#define INCLUDE_xSemaphoreGetMutexHolder 1
|
||||
#define INCLUDE_xTimerPendFunctionCall 1
|
||||
|
||||
/* This demo makes use of one or more example stats formatting functions. These
|
||||
* format the raw data provided by the uxTaskGetSystemState() function in to
|
||||
* human readable ASCII form. See the notes in the implementation of vTaskList()
|
||||
* within FreeRTOS/Source/tasks.c for limitations. */
|
||||
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
|
||||
|
||||
/* Dimensions a buffer that can be used by the FreeRTOS+CLI command interpreter.
|
||||
* See the FreeRTOS+CLI documentation for more information:
|
||||
* http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/ */
|
||||
#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2048
|
||||
|
||||
/* Interrupt priority configuration follows...................... */
|
||||
|
||||
/* Use the system definition, if there is one. */
|
||||
#ifdef __NVIC_PRIO_BITS
|
||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
||||
#else
|
||||
#define configPRIO_BITS 3 /* 8 priority levels. */
|
||||
#endif
|
||||
|
||||
/* The lowest interrupt priority that can be used in a call to a "set priority"
|
||||
* function. */
|
||||
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x07
|
||||
|
||||
/* The highest interrupt priority that can be used by any interrupt service
|
||||
* routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT
|
||||
* CALL INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A
|
||||
* HIGHER PRIORITY THAN THIS! (higher priorities are lower numeric values). */
|
||||
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1
|
||||
|
||||
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
||||
* to all Cortex-M ports, and do not rely on any particular library functions. */
|
||||
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )
|
||||
|
||||
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
|
||||
* See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
|
||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) )
|
||||
|
||||
#if ENABLE_RTOS_MONITOR == 1
|
||||
/* Constants related to the generation of run time stats. */
|
||||
#define configGENERATE_RUN_TIME_STATS 1
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
#define configUSE_STATS_FORMATTING_FUNCTIONS 1
|
||||
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()
|
||||
extern volatile unsigned int CPU_RunTime;
|
||||
#define portGET_RUN_TIME_COUNTER_VALUE() CPU_RunTime
|
||||
#endif
|
||||
|
||||
/* Enable static allocation. */
|
||||
#define configSUPPORT_STATIC_ALLOCATION 0
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
14
MCU/examples/application/bootloader/Inc/app_at.h
Normal file
14
MCU/examples/application/bootloader/Inc/app_at.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef _APP_AT_H
|
||||
#define _APP_AT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "driver_uart.h"
|
||||
|
||||
void app_at_cmd_recv_handler(uint8_t *data, uint16_t length);
|
||||
|
||||
void app_at_rx_done(struct __UART_HandleTypeDef *handle);
|
||||
|
||||
void app_at_init(struct __UART_HandleTypeDef *handle);
|
||||
|
||||
#endif // _APP_AT_H
|
19
MCU/examples/application/bootloader/Inc/app_ble.h
Normal file
19
MCU/examples/application/bootloader/Inc/app_ble.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef _APP_BLE_H
|
||||
#define _APP_BLE_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "gap_api.h"
|
||||
|
||||
void app_ble_init(void);
|
||||
|
||||
void app_ble_advertising_start(uint8_t adv_chn);
|
||||
void app_ble_advertising_stop(uint8_t adv_chn);
|
||||
|
||||
void app_ble_scan_start(void);
|
||||
void app_ble_scan_stop(void);
|
||||
|
||||
void app_ble_conn_start(struct gap_ble_addr *addr);
|
||||
void app_ble_conn_stop(void);
|
||||
|
||||
#endif // _APP_BLE_H
|
67
MCU/examples/application/bootloader/Inc/app_btdm.h
Normal file
67
MCU/examples/application/bootloader/Inc/app_btdm.h
Normal file
@ -0,0 +1,67 @@
|
||||
#ifndef _APP_BTDM_H
|
||||
#define _APP_BTDM_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
enum {
|
||||
APP_BTDM_EVT_BLE_CONNECTED,
|
||||
APP_BTDM_EVT_BLE_DISCONNECTED,
|
||||
|
||||
APP_BTDM_EVT_BT_CONNECTED,
|
||||
APP_BTDM_EVT_BT_DISCONNECTED,
|
||||
APP_BTDM_EVT_HF_INCOMING,
|
||||
APP_BTDM_EVT_HF_CALL_ACTIVE,
|
||||
APP_BTDM_EVT_HF_CALL_REMOVE,
|
||||
APP_BTDM_EVT_A2DP_STREAM_STARTED,
|
||||
APP_BTDM_EVT_A2DP_STREAM_STOPPED,
|
||||
APP_BTDM_EVT_A2DP_STREAM_DATA,
|
||||
APP_BTDM_EVT_AVRCP_VOL_CHANGE,
|
||||
APP_BTDM_EVT_AVRCP_NEXT,
|
||||
APP_BTDM_EVT_AVRCP_PREV,
|
||||
APP_BTDM_EVT_AVRCP_PAUSE,
|
||||
APP_BTDM_EVT_AVRCP_FAST_FORWARD,
|
||||
APP_BTDM_EVT_AVRCP_FAST_BACKWARD,
|
||||
APP_BTDM_EVT_SCO_CREATED,
|
||||
APP_BTDM_EVT_SCO_REMOVED,
|
||||
APP_BTDM_EVT_SCO_DATA,
|
||||
};
|
||||
|
||||
enum {
|
||||
APP_BTDM_CODEC_SBC,
|
||||
APP_BTDM_CODEC_AAC,
|
||||
APP_BTDM_CODEC_mSBC,
|
||||
APP_BTDM_CODEC_PCM,
|
||||
APP_BTDM_CODEC_UNKNOWN,
|
||||
};
|
||||
|
||||
struct app_btdm_event_t {
|
||||
uint8_t event;
|
||||
union {
|
||||
struct {
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
} a2dp_data;
|
||||
struct {
|
||||
uint8_t codec_type;
|
||||
uint32_t sample_rate;
|
||||
} a2dp_codec;
|
||||
struct {
|
||||
bool valid;
|
||||
uint8_t codec_type;
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
} sco_data;
|
||||
struct {
|
||||
void *hf_channel;
|
||||
uint8_t codec_type;
|
||||
} sco_codec;
|
||||
} param;
|
||||
};
|
||||
|
||||
typedef void (*app_btdm_callback_t)(struct app_btdm_event_t *e);
|
||||
|
||||
void app_btdm_start(void);
|
||||
void app_btdm_init(void);
|
||||
|
||||
#endif // _APP_BTDM_H
|
122
MCU/examples/application/bootloader/Inc/app_config.h
Normal file
122
MCU/examples/application/bootloader/Inc/app_config.h
Normal file
@ -0,0 +1,122 @@
|
||||
#ifndef _APP_CONFIG_H
|
||||
#define _APP_CONFIG_H
|
||||
|
||||
// <<< Use Configuration Wizard in Context Menu >>>
|
||||
|
||||
/* ========================================================== */
|
||||
/* ========= SYSTEM configuration ========= */
|
||||
/* ========================================================== */
|
||||
|
||||
// <h> SYSTEM Configuration
|
||||
|
||||
// <o> SYSTEM_CLOCK_SEL
|
||||
// <i> used to define system working clock
|
||||
// <24000000=> 24MHz
|
||||
// <48000000=> 48MHz
|
||||
// <96000000=> 96MHz
|
||||
// <144000000=> 144MHz
|
||||
// <192000000=> 192MHz
|
||||
// <240000000=> 240MHz
|
||||
#define SYSTEM_CLOCK_SEL 24000000
|
||||
|
||||
|
||||
#define BOARD_EVB_FR5090 1
|
||||
#define BOARD_EVB_FR3092E 2
|
||||
#define BOARD_EVB_FR3092E_CM 3
|
||||
// <o> BOARD_SEL
|
||||
// <i> board EVB selection, default: BOARD_EVB_FR5090
|
||||
// <1=> BOARD_EVB_FR5090
|
||||
// <2=> BOARD_EVB_FR3092E
|
||||
// <3=> BOARD_EVB_FR3092E_CM
|
||||
#define BOARD_SEL 3
|
||||
|
||||
// </h>
|
||||
|
||||
/* ========================================================== */
|
||||
/* ========= FreeRTOS configuration ========= */
|
||||
/* ========================================================== */
|
||||
|
||||
// <h> FreeRTOS Configuration
|
||||
|
||||
// <o> ENABLE_RTOS_MONITOR
|
||||
// <i> check to enable or disable RTOS monitor, default: DISABLE
|
||||
// <0=> DISABLE
|
||||
// <1=> ENABLE
|
||||
#define ENABLE_RTOS_MONITOR 0
|
||||
|
||||
// <o> FREERTOS_MAX_PRIORITY
|
||||
// <i> used to define priority of monitor task
|
||||
// <1-10:1>
|
||||
#define FREERTOS_MAX_PRIORITY 10
|
||||
|
||||
// <o> MONITOR_TASK_PRIORITY
|
||||
// <i> used to define priority of monitor task, should not be larger than FREERTOS_MAX_PRIORITY
|
||||
#define MONITOR_TASK_PRIORITY 1
|
||||
#if MONITOR_TASK_PRIORITY > FREERTOS_MAX_PRIORITY
|
||||
#error "MONITOR_TASK_PRIORITY should not be larger than FREERTOS_MAX_PRIORITY"
|
||||
#endif
|
||||
|
||||
// <o> APP_TASK_PRIORITY
|
||||
// <i> used to define priority of app task, should not be larger than FREERTOS_MAX_PRIORITY
|
||||
#define APP_TASK_PRIORITY 2
|
||||
#if APP_TASK_PRIORITY > FREERTOS_MAX_PRIORITY
|
||||
#error "APP_TASK_PRIORITY should not be larger than FREERTOS_MAX_PRIORITY"
|
||||
#endif
|
||||
|
||||
// <o> HOST_TASK_PRIORITY
|
||||
// <i> used to define priority of host task, should not be larger than FREERTOS_MAX_PRIORITY
|
||||
#define HOST_TASK_PRIORITY 5
|
||||
#if HOST_TASK_PRIORITY > FREERTOS_MAX_PRIORITY
|
||||
#error "HOST_TASK_PRIORITY should not be larger than FREERTOS_MAX_PRIORITY"
|
||||
#endif
|
||||
|
||||
// <o> RPMSG_TASK_PRIORITY
|
||||
// <i> used to define priority of rpmsg task, should not be larger than FREERTOS_MAX_PRIORITY
|
||||
#define RPMSG_TASK_PRIORITY 6
|
||||
#if RPMSG_TASK_PRIORITY > FREERTOS_MAX_PRIORITY
|
||||
#error "RPMSG_TASK_PRIORITY should not be larger than FREERTOS_MAX_PRIORITY"
|
||||
#endif
|
||||
|
||||
// <o> MONITOR_TASK_STACK_SIZE
|
||||
// <i> used to define priority of monitor task
|
||||
#define MONITOR_TASK_STACK_SIZE 128
|
||||
|
||||
// <o> APP_TASK_STACK_SIZE
|
||||
// <i> used to define priority of APP task
|
||||
#define APP_TASK_STACK_SIZE 256
|
||||
|
||||
// <o> HOST_TASK_STACK_SIZE
|
||||
// <i> used to define priority of btdm-host task
|
||||
#define HOST_TASK_STACK_SIZE 2048
|
||||
|
||||
// <o> RPMSG_TASK_STACK_SIZE
|
||||
// <i> used to define priority of RPMSG task
|
||||
#define RPMSG_TASK_STACK_SIZE 2048
|
||||
|
||||
// </h>
|
||||
|
||||
/* ========================================================== */
|
||||
/* ========= BTDM configuration ========= */
|
||||
/* ========================================================== */
|
||||
|
||||
// <h> BTDM STACK Configuration
|
||||
|
||||
// <o> BTDM_STACK_ENABLE
|
||||
// <i> check to enable or disable bluetooth, default: DISABLE
|
||||
// <0=> DISABLE
|
||||
// <1=> ENABLE
|
||||
#define BTDM_STACK_ENABLE 1
|
||||
|
||||
// <o> BTDM_STACK_HCI_BAUDRATE
|
||||
// <i> check to enable or disable bluetooth, default: DISABLE
|
||||
// <1500000=> 1500000
|
||||
// <921600=> 921600
|
||||
// <460800=> 460800
|
||||
// <115200=> 115200
|
||||
#define BTDM_STACK_HCI_BAUDRATE 1500000
|
||||
|
||||
// </h>
|
||||
|
||||
// <<< end of configuration section >>>
|
||||
|
||||
#endif // _APP_CONFIG_H
|
112
MCU/examples/application/bootloader/Inc/app_ota.h
Normal file
112
MCU/examples/application/bootloader/Inc/app_ota.h
Normal file
@ -0,0 +1,112 @@
|
||||
#ifndef APP_OTA_H
|
||||
#define APP_OTA_H
|
||||
#include <stdint.h>
|
||||
#include "fr30xx.h"
|
||||
/******************************************************************************
|
||||
* MACROS (ºê¶¨Òå)
|
||||
*/
|
||||
|
||||
/*****************************************************************************
|
||||
* CONSTANTS (³£Á¿¶¨Òå)
|
||||
*/
|
||||
#define DOCUMENT_CHECK 1
|
||||
#define BOOT_A_INFO_ADDRESS 0
|
||||
#define BOOT_B_INFO_ADDRESS 0x1000
|
||||
|
||||
#define BOOTLOADER_IMG_RSV_SIZE (220*1024)
|
||||
#define OTA_B_STORAGE_ADDRESS ((4+4)*1024 + BOOTLOADER_IMG_RSV_SIZE)
|
||||
#define IMAGE_INFO_RSV_SIZE 0x2000 //8K
|
||||
#define APP_CODE_INFO_OFFSET 0x148
|
||||
#define IMGAE_INFO_SIZE 0x10
|
||||
#define OTA_BOOT_INFO_ADDRESS (OTA_B_STORAGE_ADDRESS + BOOTLOADER_IMG_RSV_SIZE)
|
||||
#define APP_CODE_STORAGE_ADDRESS (OTA_BOOT_INFO_ADDRESS+IMAGE_INFO_RSV_SIZE)
|
||||
#define RETARGET_APP_CODE_ADDRESS (FLASH_DAC_BASE+APP_CODE_STORAGE_ADDRESS) //APPµØÖ·
|
||||
#define FILE_CODE_ADDRESS_OFFSET IMGAE_INFO_SIZE
|
||||
|
||||
#define FLASH_SIZE 0x200000 // flash 2M
|
||||
#define DSP_CODE_MAX_SIZE (256*1024) // the maximun size of DSP code
|
||||
#define CONTROLLER_CODE_MAX_SIZE (80*1024) // the maximun size of CONTROLLER code
|
||||
#define BOOT_CODE_MAX_SIZE BOOTLOADER_IMG_RSV_SIZE // the maximun size of BOOT
|
||||
#define APP_CODE_MAX_SIZE (FLASH_SIZE-DSP_CODE_MAX_SIZE-CONTROLLER_CODE_MAX_SIZE) // the maximun size of APP
|
||||
|
||||
#define DSP_STORAGE_ADDRESS (FLASH_SIZE-DSP_CODE_MAX_SIZE)
|
||||
#define CONTROLLER_STORAGE_ADDRESS (DSP_STORAGE_ADDRESS-CONTROLLER_CODE_MAX_SIZE)
|
||||
|
||||
#define OTA_START_TIMOUT 5000
|
||||
#define OTA_ADV_TIMEOUT 1000*60*1
|
||||
|
||||
#define OTA_HDR_RESULT_LEN 1
|
||||
#define OTA_HDR_OPCODE_LEN 1
|
||||
#define OTA_HDR_LENGTH_LEN 2
|
||||
|
||||
/*file type*/
|
||||
#define FILE_TYPE_APP 0x01
|
||||
#define FILE_TYPE_CONTROLLER 0x02
|
||||
#define FILE_TYPE_DSP 0x04
|
||||
typedef enum
|
||||
{
|
||||
OTA_CMD_NVDS_TYPE,
|
||||
OTA_CMD_GET_STR_BASE,
|
||||
OTA_CMD_READ_FW_VER, //read firmware version
|
||||
OTA_CMD_PAGE_ERASE,
|
||||
OTA_CMD_CHIP_ERASE,
|
||||
OTA_CMD_WRITE_DATA,
|
||||
OTA_CMD_READ_DATA,
|
||||
OTA_CMD_WRITE_MEM,
|
||||
OTA_CMD_READ_MEM,
|
||||
OTA_CMD_REBOOT,
|
||||
OTA_CMD_START,
|
||||
OTA_CMD_NULL,
|
||||
} ota_cmd_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FILE_BOOT_LOADER =1,
|
||||
FILE_APP,
|
||||
FILE_CONTROLLER,
|
||||
FILE_DSP,
|
||||
}ota_file_type_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
OTA_RSP_SUCCESS,
|
||||
OTA_RSP_ERROR,
|
||||
OTA_RSP_UNKNOWN_CMD,
|
||||
}ota_rsp_t;
|
||||
|
||||
/*****************************************************************************
|
||||
* TYPEDEFS (ÀàÐͶ¨Òå)
|
||||
*/
|
||||
struct app_otas_status_t
|
||||
{
|
||||
uint8_t read_opcode;
|
||||
uint8_t length;
|
||||
uint32_t base_addr;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
volatile uint32_t MSP;
|
||||
volatile uint32_t Reset_Handler;
|
||||
}str_CoreRemapStart_t;
|
||||
|
||||
/******************************************************************************
|
||||
* GLOBAL VARIABLES (È«¾Ö±äÁ¿)
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* FUNCTION DESCRIPTION
|
||||
*/
|
||||
uint16_t app_otas_read_data(uint8_t *p_data);
|
||||
void app_otas_recv_data(uint8_t conidx,uint8_t *p_data,uint16_t len);
|
||||
void ota_init(void);
|
||||
void ota_deinit(void);
|
||||
void ota_set_imagesize(uint32_t imagesize);
|
||||
uint32_t ota_get_imagesize(void);
|
||||
void platform_reset(void);
|
||||
void ota_check(void);
|
||||
void jump_to_app(void);
|
||||
void check_file_integrity(void);
|
||||
void ota_info_init(void);
|
||||
void ota_boot_start(void);
|
||||
#endif
|
72
MCU/examples/application/bootloader/Inc/app_ota_service.h
Normal file
72
MCU/examples/application/bootloader/Inc/app_ota_service.h
Normal file
@ -0,0 +1,72 @@
|
||||
/******************************************************************************
|
||||
* Copyright (c) 2023, Freqchip
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
*/
|
||||
#ifndef APP_OTA_SERVICE
|
||||
#define APP_OTA_SERVICE
|
||||
|
||||
/*******************************************************************************
|
||||
* INCLUDES (<28><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>)
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* MACROS (<28>궨<EFBFBD><EAB6A8>)
|
||||
*/
|
||||
#define OTA_SVC_UUID {0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x02}
|
||||
|
||||
#define OTA_CHAR_UUID_TX {0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x02}
|
||||
#define OTA_CHAR_UUID_RX {0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x02}
|
||||
#define OTA_CHAR_UUID_NOTI {0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x02}
|
||||
#define OTA_CHAR_UUID_VERSION_INFO {0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x02}
|
||||
|
||||
#define OTAS_MAX_DATA_SIZE 600
|
||||
#define OTAS_NOTIFY_DATA_SIZE 20
|
||||
|
||||
/*******************************************************************************
|
||||
* CONSTANTS (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
*/
|
||||
enum
|
||||
{
|
||||
OTA_ATT_IDX_SERVICE,
|
||||
|
||||
OTA_ATT_IDX_CHAR_DECLARATION_VERSION_INFO,
|
||||
OTA_ATT_IDX_CHAR_VALUE_VERSION_INFO,
|
||||
|
||||
OTA_ATT_IDX_CHAR_DECLARATION_NOTI,
|
||||
OTA_ATT_IDX_CHAR_VALUE_NOTI,
|
||||
OTA_ATT_IDX_CHAR_CFG_NOTI,
|
||||
OTA_IDX_CHAR_USER_DESCRIPTION_NOTI,
|
||||
|
||||
OTA_ATT_IDX_CHAR_DECLARATION_TX,
|
||||
OTA_ATT_IDX_CHAR_VALUE_TX,
|
||||
|
||||
OTA_ATT_IDX_CHAR_DECLARATION_RX,
|
||||
OTA_ATT_IDX_CHAR_VALUE_RX,
|
||||
|
||||
OTA_ATT_NB,
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* TYPEDEFS (<28><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>)
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* GLOBAL VARIABLES (ȫ<>ֱ<EFBFBD><D6B1><EFBFBD>)
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
* LOCAL VARIABLES (<28><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>)
|
||||
*/
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* PUBLIC FUNCTIONS (ȫ<>ֺ<EFBFBD><D6BA><EFBFBD>)
|
||||
*/
|
||||
void ota_gatt_add_service(void);
|
||||
void ota_gatt_report_notify(uint8_t conidx, uint8_t *p_data, uint16_t len);
|
||||
void adv_timeout_TimerStop(void);
|
||||
#endif
|
27
MCU/examples/application/bootloader/Inc/app_task.h
Normal file
27
MCU/examples/application/bootloader/Inc/app_task.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef _APP_TASK_H
|
||||
#define _APP_TASK_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "co_list.h"
|
||||
|
||||
#define APP_TASK_EVENT_AT_CMD 0x00
|
||||
#define APP_TASK_EVENT_HOST_INITED 0x01
|
||||
|
||||
struct app_task_event {
|
||||
struct co_list_hdr hdr;
|
||||
|
||||
uint8_t event_type;
|
||||
|
||||
uint16_t param_len;
|
||||
uint8_t param[];
|
||||
};
|
||||
|
||||
void app_task_event_post(struct app_task_event *event, bool high);
|
||||
|
||||
struct app_task_event *app_task_event_alloc(uint8_t event_type, uint32_t param_len, bool block);
|
||||
|
||||
void app_task_init(void);
|
||||
|
||||
#endif // _APP_TASK_H
|
38
MCU/examples/application/bootloader/Inc/fal_cfg.h
Normal file
38
MCU/examples/application/bootloader/Inc/fal_cfg.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2018, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2018-05-17 armink the first version
|
||||
*/
|
||||
|
||||
#ifndef _FAL_CFG_H_
|
||||
#define _FAL_CFG_H_
|
||||
|
||||
#define FAL_DEBUG 1
|
||||
#define FAL_PART_HAS_TABLE_CFG
|
||||
#define FAL_USING_SFUD_PORT
|
||||
|
||||
#define NOR_FLASH_DEV_NAME "norflash0"
|
||||
|
||||
/* ===================== Flash device Configuration ========================= */
|
||||
extern const struct fal_flash_dev onchip_flash;
|
||||
//extern struct fal_flash_dev nor_flash0;
|
||||
|
||||
/* flash device table */
|
||||
#define FAL_FLASH_DEV_TABLE \
|
||||
{ \
|
||||
&onchip_flash, \
|
||||
}
|
||||
/* ====================== Partition Configuration ========================== */
|
||||
#ifdef FAL_PART_HAS_TABLE_CFG
|
||||
/* partition table */
|
||||
#define FAL_PART_TABLE \
|
||||
{ \
|
||||
{FAL_PART_MAGIC_WORD, "FlashEnv", "flashdb_onchip", 0x001AC000 - 12*1024, 12*1024, 0}, \
|
||||
}
|
||||
#endif /* FAL_PART_HAS_TABLE_CFG */
|
||||
|
||||
#endif /* _FAL_CFG_H_ */
|
Reference in New Issue
Block a user