⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msapi_bootloader.h

📁 mstar 776 开发的车载dvd
💻 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 + -