📄 cipher.h
字号:
//-------------------
#define CIPHER_A5_ENCI_REG6 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG6_OFFSET)
//CIPHER_A5_ENCI_REG7
//-------------------
#define CIPHER_A5_ENCI_REG7 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG7_OFFSET)
//CIPHER_A5_ENCI_REG8
//-------------------
#define CIPHER_A5_ENCI_REG8 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG8_OFFSET)
//CIPHER_A5_ENCI_REG9
//-------------------
#define CIPHER_A5_ENCI_REG9 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG9_OFFSET)
//CIPHER_A5_ENCI_REG10
//-------------------
#define CIPHER_A5_ENCI_REG10 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG10_OFFSET)
//CIPHER_A5_ENCI_REG11
//-------------------
#define CIPHER_A5_ENCI_REG11 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG11_OFFSET)
//CIPHER_A5_ENCI_REG12
//-------------------
#define CIPHER_A5_ENCI_REG12 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG12_OFFSET)
//CIPHER_A5_ENCI_REG13
//-------------------
#define CIPHER_A5_ENCI_REG13 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG13_OFFSET)
//CIPHER_A5_ENCI_REG14
//-------------------
#define CIPHER_A5_ENCI_REG14 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG14_OFFSET)
//CIPHER_A5_ENCI_REG15
//-------------------
#define CIPHER_A5_ENCI_REG15 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG15_OFFSET)
//CIPHER_A5_ENCI_REG16
//-------------------
#define CIPHER_A5_ENCI_REG16 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG16_OFFSET)
//CIPHER_A5_ENCI_REG17
//-------------------
#define CIPHER_A5_ENCI_REG17 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG17_OFFSET)
//CIPHER_A5_ENCI_REG18
//-------------------
#define CIPHER_A5_ENCI_REG18 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG18_OFFSET)
//CIPHER_A5_ENCI_REG19
//-------------------
#define CIPHER_A5_ENCI_REG19 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG19_OFFSET)
//CIPHER_A5_ENCI_REG20
//-------------------
#define CIPHER_A5_ENCI_REG20 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG20_OFFSET)
//CIPHER_A5_ENCI_REG21
//-------------------
#define CIPHER_A5_ENCI_REG21 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG21_OFFSET)
//CIPHER_A5_ENCI_REG22
//-------------------
#define CIPHER_A5_ENCI_REG22 REG16(CIPHER_A5_BASE_ADDR_ARM+CIPHER_A5_ENCI_REG22_OFFSET)
#define CIPHER_A5_CNTL_REG_BAD_ACCESS 0x2740
#define CIPHER_A5_KC_REG1_BAD_ACCESS 0x2745
#define CIPHER_A5_KC_REG2_BAD_ACCESS 0x2746
#define CIPHER_A5_KC_REG3_BAD_ACCESS 0x2747
#define CIPHER_A5_KC_REG4_BAD_ACCESS 0x2748
#define CIPHER_A5_KC_REG5_BAD_ACCESS 0x2749
#define CIPHER_A5_KC_REG6_BAD_ACCESS 0x2750
#define CIPHER_A5_KC_REG7_BAD_ACCESS 0x2751
#define CIPHER_A5_KC_REG8_BAD_ACCESS 0x2752
#define CIPHER_A5_COUNT_REG1_BAD_ACCESS 0x2753
#define CIPHER_A5_COUNT_REG2_BAD_ACCESS 0x2754
#define CIPHER_A5_CNTL_REG_BAD_RESET_VALUE 0x2700
#define CIPHER_A5_STATUS_IRQ_REG_BAD_RESET_VALUE 0x2701
#define CIPHER_A5_STATUS_WORK_REG_BAD_RESET_VALUE 0x2702
#define CIPHER_A5_KC_REG1_BAD_RESET_VALUE 0x2703
#define CIPHER_A5_KC_REG2_BAD_RESET_VALUE 0x2704
#define CIPHER_A5_KC_REG3_BAD_RESET_VALUE 0x2705
#define CIPHER_A5_KC_REG4_BAD_RESET_VALUE 0x2706
#define CIPHER_A5_KC_REG5_BAD_RESET_VALUE 0x2707
#define CIPHER_A5_KC_REG6_BAD_RESET_VALUE 0x2708
#define CIPHER_A5_KC_REG7_BAD_RESET_VALUE 0x2709
#define CIPHER_A5_KC_REG8_BAD_RESET_VALUE 0x270A
#define CIPHER_A5_COUNT_REG1_BAD_RESET_VALUE 0x270B
#define CIPHER_A5_COUNT_REG2_BAD_RESET_VALUE 0x270C
#define CIPHER_A5_DECI_REG1_BAD_RESET_VALUE 0x270D
#define CIPHER_A5_DECI_REG2_BAD_RESET_VALUE 0x270E
#define CIPHER_A5_DECI_REG3_BAD_RESET_VALUE 0x270F
#define CIPHER_A5_DECI_REG4_BAD_RESET_VALUE 0x2710
#define CIPHER_A5_DECI_REG5_BAD_RESET_VALUE 0x2711
#define CIPHER_A5_DECI_REG6_BAD_RESET_VALUE 0x2712
#define CIPHER_A5_DECI_REG7_BAD_RESET_VALUE 0x2713
#define CIPHER_A5_DECI_REG8_BAD_RESET_VALUE 0x2714
#define CIPHER_A5_DECI_REG9_BAD_RESET_VALUE 0x2715
#define CIPHER_A5_DECI_REG10_BAD_RESET_VALUE 0x2716
#define CIPHER_A5_DECI_REG11_BAD_RESET_VALUE 0x2717
#define CIPHER_A5_DECI_REG12_BAD_RESET_VALUE 0x2718
#define CIPHER_A5_DECI_REG13_BAD_RESET_VALUE 0x2719
#define CIPHER_A5_DECI_REG14_BAD_RESET_VALUE 0x271A
#define CIPHER_A5_DECI_REG15_BAD_RESET_VALUE 0x271B
#define CIPHER_A5_DECI_REG16_BAD_RESET_VALUE 0x271C
#define CIPHER_A5_DECI_REG17_BAD_RESET_VALUE 0x271D
#define CIPHER_A5_DECI_REG18_BAD_RESET_VALUE 0x271E
#define CIPHER_A5_DECI_REG19_BAD_RESET_VALUE 0x271F
#define CIPHER_A5_DECI_REG20_BAD_RESET_VALUE 0x2720
#define CIPHER_A5_DECI_REG21_BAD_RESET_VALUE 0x2721
#define CIPHER_A5_DECI_REG22_BAD_RESET_VALUE 0x2722
#define CIPHER_A5_ENCI_REG1_BAD_RESET_VALUE 0x2723
#define CIPHER_A5_ENCI_REG2_BAD_RESET_VALUE 0x2724
#define CIPHER_A5_ENCI_REG3_BAD_RESET_VALUE 0x2725
#define CIPHER_A5_ENCI_REG4_BAD_RESET_VALUE 0x2726
#define CIPHER_A5_ENCI_REG5_BAD_RESET_VALUE 0x2727
#define CIPHER_A5_ENCI_REG6_BAD_RESET_VALUE 0x2728
#define CIPHER_A5_ENCI_REG7_BAD_RESET_VALUE 0x2729
#define CIPHER_A5_ENCI_REG8_BAD_RESET_VALUE 0x272A
#define CIPHER_A5_ENCI_REG9_BAD_RESET_VALUE 0x272B
#define CIPHER_A5_ENCI_REG10_BAD_RESET_VALUE 0x272C
#define CIPHER_A5_ENCI_REG11_BAD_RESET_VALUE 0x272D
#define CIPHER_A5_ENCI_REG12_BAD_RESET_VALUE 0x272E
#define CIPHER_A5_ENCI_REG13_BAD_RESET_VALUE 0x272F
#define CIPHER_A5_ENCI_REG14_BAD_RESET_VALUE 0x2730
#define CIPHER_A5_ENCI_REG15_BAD_RESET_VALUE 0x2731
#define CIPHER_A5_ENCI_REG16_BAD_RESET_VALUE 0x2732
#define CIPHER_A5_ENCI_REG17_BAD_RESET_VALUE 0x2733
#define CIPHER_A5_ENCI_REG18_BAD_RESET_VALUE 0x2734
#define CIPHER_A5_ENCI_REG19_BAD_RESET_VALUE 0x2735
#define CIPHER_A5_ENCI_REG20_BAD_RESET_VALUE 0x2736
#define CIPHER_A5_ENCI_REG21_BAD_RESET_VALUE 0x2737
#define CIPHER_A5_ENCI_REG22_BAD_RESET_VALUE 0x2738
/* CIPHER CONTROL register description */
#define CIPHER_A5_CNTL_START 0x0001 /* Start the process */
#define CIPHER_A5_CNTL_RESET_SW 0x0002 /* Reset the module !!active low*/
#define CIPHER_A5_CNTL_NO_ALGO 0 /* No algorithm */
#define CIPHER_A5_CNTL_A51_ALGO 1 /* algorithm A51 */
#define CIPHER_A5_CNTL_A52_ALGO 2 /* algorithm A52 */
#define CIPHER_A5_CNTL_A53_ALGO 3 /* algorithm A53 */
#define CIPHER_A5_CNTL_CLK_EN 0x0010 /* Enable the internal clock */
#define CIPHER_A5_CNTL_EDGE_TYPE 1 /* decipher and encipher */
#define CIPHER_A5_CNTL_GSM_TYPE 0 /* decipher and encipher */
/* CIPHER status irq register description */
#define CIPHER_A5_STAT_IRQ_FIN 0x0001 /* set to 1 when ciphering is completed */
/* CIPHER status work register description */
#define CIPHER_A5_STAT_WORK 0x0001 /* set to 1 when the module is working */
/* Usefull constants */
#define CIPHER_A5_IT_MSK 0x0800 /* INT7 */
/* ----- Macros definition ----- */
/*----------------------------------------------------------
CIPHER_A53_START : Start the CIPHER module
-----------------------------------------------------------*/
#define CIPHER_A5_START CIPHER_A5_CNTL_REG |= (CIPHER_A5_CNTL_START | CIPHER_A5_CNTL_RESET_SW)
/*----------------------------------------------------------
CIPHER_RESET : Reset the CIPHER module
-----------------------------------------------------------*/
#define CIPHER_A5_RESET CIPHER_A5_CNTL_REG &= ~CIPHER_A5_CNTL_RESET_SW;\
CIPHER_A5_CNTL_REG |= CIPHER_A5_CNTL_RESET_SW
/*----------------------------------------------------------
CIPHER_CLK_EN : Enable the internal clock
-----------------------------------------------------------*/
#define CIPHER_A5_CLK_EN (CIPHER_A5_CNTL_REG |= (CIPHER_A5_CNTL_CLK_EN | CIPHER_A5_CNTL_RESET_SW))
/*----------------------------------------------------------
CIPHER_CLK_DIS : Disable the internal clock
-----------------------------------------------------------*/
#define CIPHER_A5_CLK_DIS (CIPHER_A5_CNTL_REG |= CIPHER_A5_CNTL_RESET_SW;\
CIPHER_A5_CNTL_REG &= ~CIPHER_A5_CNTL_CLK_EN)
/*----------------------------------------------------------
CIPHER_IRQ_FIN : Return the It_fin bit from STATUS_irq_REG
-----------------------------------------------------------*/
#define CIPHER_A5_IRQ_FIN (CIPHER_A5_STATUS_IRQ_REG & 0x0001)
/*----------------------------------------------------------
CIPHER_WORKING : Return the working bit from STATUS_work_REG
-----------------------------------------------------------*/
#define CIPHER_A5_WORKING (CIPHER_A5_STATUS_WORK_REG & 0x0001)
/********************** Prototypes ************************/
void CIPH_Cfg(UWORD16 mode, UWORD16 full_ciph);
void CIPH_Test_ResetValue(void);
void CIPH_TestRegistersAccess(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -