154 lines
4.4 KiB
C
154 lines
4.4 KiB
C
|
/*******************************************************************************
|
|||
|
*
|
|||
|
*
|
|||
|
* File: hal_system.h
|
|||
|
* Description hal 通用系统接口头文件
|
|||
|
* Version V0.1
|
|||
|
* Date 2021-05-21
|
|||
|
* Author lzy
|
|||
|
*******************************************************************************/
|
|||
|
#ifndef __HAL_SYSTEM_H__
|
|||
|
#define __HAL_SYSTEM_H__
|
|||
|
/*******************************************************************************
|
|||
|
* 1.Included files
|
|||
|
*******************************************************************************/
|
|||
|
#include "tau_common.h"
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
* 2.Global constant and macro definitions using #define
|
|||
|
*******************************************************************************/
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
* 3.Global structures, unions and enumerations using typedef
|
|||
|
*******************************************************************************/
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
* 4.Global variable extern declarations
|
|||
|
*******************************************************************************/
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
* 5.Global function prototypes
|
|||
|
*******************************************************************************/
|
|||
|
|
|||
|
/**
|
|||
|
* @brief system 初始化
|
|||
|
* @param none
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_init(uint32_t sysclk);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief system 初始化 console
|
|||
|
* @param baud_rate 波特率
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_init_console(uint32_t baud_rate);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief mcu进入idle模式,等待中断唤醒
|
|||
|
* @param disable_systick: 进入idle时是否关闭systick(退出idle 恢复systick)
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_idle_mode(bool disable_systick);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 注册systick回调函数
|
|||
|
* @param cb_func:回调函数地址
|
|||
|
* @retval 无
|
|||
|
*/
|
|||
|
void hal_system_register_systick_cb(fcb_type cb_func);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 启动sys tickt
|
|||
|
* @param ms: sys tickt 间隔, 范围1-10ms
|
|||
|
* @retval true/false
|
|||
|
*/
|
|||
|
bool hal_system_enable_systick(uint8_t ms);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 获取systickt
|
|||
|
* @param none
|
|||
|
* @retval 当前systickt值
|
|||
|
*/
|
|||
|
bool hal_system_disable_systick(void);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 获取systickt
|
|||
|
* @param none
|
|||
|
* @retval 当前systickt值
|
|||
|
*/
|
|||
|
uint32_t hal_system_get_tick(void);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 进入deep sleep mode 模式, 等待AP_RSTN 唤醒
|
|||
|
* @param polarity true:上升沿唤醒, false:下降沿唤醒
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_deep_sleep_mode(bool polarity);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 配置共享flash开关(使用过后注意关闭,常开功耗会增加)
|
|||
|
* @param enable:true:可通过F_SPI访问内部flash , false:不可通过F_SPI访问内部flash
|
|||
|
* @retval true/false
|
|||
|
*/
|
|||
|
bool hal_system_share_flash_mode(bool enable);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief sleep mode 配置
|
|||
|
* @param enable
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_sleep_mode(bool enable);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief reset chip
|
|||
|
* @param none
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_reset_chip(void);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 开关PVD检测
|
|||
|
* @param none
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_set_pvd(bool enable);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief VCC电源开关,
|
|||
|
* 使用场景: VCC掉电,13D与13M使用外灌电源时,关闭内部VCC供电,防止电源倒灌
|
|||
|
* @param enable: true:打开CP, false:关闭CP
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_set_vcc(bool enable);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 用户字节数组形式从flash读取数据,按页读取,每页1024字节
|
|||
|
* @param *usr_cfg_t_addr(数组首地址),
|
|||
|
usr_cfg_t_size(数组大小可以超过1024,可以按页读也可连续跨页读)
|
|||
|
flash_page (页0~63)
|
|||
|
* @retval bool 无
|
|||
|
*/
|
|||
|
bool hal_system_flash_read(uint8_t *usr_cfg_t_addr, uint16_t usr_cfg_t_size, uint8_t flash_page);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 用户字节数组形式存入flash(次数有限,不可频繁写入),按页写入,每页1024字节
|
|||
|
* @param *usr_cfg_t_addr(数组首地址),
|
|||
|
usr_cfg_t_size(数组大小可以超过1024,可以按页写也可连续跨页写入),
|
|||
|
推荐按页顺序写入方式,第一次必须从0页开始写入,后续才可1~63任意页写入
|
|||
|
flash_page (写入页0~63)
|
|||
|
* @retval bool 校验size是否超出
|
|||
|
*/
|
|||
|
bool hal_system_flash_write(uint8_t *usr_cfg_t_addr, uint16_t usr_cfg_t_size, uint8_t flash_page);
|
|||
|
|
|||
|
#if defined(ISP_568) || defined(ISP_368)
|
|||
|
/**
|
|||
|
* @brief 控制DPHY内部校准开关
|
|||
|
* @param en: 使能开关
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void hal_system_set_phy_calibration(bool en);
|
|||
|
#endif
|
|||
|
|
|||
|
#endif //__HAL_SYSTEM_H__
|