blob: 02d5d50c73ab21c24102166ab9247832aaa9f98b [file] [log] [blame]
//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------
#ifdef __MAIN__
#define GLOBAL
#else
#define GLOBAL extern
#endif
#define POLY 0x8408 // CRC16-CCITT FCS (X^16+X^12+X^5+1)
// ---------------------------------
// Target BL Command Codes
// ---------------------------------
#define TGT_CMD_ENTER_BL_MODE 0x90
#define TGT_CMD_GET_INFO 0x20
#define TGT_CMD_ERASE_FLASH_PAGE 0x30
#define TGT_CMD_WRITE_SIGNATURE 0x40
#define TGT_CMD_RESET_MCU 0x50
#define TGT_CMD_GET_PAGE_CRC 0x60
#define TGT_CMD_WRITE_FLASH_BYTES 0x70
// ---------------------------------
// Target BL Response Codes
// ---------------------------------
#define TGT_RSP_OK 0x00 // RSP_OK should always be 0
#define TGT_RSP_APP_MODE 0x01
#define TGT_RSP_BL_MODE 0x02
#define TGT_RSP_SIG_NOT_ERASED 0x03
#define TGT_RSP_ADDR_INVALID 0x04
#define TGT_RSP_UNSUPPORTED_CMD 0x05
#define TGT_RSP_PARAMETER_INVALID 0x06
#define TGT_RSP_ERROR 0x80
#define TGT_ENTER_BL_MODE_REQ_RSP_CODE 0x52 // This will request a response
#define TGT_BL_FW_INFOBLOCK_LENGTH 16 // See documentation
#define TGT_BL_FW_VERSION_LOW 0x00
#define TGT_BL_FW_VERSION_HIGH 0x01
#define KEY_CODE0 0xA5
#define KEY_CODE1 0xF1
#define APP_START_ADDR 0x600
#define APP_END_ADDR_OLD 0x7DFF
#define APP_END_ADDR_NEW 0x7BFF
// Signature Bytes
#define SIG_BYTE0 0x3D
#define SIG_BYTE1 0xC2
#define YTE_MODULE_VER 0x02
#define SMAC_MODULE_VER 0x03
#define YTE_MODULE_VER_OLD 0x04
#define SMAC_MODULE_VER_OLD 0x05
#define SMAC_MODULE_VER_NEW 0x07
#define YTE_MODULE_VER_NEW 0x0A
//-----------------------------------------------------------------------------
// Function PROTOTYPES
//-----------------------------------------------------------------------------
int mcsdl_download_binary_data(void); // with binary type .c file.
int mcsdl_download_binary_file(void); // with binary type .bin file.
//int ResetMCU ();
//int WriteSignature ();
void Update_CRC (uint8_t newbyte);
int GetPageCRC (unsigned int addr);
int WriteBytes (unsigned int addr, unsigned int num);
int EnterBootMode (int res);
//int GetInfo ();
int EraseFlashPage (unsigned int addr);
int Firmware_Download (void);
//-----------------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------------