182 lines
4.6 KiB
C
182 lines
4.6 KiB
C
|
/*******************************************************************************
|
|||
|
*
|
|||
|
*
|
|||
|
* 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__
|