82 lines
3.2 KiB
C
82 lines
3.2 KiB
C
//************************************************************
|
||
// Copyright (c) 深圳市赛元微电子有限公司
|
||
// 文件名称: sc92f_iap.h
|
||
// 作者: 赛元应用团队
|
||
// 模块功能: IAP固件库函数头文件
|
||
// 最后更正日期: 2022年3月23日
|
||
// 版本: V1.100005
|
||
// 说明: 本文件仅适用于赛元92F/93F/92L系列单片机
|
||
//*************************************************************
|
||
|
||
#ifndef _sc92f_IAP_H_
|
||
#define _sc92f_IAP_H_
|
||
|
||
#include "sc92f.h"
|
||
#include "intrins.h"
|
||
|
||
typedef enum
|
||
{
|
||
IAP_MEMTYPE_ROM = (uint8_t)0x00, //IAP操作区域为ROM
|
||
IAP_MEMTYPE_UID = (uint8_t)0x01, //IAP操作区域为UID,只允许读操作!!!
|
||
IAP_MEMTYPE_EEPROM = (uint8_t)0x02 //IAP操作区域为EEPROM
|
||
} IAP_MemType_TypeDef;
|
||
|
||
|
||
#if defined(SC92F854x) || defined(SC92F754x) || defined(SC92F844xB) || defined(SC92F744xB) || defined(SC92F84Ax_2) || defined(SC92F74Ax_2)\
|
||
|| defined(SC92F7003) || defined(SC92F8003) || defined(SC92F740x)
|
||
typedef enum
|
||
{
|
||
IAP_HOLDTIME_1500US = (uint8_t)0x08, //设定CPU Hold Time为1.5MS
|
||
IAP_HOLDTIME_3000US = (uint8_t)0x04, //设定CPU Hold Time为3MS
|
||
IAP_HOLDTIME_6000US = (uint8_t)0x00 //设定CPU Hold Time为6MS
|
||
}IAP_HoldTime_TypeDef;
|
||
#elif defined (SC92F846xB) || defined (SC92F746xB) || defined (SC92F836xB) || defined (SC92F736xB)|| defined (SC92F83Ax) || defined (SC92F73Ax)\
|
||
|| defined (SC92F84Ax) || defined (SC92F74Ax)|| defined (SC92F742x) || defined (SC92F730x) || defined (SC92F827X) || defined (SC92F837X) \
|
||
|| defined (SC92F725X) || defined (SC92F735X) || defined (SC92F732X) || defined (SC92F7490) || defined (SC93F833x) || defined (SC93F843x)\
|
||
|| defined (SC93F733x) || defined (SC93F743x)
|
||
typedef enum
|
||
{
|
||
IAP_HOLDTIME_4MS = (uint8_t)0x00, //设定CPU Hold Time为4MS
|
||
IAP_HOLDTIME_2MS = (uint8_t)0x04, //设定CPU Hold Time为2MS
|
||
IAP_HOLDTIME_1MS = (uint8_t)0x08 //设定CPU Hold Time为1MS
|
||
}IAP_HoldTime_TypeDef;
|
||
#elif defined (SC92FWxx)
|
||
typedef enum
|
||
{
|
||
IAP_HOLDTIME_3000US = (uint8_t)0x00, //设定CPU Hold Time为4MS
|
||
IAP_HOLDTIME_1500US = (uint8_t)0x04, //设定CPU Hold Time为2MS
|
||
IAP_HOLDTIME_1000US = (uint8_t)0x08 //设定CPU Hold Time为1MS
|
||
}IAP_HoldTime_TypeDef;
|
||
#elif defined(SC92F848x) || defined(SC92F748x) || defined(SC92F859x) || defined(SC92F759x) || defined (SC92L853x) || defined (SC92L753x)
|
||
typedef enum
|
||
{
|
||
IAP_HOLDTIME_Null = (uint8_t)0x00 //高速Flash,不需要Hold Time
|
||
}IAP_HoldTime_TypeDef;
|
||
|
||
typedef enum
|
||
{
|
||
IAP_BTLDType_APPROM = (uint8_t)0x00, //MCU复位后从APROM复位
|
||
IAP_BTLDType_LDROM = (uint8_t)0x01, //MCU复位后从LDROM复位
|
||
} IAP_BTLDType_TypeDef;
|
||
|
||
|
||
#endif
|
||
|
||
|
||
void IAP_DeInit(void);
|
||
void IAP_SetHoldTime(IAP_HoldTime_TypeDef IAP_HoldTime);
|
||
void IAP_ProgramByte(uint16_t Address,
|
||
uint8_t Data, IAP_MemType_TypeDef IAP_MemType,
|
||
uint8_t WriteTimeLimit);
|
||
uint8_t IAP_ReadByte(uint16_t Address,
|
||
IAP_MemType_TypeDef IAP_MemType);
|
||
|
||
#if defined(SC92F848x) || defined(SC92F748x) || defined(SC92F859x) || defined(SC92F759x) || defined (SC92L853x) || defined (SC92L753x)
|
||
void IAP_SectorErase(IAP_MemType_TypeDef IAP_MemType, uint32_t IAP_SectorEraseAddress,
|
||
uint8_t WriteTimeLimit);
|
||
void IAP_BootLoaderControl(IAP_BTLDType_TypeDef IAP_BTLDType);
|
||
#endif
|
||
|
||
#endif
|
||
|
||
/******************* (C) COPYRIGHT 2020 SinOne Microelectronics *****END OF FILE****/ |