58#define IAP_SetWaitTime() (IAP_TPS = (uint8_t)(__CONF_FOSC / 1000000UL))
59#define IAP_ReadData() (IAP_DATA)
60#define IAP_WriteData(__BYTE__) (IAP_DATA = (__BYTE__))
65#define IAP_SetIdle() (IAP_CMD = IAP_CMD & ~(0x03))
70#define IAP_CmdRead(__16BIT_ADDR__) do{ \
72 IAP_ADDRH = ((__16BIT_ADDR__) >> 8); \
73 IAP_ADDRL = ((__16BIT_ADDR__) & 0xFF); \
74 IAP_CMD = IAP_CMD & ~(0x03) | 0x01; \
84#define IAP_CmdWrite(__16BIT_ADDR__) do{ \
86 IAP_ADDRH = ((__16BIT_ADDR__) >> 8); \
87 IAP_ADDRL = ((__16BIT_ADDR__) & 0xFF); \
88 IAP_CMD = IAP_CMD & ~(0x03) | 0x02; \
98#define IAP_CmdErase(__16BIT_ADDR__) do{ \
100 IAP_ADDRH = ((__16BIT_ADDR__) >> 8); \
101 IAP_ADDRL = ((__16BIT_ADDR__) & 0xFF); \
102 IAP_CMD = IAP_CMD & ~(0x03) | 0x03; \
110#define IAP_SetEnabled(__STATE__) SFR_ASSIGN(IAP_CONTR, 7, __STATE__)
111#define IAP_SetRestartFrom(__FROM__) SFR_ASSIGN(IAP_CONTR, 6, __FROM__)
112#define IAP_SoftReset() SFR_SET(IAP_CONTR, 5)
113#define IAP_IsCmdFailed() (IAP_CONTR & (0x01 << 4))
114#define IAP_ClearCmdFailFlag() SFR_RESET(IAP_CONTR, 4)
@ IAP_RestartFrom_UserCode
@ IAP_RestartFrom_ISPCode