📄 73x_map.h
字号:
/******************** (C) COPYRIGHT 2005 STMicroelectronics **********************
* File Name : 73x_map.h
* Author : MCD Application Team
* Date First Issued : 09/27/2005 : V1.0
* Description : This file contains all the peripheral register's definitions
* and memory mapping.
**********************************************************************************
* History:
* 09/27/2005 : V1.0
**********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
* CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
* OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
* OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
* CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*********************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------- */
#ifndef __73x_MAP_H
#define __73x_MAP_H
#ifndef EXT
#define EXT extern
#endif /* EXT */
/* Includes --------------------------------------------------------------------*/
#include "73x_conf.h"
#include "73x_type.h"
/********************************************************************************/
/* IP registers structures */
/********************************************************************************/
/**************************NATIVE System memory Map*****************************/
/*-------------------------------FLASH -----------------------------------------*/
typedef struct
{
vu32 CR0;
vu32 CR1;
vu32 DR0;
vu32 DR1;
vu32 AR;
vu32 ER;
} FLASHR_TypeDef;
typedef struct
{
vu32 NVWPAR;
u32 EMPTY;
vu32 NVAPR0;
vu32 NVAPR1;
} FLASHPR_TypeDef;
/*------------------- Power, Reset and Clocks Unit------------------------------*/
typedef struct
{
vu32 CCR ; /*Clock Control Register*/
vu32 VRCTR ; /*Voltage Regulator Control Register*/
vu32 CFR ; /*Clock Flag Register*/
u32 EMPTY1[3];
vu32 PLLCR ; /*PLL Configuration Register*/
u32 EMPTY2 ;
vu32 SMR ; /*System Mode Register*/
u32 EMPTY3 ;
vu32 RTCPR ; /*Real Time Clock Programming Register*/
} PRCCU_TypeDef;
/*---------------- Native Arbiter Registers ----------------------------------*/
typedef struct
{
vu32 TOR;
vu32 PRIOR;
u32 EMPTY;
vu32 CTLR;
} ARB_TypeDef;
/*---------------- System Configuration Registers ----------------------------*/
typedef struct
{
vu32 R0 ; /*Configuration Register 0*/
vu32 EITE0 ; /*External Interrupt Trigger Event Register 0*/
vu32 PCGR0 ; /*Peripheral Clock Gating Register 0*/
vu32 PCGR1 ; /*Peripheral Clock Gating Register 1*/
vu32 PECGR0 ; /*Peripheral Emulation Clock Gating Register 0*/
vu32 PECGR1 ; /*Peripheral Emulation Clock Gating Register 1*/
vu32 PCGRB0 ; /*Peripheral Clock Gating Register B0*/
vu32 PCGRB1 ; /*Peripheral Clock Gating Register B1*/
vu32 TIMSR ; /*TIM External Clock Select Register*/
vu32 EITE1 ; /*External Interrupt Trigger Event Register 1*/
vu32 EITE2 ; /*External Interrupt Trigger Event Register 2*/
vu32 ESPR ; /*Emulation Serial Protection Register*/
vu32 R1 ; /*Configuration Register 1*/
vuc32 DIDR ; /*Device Identification Register*/
}CFG_TypeDef;
/*----------------------------AHB BRIDGE --------------------------------------*/
typedef struct
{
vu32 TOR;
vu32 PRIOR;
u32 EMPTY;
vu32 CTLR;
} AHB_TypeDef;
/**************************APB System memory Map*******************************/
/*----------------------------APB BRIDGE --------------------------------------*/
typedef struct
{
vu32 BSR;
vu32 TOR;
vuc32 OMR;
vuc32 TOER;
} APB_TypeDef;
/*---------------- Clock Monitor Unit ----------------------------------------*/
typedef struct
{
vu16 RCCTL ; /* RCOscillator Control Register */
u16 EMPTY1 ;
vuc16 FDISP ; /* Frequency Display Register*/
u16 EMPTY2 ;
vu16 FRH ; /* Frequency Reference High Register*/
u16 EMPTY3 ;
vu16 FRL ; /* Frequency Reference Low Register*/
u16 EMPTY4 ;
vu16 CTRL ; /* Control Register*/
u16 EMPTY5 ;
vu16 STAT ; /* Status Register*/
u16 EMPTY6 ;
vu16 IS ; /* Interrupt Status Register*/
u16 EMPTY7 ;
vu16 IM ; /* Interrupt Mask Register*/
u16 EMPTY8 ;
vu16 EOCV ; /* End Of Countvalue Register*/
u16 EMPTY9 ;
vu16 WE ; /* Writing Enable Register*/
u16 EMPTY10 ;
} CMU_TypeDef;
/*---------------------- Buffered Serial Port Interface ----------------------*/
typedef struct
{
vuc16 RXR; /*Receive Register*/
u16 EMPTY1;
vu16 TXR; /*Transmit Register*/
u16 EMPTY2;
vu16 CSR1; /*control Status Register 1*/
u16 EMPTY3;
vu16 CSR2; /*Control Status Register 2*/
u16 EMPTY4;
vu16 CLK; /*Master Clock Divider Register*/
u16 EMPTY5;
vu16 CSR3; /*Control Status Register 3*/
u16 EMPTY6;
} BSPI_TypeDef;
/*---------------------- I2C ------------------------------------------------*/
typedef struct
{
vu8 CR;
u8 EMPTY1[3];
vuc8 SR1;
u8 EMPTY2[3];
vuc8 SR2;
u8 EMPTY3[3];
vu8 CCR;
u8 EMPTY4[3];
vu8 OAR1;
u8 EMPTY5[3];
vu8 OAR2;
u8 EMPTY6[3];
vu8 DR;
u8 EMPTY7[3];
vu8 ECCR;
u8 EMPTY8[3];
} I2C_TypeDef;
/*------------------- Universal Asynchronous Receiver Transmitter ------------*/
typedef struct
{
vu16 BR; /*BaudRate register*/
u16 EMPTY1;
vu16 TxBUFR; /*TxBuffer Register*/
u16 EMPTY2;
vuc16 RxBUFR; /*RxBuffer Register*/
u16 EMPTY3;
vu16 CR; /*Control Register*/
u16 EMPTY4;
vu16 IER; /*IntEnable Register*/
u16 EMPTY5;
vuc16 SR; /*Status Register*/
u16 EMPTY6;
u16 EMPTY7;
u16 EMPTY8;
vu16 TOR; /*Timeout Register*/
u16 EMPTY9;
vu16 TxRSTR; /*TxReset register*/
u16 EMPTY10;
vu16 RxRSTR; /*RxReset register*/
u16 EMPTY11;
} UART_TypeDef;
/*---------------- Analog to Digital Converter -----------------------*/
typedef struct
{
vu16 CLR0 ;
u16 EMPTY1;
vu16 CLR1 ;
u16 EMPTY2;
vu16 CLR2 ;
u16 EMPTY3;
vu16 CLR3 ;
u16 EMPTY4;
vu16 CLR4 ;
u16 EMPTY5;
vu16 TRA0 ;
u16 EMPTY6;
vu16 TRA1 ;
u16 EMPTY7;
vu16 TRA2 ;
u16 EMPTY8;
vu16 TRA3 ;
u16 EMPTY9;
vu16 TRB0 ;
u16 EMPTY10;
vu16 TRB1 ;
u16 EMPTY11;
vu16 TRB2 ;
u16 EMPTY12;
vu16 TRB3 ;
u16 EMPTY13;
vu16 DMAR ;
u16 EMPTY14[7];
vu16 DMAE ;
u16 EMPTY15 ;
vu16 PBR ;
u16 EMPTY16;
vu16 IMR ;
u16 EMPTY17;
vuc16 D0 ;
u16 EMPTY18;
vuc16 D1 ;
u16 EMPTY19;
vuc16 D2 ;
u16 EMPTY20;
vuc16 D3 ;
u16 EMPTY21;
vuc16 D4 ;
u16 EMPTY22;
vuc16 D5 ;
u16 EMPTY23;
vuc16 D6 ;
u16 EMPTY24;
vuc16 D7 ;
u16 EMPTY25;
vuc16 D8 ;
u16 EMPTY26;
vuc16 D9 ;
u16 EMPTY27;
vuc16 D10;
u16 EMPTY28;
vuc16 D11 ;
u16 EMPTY29;
vuc16 D12 ;
u16 EMPTY30;
vuc16 D13 ;
u16 EMPTY31;
vuc16 D14 ;
u16 EMPTY32;
vuc16 D15 ;
u16 EMPTY33;
} ADC_TypeDef;
/*-------------------- General Purpose IO ports---------------------------*/
typedef struct
{
vu16 PC0;
u16 EMPTY1;
vu16 PC1;
u16 EMPTY2;
vu16 PC2;
u16 EMPTY3;
vu16 PD;
u16 EMPTY4;
} GPIO_TypeDef;
/*--------------------------Real Time Clock ------------------------------*/
typedef struct
{
vu16 CRH;
u16 EMPTY1;
vu16 CRL;
u16 EMPTY2;
vu16 PRLH;
u16 EMPTY3;
vu16 PRLL;
u16 EMPTY4;
vu16 DIVH;
u16 EMPTY5;
vu16 DIVL;
u16 EMPTY6;
vu16 CNTH;
u16 EMPTY7;
vu16 CNTL;
u16 EMPTY8;
vu16 ALRH;
u16 EMPTY9;
vu16 ALRL;
u16 EMPTY10;
} RTC_TypeDef;
/*-------------- Enhanced Interrupt Controller ----------------------------*/
typedef struct
{
vu32 ICR ; /* Interrupt Control Register*/
vuc32 CICR ; /* Current Interrupt Channel Register*/
vu32 CIPR ; /* Current Interrupt Priority Register*/
u32 EMPTY1 ;
vu32 FIER ; /* Fast Interrupt Enable Register*/
vu32 FIPR ; /* Fast Interrupt Pending Register*/
vu32 IVR ; /* Interrupt Vector Register*/
vu32 FIR ; /* Fast Interrupt Register*/
vu32 IER0 ; /* Interrupt Enable Register0*/
vu32 IER1 ; /* Interrupt Enable Register1*/
u32 EMPTY3[6];
vu32 IPR0 ; /* Interrupt Pending Register0*/
vu32 IPR1 ; /* Interrupt Pending Register1*/
u32 EMPTY4[6];
vu32 SIRn[64] ; /* Source Interrupt registers- Channel n*/
} EIC_TypeDef;
/*-------------------------- Wake-up/Interrupt Unit-----------------------*/
typedef struct
{
vu32 CTRL ; /*Control Register*/
vu32 MR ; /*Mask Register*/
vu32 TR ; /*Trigger Register*/
vu32 PR ; /*Pending Register*/
vu32 INTR ; /*Software Interrupt Register*/
} WIU_TypeDef;
/*----------------------------------- Wake-Up Timer-----------------------*/
typedef struct
{
vu16 CR ; /*Control Register*/
u16 EMPTY1;
vu16 PR ; /*Prescaler Register*/
u16 EMPTY2;
vu16 VR ; /*Pre-load Value Register*/
u16 EMPTY3;
vuc16 CNT ; /*Counter Register*/
u16 EMPTY4;
vu16 SR ; /*Status Register*/
u16 EMPTY5;
vu16 MR ; /*Mask Register*/
u16 EMPTY6;
} WUT_TypeDef;
/*-------------------- Extended Function TIMer ---------------------------*/
typedef struct
{
vuc16 ICAR; /* Input Capture A Register*/
u16 EMPTY1;
vuc16 ICBR; /* Input Capture B Register*/
u16 EMPTY2;
vu16 OCAR; /* Output Compare A Register*/
u16 EMPTY3;
vu16 OCBR; /* Input Capture B Register*/
u16 EMPTY4;
vu16 CNTR; /* Counter Register */
u16 EMPTY5;
vu16 CR1; /* Control Register 1 */
u16 EMPTY6;
vu16 CR2; /* Control Register 2 */
u16 EMPTY7;
vu16 SR; /* Status Register */
u16 EMPTY8;
} TIM_TypeDef;
/*-------------------------------- TimeBase timer-------------------------*/
typedef struct
{
vu16 CR ;
u16 EMPTY1;
vu16 PR ;
u16 EMPTY2;
vu16 VR ;
u16 EMPTY3;
vuc16 CNT ;
u16 EMPTY4;
vu16 SR ;
u16 EMPTY5;
vu16 MR ;
u16 EMPTY6;
} TB_TypeDef;
/*----------------------------- Pulse Width Modulator----------------------*/
typedef struct
{
vu16 PRS0 ;
u16 EMPTY1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -