SAMSUNG_Note20_FHD_ISP368_BC/src/sdk/include/hal_system.h

182 lines
4.6 KiB
C
Raw Normal View History

/*******************************************************************************
*
*
* File: hal_system.h
* Description hal ͨ<EFBFBD><EFBFBD>ϵͳ<EFBFBD>ӿ<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
* 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 <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @param none
* @retval none
*/
void hal_system_init(uint32_t sysclk);
/**
* @brief system <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD> console
* @param baud_rate <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval none
*/
void hal_system_init_console(uint32_t baud_rate);
/**
* @brief mcu<EFBFBD><EFBFBD><EFBFBD><EFBFBD>idleģʽ,<EFBFBD>ȴ<EFBFBD><EFBFBD>жϻ<EFBFBD><EFBFBD><EFBFBD>
* @param disable_systick: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>idleʱ<EFBFBD>Ƿ<EFBFBD><EFBFBD>ر<EFBFBD>systick(<EFBFBD>˳<EFBFBD>idle <EFBFBD>ָ<EFBFBD>systick)
* @retval none
*/
void hal_system_idle_mode(bool disable_systick);
/**
* @brief ע<EFBFBD><EFBFBD>systick<EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param cb_func<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
* @retval <EFBFBD><EFBFBD>
*/
void hal_system_register_systick_cb(fcb_type cb_func);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>sys tickt
* @param ms: sys tickt <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>Χ1-10ms
* @retval true/false
*/
bool hal_system_enable_systick(uint8_t ms);
/**
* @brief <EFBFBD><EFBFBD>ȡsystickt
* @param none
* @retval <EFBFBD><EFBFBD>ǰsysticktֵ
*/
bool hal_system_disable_systick(void);
/**
* @brief <EFBFBD><EFBFBD>ȡsystickt
* @param none
* @retval <EFBFBD><EFBFBD>ǰsysticktֵ
*/
uint32_t hal_system_get_tick(void);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>deep sleep mode ģʽ, <EFBFBD>ȴ<EFBFBD>AP_RSTN <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param polarity true:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD>, false:<EFBFBD>½<EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD>
* @retval none
*/
void hal_system_deep_sleep_mode(bool polarity);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD>flash<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ʹ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
* @param enable:true:<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>F_SPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash , false:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>F_SPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>flash
* @retval true/false
*/
bool hal_system_share_flash_mode(bool enable);
/**
* @brief sleep mode <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @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 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>PVD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param none
* @retval none
*/
void hal_system_set_pvd(bool enable);
/**
* @brief VCC<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD>
* ʹ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>: VCC<EFBFBD><EFBFBD><EFBFBD>13D<EFBFBD><EFBFBD>13Mʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դʱ<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD>ڲ<EFBFBD>VCC<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param enable: true:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>CP, false:<EFBFBD>ر<EFBFBD>CP
* @retval none
*/
void hal_system_set_vcc(bool enable);
/**
* @brief <EFBFBD>û<EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>flash<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ÿҳ1024<EFBFBD>ֽ<EFBFBD>
* @param *usr_cfg_t_addr(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD>ַ),
usr_cfg_t_size(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><EFBFBD><EFBFBD>1024<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰<EFBFBD>ҳ<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD>)
flash_page <EFBFBD><EFBFBD>ҳ0~63<EFBFBD><EFBFBD>
* @retval bool <EFBFBD><EFBFBD>
*/
bool hal_system_flash_read(uint8_t *usr_cfg_t_addr, uint16_t usr_cfg_t_size, uint8_t flash_page);
/**
* @brief <EFBFBD>û<EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>flash(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>),<EFBFBD><EFBFBD>ҳд<EFBFBD>ÿҳ1024<EFBFBD>ֽ<EFBFBD>
* @param *usr_cfg_t_addr(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD>ַ),
usr_cfg_t_size(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD><EFBFBD><EFBFBD>1024<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰<EFBFBD>ҳдҲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳд<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD>
<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>ҳ˳<EFBFBD><EFBFBD>д<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0ҳ<EFBFBD><EFBFBD>ʼд<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>1~63<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳд<EFBFBD><EFBFBD>
flash_page <EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>ҳ0~63<EFBFBD><EFBFBD>
* @retval bool У<EFBFBD><EFBFBD>size<EFBFBD>Ƿ񳬳<EFBFBD>
*/
bool hal_system_flash_write(uint8_t *usr_cfg_t_addr, uint16_t usr_cfg_t_size, uint8_t flash_page);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>flash<EFBFBD>˳<EFBFBD>deep sleep power mode
* @param <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0xABָ<EFBFBD><EFBFBD>
* @retval null
*/
void hal_system_flash_release_power_down(void);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>flash<EFBFBD><EFBFBD><EFBFBD><EFBFBD>deep sleep power mode
* @param <EFBFBD><EFBFBD><EFBFBD><EFBFBD>0xB9ָ<EFBFBD><EFBFBD>
* @retval null
*/
void hal_system_flash_power_down(void);
#if defined(ISP_568) || defined(ISP_368)
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPHY<EFBFBD>ڲ<EFBFBD>У׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param en: ʹ<EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD>
* @retval none
*/
void hal_system_set_phy_calibration(bool en);
#endif
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>debug state
* @param none
* @retval debug state
*/
uint32_t hal_system_get_debug_state(void);
/**
* @brief clear debug state(debug only)
* @param none
* @retval none
*/
void hal_system_clear_debug_state(void);
#endif //__HAL_SYSTEM_H__