| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /*
- * Copyright (c) 2022 OpenLuat & AirM2M
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
- #ifndef __AIR105_SSC_H
- #define __AIR105_SSC_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "air105.h"
- #define SSC_ITSysXTAL12M BIT(18) //ϵͳ��12Mʱ�ӱ�־
- #define SSC_ITSysGlitch BIT(17) //����Դë�̱�־
- #define SSC_ITSysVolHigh BIT(16) //����Դ��ѹ��־
- #define SSC_ITSysVolLow BIT(15) //����ԴǷѹ��־
- typedef struct
- {
- FunctionalState ParityCheck; //��żУ��ʹ��
- }SSC_InitTypeDef;
- /*
- * ��BPK��Ϊ4��ÿ��256����Ϊ��λ���ö�дȨ��
- * SSC_BPKAccessCtrBlock_0Ϊ��ʼ0��ַ��
- */
- #define SSC_BPKAccessCtrBlock_0 (0x01)
- #define SSC_BPKAccessCtrBlock_1 (0x02)
- #define SSC_BPKAccessCtrBlock_All (0x03)
- typedef enum
- {
- SSC_BPKReadOnly = 0x01, //BPK��ֻ��
- SSC_BPKWriteOnly = 0x02, //BPK��ֻд
- SSC_BPKReadWrite = 0x03 //BPK���д
- }SSC_BPKAccessCtrlTypeDef;
- #define IS_BPK_ACCESS_CTRL(CTRL) (((CTRL) == SSC_BPKReadOnly) || ((CTRL) == SSC_BPKWriteOnly) || \
- ((CTRL) == SSC_BPKReadWrite))
- #define SSC_SENSOR_XTAL12M ((uint32_t)0x00000001)
- #define SSC_SENSOR_VOL_LOW ((uint32_t)0x00000002)
- #define SSC_SENSOR_VOL_HIGH ((uint32_t)0x00000004)
- #define SSC_SENSOR_VOLGLITCH ((uint32_t)0x00000008)
- #define IS_SSC_SENSOR(SENSOR) ((((SENSOR) & (uint32_t)0xFFFFFFF0) == 0x00) && ((SENSOR) != (uint32_t)0x00))
- typedef enum
- {
- SSC_SENSOR_CPUReset = 0,
- SSC_SENSOR_Interrupt = 1
- }SSC_SENSOR_RespModeTypeDef;
- #define IS_SSC_SENSOR_RESP_MODE(Mode) ((Mode) == SSC_SENSOR_CPUReset ||\
- (Mode) == SSC_SENSOR_Interrupt)
- /**
- * @method SSC_Init
- * @brief SSC��ȫ���Գ�ʼ��
- * @param SSC_InitTypeDef SSC_InitStruct
- * @retval void
- */
- void SSC_Init(SSC_InitTypeDef *SSC_InitStruct);
- /**
- * @method SSC_GetITStatus
- * @brief SSC��ȫ�ж�״̬
- * @param uint32_t SSC_IT
- * @retval ITStatus
- */
- ITStatus SSC_GetITStatus(uint32_t SSC_IT);
- /**
- * @method SSC_ClearITPendingBit
- * @brief SSC��ȫ�ж����
- * @param uint32_t SSC_IT
- * @retval void
- */
- void SSC_ClearITPendingBit( uint32_t SSC_IT);
- /**
- * @method SSC_SetDataRAMScrambler
- * @brief ��������RAM����
- * @param uint32_t Scrambler
- * @retval void
- */
- void SSC_SetDataRAMScrambler(uint32_t Scrambler);
- /**
- * @method SSC_BPKAccessCtrConfig
- * @brief ����BPK����Ȩ��
- * @param uint32_t SSC_BPKAccessCtrBlock
- * @param SSC_BPKAccessCtrlTypeDef SSC_BPKAccessCtr
- * @retval void
- */
- void SSC_BPKAccessCtrlConfig(uint32_t SSC_BPKAccessCtrBlock, SSC_BPKAccessCtrlTypeDef SSC_BPKAccessCtr);
- /**
- * @method SSC_SENSOR_Enable
- * @brief ����ϵͳSensor
- * @param SSC_SENSOR
- * @retval
- */
- uint32_t SSC_SENSORCmd(uint32_t SSC_SENSOR, FunctionalState NewState);
- /**
- * @method SSC_SENSORLock
- * @brief ����ϵͳSensor����״̬
- * @param SSC_SENSOR
- * @retval
- */
- void SSC_SENSORLock(uint32_t SSC_SENSOR);
- /**
- * @method SSC_SENSOR_AttackRespMode
- * @brief ϵͳSensor��Ӧ��ʽ
- * @param SSC_SENSOR_RespMode
- * @retval
- */
- void SSC_SENSORAttackRespMode(SSC_SENSOR_RespModeTypeDef SSC_SENSOR_RespMode);
- void SSC_SENSORKeyClearCmd(uint32_t SSC_SENSOR, FunctionalState KeyClearEn);
- #ifdef __cplusplus
- }
- #endif
- #endif
- /************************** (C) COPYRIGHT Megahunt *****END OF FILE****/
|