📄 msapi_bootloader.h
字号:
////////////////////////////////////////////////////////////////////////////////////////////
// This file is commonly used by bootloader and system(main).
// Must be backward compatible with previously released version of bootloader.
////////////////////////////////////////////////////////////////////////////////////////////
#ifndef MSAPI_BOOTLOADER_H
#define MSAPI_BOOTLOADER_H
#include "DataType.h"
#ifdef MSAPI_BOOTLOADER_C
#define INTERFACE
#else
#define INTERFACE extern
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////////
// Any change of RM_ADDR_DOWNLOAD may not be backward compatible with previously released bootloader
//////////////////////////////////////////////////////////////////////////////////////////////////////
#define RM_ADDR_DOWNLOAD (0) // Must be at absolute address 0. The same as that in MApp_SaveData.h
#define RM_SIZE_DOWNLOAD ((U16)sizeof(ST_DOWNLOAD_INFO))
///////////////////////////////////////////////////////////////////////////////////////////////////
// Any change of DOWNLOAD_TYPE may not be backward compatible with previously released bootloader
// Two different bits or more between any of the two download types
///////////////////////////////////////////////////////////////////////////////////////////////////
typedef enum
{
DOWNLOAD_TYPE_NONE = 0x00, // No download
// Transport stream
DOWNLOAD_TYPE_OAD = 0x13, // Over-Air-Download
// UART
DOWNLOAD_TYPE_1KXMODEM = 0x25, // 1K XMODEM
// USB
DOWNLOAD_TYPE_USB_USER = 0x37, // User mode
DOWNLOAD_TYPE_USB_EXPERT = 0x3A, // Expert mode
// Max value is 0xFF since using data type U8
} EN_DOWNLOAD_TYPE;
///////////////////////////////////////////////////////////////////////////////////////////////////
// Any change of ST_DOWNLOAD_INFO may not be backward compatible with previously released bootloader
// All members are initialized to zeros.
///////////////////////////////////////////////////////////////////////////////////////////////////
#define DOWNLOAD_INTEGRITY_ID 0x5A
#define DOWNLOAD_MAX_SHORTNAME_LEN (2+1+8+1+3) // "A:\12345678.123"
#define DOWNLOAD_MAX_LONGNAME_LEN 40 // File name only, not including path.
#define DOWNLOAD_RESERVED_LEN 6
typedef struct
{
U8 u8IntegrityID; // For integrity check of download type.
U8 u8Type; // Must be explicitly declared as U8 instead of DOWNLOAD_TYPE.
U8 au8ShortFileName[DOWNLOAD_MAX_SHORTNAME_LEN + 1];
U8 au8LongFileName[DOWNLOAD_MAX_LONGNAME_LEN + 1];
U8 u8Reserve[DOWNLOAD_RESERVED_LEN];
} ST_DOWNLOAD_INFO;
//////////////////////////////////////////////////////////////////////////////////
#if (BOOTLOADER_SYSTEM)
INTERFACE BOOLEAN g_bMainImageOK;
INTERFACE EN_DOWNLOAD_TYPE g_u8BootupDownloadType;
#endif // #if (BOOTLOADER_SYSTEM)
//////////////////////////////////////////////////////////////////////////////////
INTERFACE void msAPI_BLoader_BootupSwitch(void);
INTERFACE void msAPI_BLoader_Reboot(void);
INTERFACE BOOLEAN msAPI_BLoader_CheckIntegrity(void);
INTERFACE void msAPI_BLoader_ClearDownloadInfo(void);
INTERFACE EN_DOWNLOAD_TYPE msAPI_BLoader_GetDownloadType(void);
INTERFACE void msAPI_BLoader_SetDownloadType(EN_DOWNLOAD_TYPE u8DownloadType);
INTERFACE void msAPI_BLoader_GetDownloadPath(U8 *pau8ShortFilePath, U8 *pau8LongFileName);
INTERFACE void msAPI_BLoader_SetDownloadPath(U8 *pau8ShortFilePath, U8 *pau8LongFileName);
#undef INTERFACE
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -