📄 system.h
字号:
/*********************************************************************************************************
** Function name: SavePortSet
** Descriptions: 保存本机端口设置
** input parameters: Port:端口号
** Returned value: TRUE or FLASH
********************************************************************************************************/
extern uint8 SavePortSet(uint16 Port);
/*********************************************************************************************************
** Function name: SaveServerIpSet
** Descriptions: 保存服务器IP设置
** input parameters: ip0~ip3:ip值
** Returned value: TRUE or FLASH
********************************************************************************************************/
extern uint8 SaveServerIpSet(uint8 ip0, uint8 ip1, uint8 ip2, uint8 ip3);
/*********************************************************************************************************
** Function name: GetServerPortSet
** Descriptions: 保存服务器端口设置
** input parameters: Port:端口号
** Returned value: TRUE or FLASH
********************************************************************************************************/
extern uint8 SaveServerPortSet(uint16 Port);
/*********************************************************************************************************
** 函数名称: BeginUpgrade
** 功能描述: 开始升级
** 输 入: 无
** 输 出: 0: 将要升级第0块
** 1: 将要升级第1块
********************************************************************************************************/
extern uint8 BeginUpgrade(void);
/*********************************************************************************************************
** 函数名称: WordProgram
** 功能描述: 字节编程
** 输 入: Addr :所编程的2个字节在程序中的相对偏移
** Data :要编成的数据
** 输 出: 0: 失败
** 1: 成功
********************************************************************************************************/
extern uint8 WordProgram(uint32 Addr, uint16 Data);
/*********************************************************************************************************
** 函数名称: SectorErase
** 功能描述: 擦除扇区()
** 输 入: Index 相对当前程序起始地址的扇区索引
** 输 出: 0: 失败
** 1: 成功
********************************************************************************************************/
extern uint8 SectorErase(int32 Index);
/*********************************************************************************************************
** 函数名称: EndUpgrade
** 功能描述: 升级结束
** 输 入: 无
** 输 出: 无
********************************************************************************************************/
extern void EndUpgrade(void);
#define LOW_ADDR 0x80020000
#define HIGH_ADDR 0x80110000
#define WordUpProgram(a, b) WordProgram(a, b)
/*********************************************************************************************************
** 函数名称: WordCurProgram
** 功能描述: 半字(16位)编程
** 输 入: Addr :所编程的2个字节在当前程序中的相对偏移
** Data :要编成的数据
** 输 出: 0: 失败
** 1: 成功
********************************************************************************************************/
__inline uint8 WordCurProgram(uint32 Addr, uint16 Data)
{
extern void Reset(void);
if ((uint32)Reset == LOW_ADDR)
{
return WordProgram(Addr - HIGH_ADDR + LOW_ADDR, Data);
}
else
{
return WordProgram(Addr + HIGH_ADDR - LOW_ADDR, Data);
}
}
/*********************************************************************************************************
** 函数名称: WordUpRead
** 功能描述: 读半字(16位)
** 输 入: Addr :所编程的2个字节在升级程序中的相对偏移
** 输 出: 读到的结果
********************************************************************************************************/
__inline uint32 WordUpRead(uint32 Offset)
{
extern void Reset(void);
if ((uint32)Reset == LOW_ADDR)
{
return ((uint16 *)(HIGH_ADDR + Offset))[0];
}
else
{
return ((uint16 *)(LOW_ADDR + Offset))[0];
}
}
/*********************************************************************************************************
** 函数名称: WordRead
** 功能描述: 读半字(16位)
** 输 入: Addr :所编程的2个字节在当前程序中的相对偏移
** 输 出: 读到的结果
********************************************************************************************************/
__inline uint32 WordCurRead(uint32 Offset)
{
extern void Reset(void);
return ((uint16 *)((uint32)Reset + Offset))[0];
}
/*********************************************************************************************************
** 函数名称: GetUpSecIndex
** 功能描述: 获得指定升级程序偏移所在的扇区号(SectorErase需要的参数)
** 输 入: Offset 相对升级程序起始地址的偏移地址
** 输 出: 相对当前程序的扇区偏移(SectorErase需要的参数)
********************************************************************************************************/
__inline int32 GetUpSecIndex(int32 Offset)
{
extern void Reset(void);
if ((uint32)Reset == LOW_ADDR)
{
return (Offset >> 12) + ((HIGH_ADDR - LOW_ADDR) >> 12);
}
else
{
return (Offset >> 12) - ((HIGH_ADDR - LOW_ADDR) >> 12);
}
}
/*********************************************************************************************************
** 函数名称: GetCurSecIndex
** 功能描述: 获得指定程序偏移所在的扇区号(SectorErase需要的参数)
** 输 入: Offset 相对程序起始地址的偏移地址
** 输 出: 相对当前程序的扇区偏移(SectorErase需要的参数)
********************************************************************************************************/
__inline int32 GetCurSecIndex(int32 Offset)
{
return (Offset >> 12);
}
/*********************************************************************************************************
** 函数名称: GetCodeVer
** 功能描述: 获得固件版本
** 输 入: 无
** 输 出: 固件版本
********************************************************************************************************/
__inline uint32 GetCodeVer(void)
{
extern uint32 CodeVer;
return CodeVer;
}
/*********************************************************************************************************
** 函数名称: SetFIQISR
** 功能描述: 设置FIR ISR地址,注意:FIR ISR必须用ARM指令编译
** 输 入: IST|R地址
** 输 出: 无
********************************************************************************************************/
__inline void SetFIQISR(uint32 addr)
{
extern uint32 FIQAddr;
FIQAddr = addr;
}
/*********************************************************************************************************
** 函数名称: SetFIQISR
** 功能描述: 设置FIR ISR地址,注意:FIR ISR必须用ARM指令编译
** 输 入: IST|R地址
** 输 出: 无
********************************************************************************************************/
__inline void SetDataAbortISR(uint32 addr)
{
extern uint32 DataAbortAddr;
DataAbortAddr = addr;
}
/*********************************************************************************************************
** 函数名称: SetFIQISR
** 功能描述: 设置FIR ISR地址,注意:FIR ISR必须用ARM指令编译
** 输 入: IST|R地址
** 输 出: 无
********************************************************************************************************/
__inline void SetPrefetchISR(uint32 addr)
{
extern uint32 PrefetchAddr;
PrefetchAddr = addr;
}
/*********************************************************************************************************
** 函数名称: SetFIQISR
** 功能描述: 设置FIR ISR地址,注意:FIR ISR必须用ARM指令编译
** 输 入: IST|R地址
** 输 出: 无
********************************************************************************************************/
__inline void SetUndefinedSR(uint32 addr)
{
extern uint32 UndefinedAddr;
UndefinedAddr = addr;
}
/*********************************************************************************************************
** Function name: OSGetPrio
** Descriptions: 返回当前任务的优先级
** input parameters: none
** Returned value: 优先级
********************************************************************************************************/
extern uint8 OSGetPrio(void);
/*********************************************************************************************************
** Function name: GetOSCPUUsage
** Descriptions: 返回当前CPU占有率
** input parameters: none
** Returned value: CPU占有率
********************************************************************************************************/
extern int8 GetOSCPUUsage(void);
/*********************************************************************************************************
** Function name: OSIntNesting
** Descriptions: 返回中断嵌套层次
** input parameters: none
** Returned value: OSIntNesting
********************************************************************************************************/
extern uint8 GetOSIntNesting(void);
#ifdef __cplusplus
}
#endif
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -