F203/Core/Inc/sram.h

254 lines
10 KiB
C
Raw Permalink Normal View History

2023-12-13 16:59:07 +03:00
/*
* sram.h
*
* Created on: Apr 19, 2017
* Author: toporov
*/
#ifndef SRAM_H_
#define SRAM_H_
#define ADDR_SETUP_TIME 1
#define ADDR_HOLD_TIME 0
#define DATA_SETUP_TIME 10
#define BUS_TURN_AROUND 0
#define CLK_DIVISION 0
#define DATA_LATENCY 0
#define ACCESS_MODE FSMC_AccessMode_A
/*
*
* =====================
* [ ***** ÍÓÆÍÎ ***** ]
* =====================
*
* 1) CMPLX_BUFFER[] -> 32K
* 2) MEAN_BUFFER[] -> 64K
* 3) GRAPH_BUFFER[] -> 64K
* 4) LCD_BUFFER[] -> 304K
* 5) GUI_BUFFER[] -> 1024K - 32K - 64K - 64K - 304K = 544K
*
*
*
*/
#define SRAM_ADDR_OFFSET ((__IO uint32_t) 0x64000000)
#define SIZE_1K ((__IO uint32_t) 0x00000400)
#define SIZE_2K ((__IO uint32_t) 0x00000800)
#define SIZE_4K ((__IO uint32_t) 0x00001000)
#define SIZE_8K ((__IO uint32_t) 0x00002000)
#define SIZE_16K ((__IO uint32_t) 0x00004000)
#define SIZE_32K ((__IO uint32_t) 0x00008000)
#define SIZE_64K ((__IO uint32_t) 0x00010000)
#define SIZE_128K ((__IO uint32_t) 0x00020000)
#define SIZE_256K ((__IO uint32_t) 0x00040000)
#define SIZE_512K ((__IO uint32_t) 0x00080000)
#define SIZE_1024K ((__IO uint32_t) 0x00100000)
/*#define LCD_ADDR_OFFSET ((__IO uint32_t) 0x20020000) // LENGTH = 307200 = 0x4B000
#define SCR1_ADDR_OFFSET ((__IO uint32_t) 0x20020000) // LENGTH = 0x25800
#define SCR2_ADDR_OFFSET ((__IO uint32_t) 0x20045800) // LENGTH = 0x25800
#define pLCD_u8 (( uint8_t *) (LCD_ADDR_OFFSET)) // LENGTH = 16K*/
#define STRING_OFFSET ((__IO uint32_t) 0x6404B000) // LENGTH = 0x5000
#define StrRAM(y,x) *(char *) (STRING_OFFSET + (((y) * 40) + (x)))
#define pStrRAM ((char *) (STRING_OFFSET))
#define ACC_PEAK_WR(x) *( float32_t *) (0x64050000 + ((x) << 2))
#define ACC_RMS_WR(x) *( float32_t *) (0x64050800 + ((x) << 2))
#define VEL_PEAK_WR(x) *( float32_t *) (0x64051000 + ((x) << 2))
#define VEL_RMS_WR(x) *( float32_t *) (0x64051800 + ((x) << 2))
#define DIS_PEAK_WR(x) *( float32_t *) (0x64052000 + ((x) << 2))
#define DIS_RMS_WR(x) *( float32_t *) (0x64052800 + ((x) << 2))
#define ACC_PEAK_RD(x) *( __IO float32_t *) (0x64050000 + ((x) << 2))
#define ACC_RMS_RD(x) *( __IO float32_t *) (0x64050800 + ((x) << 2))
#define VEL_PEAK_RD(x) *( __IO float32_t *) (0x64051000 + ((x) << 2))
#define VEL_RMS_RD(x) *( __IO float32_t *) (0x64051800 + ((x) << 2))
#define DIS_PEAK_RD(x) *( __IO float32_t *) (0x64052000 + ((x) << 2))
#define DIS_RMS_RD(x) *( __IO float32_t *) (0x64052800 + ((x) << 2))
#define OP1_PEAK_WR(x) *( float32_t *) (0x64050000 + ((x) << 2))
#define OP1_RMS_WR(x) *( float32_t *) (0x64050800 + ((x) << 2))
#define OP2_PEAK_WR(x) *( float32_t *) (0x64051000 + ((x) << 2))
#define OP2_RMS_WR(x) *( float32_t *) (0x64051800 + ((x) << 2))
#define OP3_PEAK_WR(x) *( float32_t *) (0x64052000 + ((x) << 2))
#define OP3_RMS_WR(x) *( float32_t *) (0x64052800 + ((x) << 2))
#define OP4_PEAK_WR(x) *( float32_t *) (0x64053000 + ((x) << 2))
#define OP4_RMS_WR(x) *( float32_t *) (0x64053800 + ((x) << 2))
#define OP1_PEAK_RD(x) *( __IO float32_t *) (0x64050000 + ((x) << 2))
#define OP1_RMS_RD(x) *( __IO float32_t *) (0x64050800 + ((x) << 2))
#define OP2_PEAK_RD(x) *( __IO float32_t *) (0x64051000 + ((x) << 2))
#define OP2_RMS_RD(x) *( __IO float32_t *) (0x64051800 + ((x) << 2))
#define OP3_PEAK_RD(x) *( __IO float32_t *) (0x64052000 + ((x) << 2))
#define OP3_RMS_RD(x) *( __IO float32_t *) (0x64052800 + ((x) << 2))
#define OP4_PEAK_RD(x) *( __IO float32_t *) (0x64053000 + ((x) << 2))
#define OP4_RMS_RD(x) *( __IO float32_t *) (0x64053800 + ((x) << 2))
#define ADC_BUFF_OFFSET ((__IO uint32_t) 0x64060000) // LENGTH = 128K (0x20000)
#define pAdcBuff ((int32_t *) (ADC_BUFF_OFFSET))
#define AdcBuff(x) *(int32_t *) (ADC_BUFF_OFFSET + ((x) << 2))
#define AdcBuff_16(x) *(uint16_t *) (ADC_BUFF_OFFSET + ((x) << 1))
#define GRAPH_ADDR_OFFSET ((__IO uint32_t) 0x64080000) // LENGTH = 64K
#define REAL_ADDR_OFFSET ((__IO uint32_t) 0x64090000) // LENGTH = 32K
#define IMAGE_ADDR_OFFSET ((__IO uint32_t) 0x64098000) // LENGTH = 32K
#define CMPLX_ADDR_OFFSET ((__IO uint32_t) 0x64090000) // LENGTH = 64K
#define ACC_ADDR_OFFSET ((__IO uint32_t) 0x64090000) // LENGTH = 16K
#define VEL_ADDR_OFFSET ((__IO uint32_t) 0x64094000) // LENGTH = 16K
#define DIS_ADDR_OFFSET ((__IO uint32_t) 0x64098000) // LENGTH = 16K
#define MEAN_ADDR_OFFSET ((__IO uint32_t) 0x640A0000) // LENGTH = 64K
#define Real(x) *(float32_t *) (REAL_ADDR_OFFSET + ((x) << 2))
#define Image(x) *(float32_t *) (IMAGE_ADDR_OFFSET + ((x) << 2))
#define pCmplxA_u8 (( uint8_t *) (ACC_ADDR_OFFSET))
#define pCmplxA_u16 (( uint16_t *) (ACC_ADDR_OFFSET))
#define pCmplxA_u32 (( uint32_t *) (ACC_ADDR_OFFSET))
#define pCmplxA_f32 (( float32_t *) (ACC_ADDR_OFFSET))
#define pCmplxV_u8 (( uint8_t *) (VEL_ADDR_OFFSET))
#define pCmplxV_u16 (( uint16_t *) (VEL_ADDR_OFFSET))
#define pCmplxV_u32 (( uint32_t *) (VEL_ADDR_OFFSET))
#define pCmplxV_f32 (( float32_t *) (VEL_ADDR_OFFSET))
#define pCmplxS_u8 (( uint8_t *) (DIS_ADDR_OFFSET))
#define pCmplxS_u16 (( uint16_t *) (DIS_ADDR_OFFSET))
#define pCmplxS_u32 (( uint32_t *) (DIS_ADDR_OFFSET))
#define pCmplxS_f32 (( float32_t *) (DIS_ADDR_OFFSET))
#define pMeanA_u8 (( uint8_t *) (MEAN_ADDR_OFFSET))
#define pMeanA_u16 (( uint16_t *) (MEAN_ADDR_OFFSET))
#define pMeanA_u32 (( uint32_t *) (MEAN_ADDR_OFFSET))
#define pMeanA_f32 (( float32_t *) (MEAN_ADDR_OFFSET))
#define pA_Buff_f32 (( float32_t *) (ACC_ADDR_OFFSET))
#define pV_Buff_f32 (( float32_t *) (VEL_ADDR_OFFSET))
#define pS_Buff_f32 (( float32_t *) (DIS_ADDR_OFFSET))
#define pScrA_u8 (( uint8_t *) (GRAPH_ADDR_OFFSET))
#define pScrA_u16 (( uint16_t *) (GRAPH_ADDR_OFFSET))
#define pScrA_u32 (( uint32_t *) (GRAPH_ADDR_OFFSET))
#define pScrA_f32 (( float32_t *) (GRAPH_ADDR_OFFSET))
#define CmplxA_u8(x) *( __IO uint8_t *) (CMPLX_ADDR_OFFSET + (x))
#define CmplxA_u16(x) *(__IO uint16_t *) (CMPLX_ADDR_OFFSET + ((x) << 1))
#define CmplxA_u32(x) *(__IO uint32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define CmplxA_f32(x) *( float32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define CmplxV_u8(x) *( __IO uint8_t *) (CMPLX_ADDR_OFFSET + (x))
#define CmplxV_u16(x) *(__IO uint16_t *) (CMPLX_ADDR_OFFSET + ((x) << 1))
#define CmplxV_u32(x) *(__IO uint32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define CmplxV_f32(x) *( float32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define CmplxA_u8(x) *( __IO uint8_t *) (CMPLX_ADDR_OFFSET + (x))
#define CmplxA_u16(x) *(__IO uint16_t *) (CMPLX_ADDR_OFFSET + ((x) << 1))
#define CmplxA_u32(x) *(__IO uint32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define CmplxA_f32(x) *( float32_t *) (CMPLX_ADDR_OFFSET + ((x) << 2))
#define MeanA_u8(x) *( __IO uint8_t *) (MEAN_ADDR_OFFSET + (x))
#define MeanA_u16(x) *(__IO uint16_t *) (MEAN_ADDR_OFFSET + ((x) << 1))
#define MeanA_u32(x) *(__IO uint32_t *) (MEAN_ADDR_OFFSET + ((x) << 2))
#define MeanA_f32(x) *( float32_t *) (MEAN_ADDR_OFFSET + ((x) << 2))
#define ScrA_u8(x) *( __IO uint8_t *) (GRAPH_ADDR_OFFSET + (x))
#define ScrA_u16(x) *(__IO uint16_t *) (GRAPH_ADDR_OFFSET + ((x) << 1))
#define ScrA_u32(x) *(__IO uint32_t *) (GRAPH_ADDR_OFFSET + ((x) << 2))
#define ScrA_f32(x) *( float32_t *) (GRAPH_ADDR_OFFSET + ((x) << 2))
#define A_Buff_f32(x) *( float32_t *) (ACC_ADDR_OFFSET + ((x) << 2))
#define V_Buff_f32(x) *( float32_t *) (VEL_ADDR_OFFSET + ((x) << 2))
#define S_Buff_f32(x) *( float32_t *) (DIS_ADDR_OFFSET + ((x) << 2))
#define FREQ_ADDR_OFFSET ((__IO uint32_t) 0x64080000) // LENGTH = 512K
#define Freq_f32(x) *(float32_t *) (FREQ_ADDR_OFFSET + ((x) << 2))
#define Udar_f32(x) *(float32_t *) (MEAN_ADDR_OFFSET + ((x) << 2))
//***********************************************************************************//
//***********************************************************************************//
//*************************** ******************************//
//=========================== ABOVE 1MB ==============================//
//*************************** ******************************//
//***********************************************************************************//
//***********************************************************************************//
#define Buff_u8(x) *(uint8_t *) (BL_ADDR_OFFSET + (x))
#define Buff_u16(x) *(uint16_t *) (BL_ADDR_OFFSET + ((x) << 1))
#define Buff_u32(x) *(uint32_t *) (BL_ADDR_OFFSET + ((x) << 2))
#define Buff_f32(x) *(float32_t *) (BL_ADDR_OFFSET + ((x) << 2))
#define pBuff_u8 ((uint8_t *) (BL_ADDR_OFFSET))
#define pBuff_u16 ((uint16_t *) (BL_ADDR_OFFSET))
#define pBuff_u32 ((uint32_t *) (BL_ADDR_OFFSET))
#define pBuff_f32 ((float32_t *) (BL_ADDR_OFFSET))
#define RouteMeas(x) *(uint8_t *) (BL_ADDR_OFFSET + (x))
#define DMA_ADDR_OFFSET ((__IO uint32_t) 0x64090000) // LENGTH = 64K
#define DMA_Udar_u16(x) *(uint16_t *) (DMA_ADDR_OFFSET + ((x) << 1)) //
#define TACHO_ADDR_OFFSET ((__IO uint32_t) 0x640B0000) // LENGTH = 64K
#define TACHO_MEAS_OFFSET ((__IO uint32_t) 0x640C0000) // LENGTH = 32K
#define TACHO_FLOAT_OFFSET ((__IO uint32_t) 0x640C8000) // LENGTH = 32K
#define Tacho_u16(x) *(uint16_t *) (TACHO_ADDR_OFFSET + ((x) << 1)) //
#define BuffT_u16(x) *(uint16_t *) (TACHO_MEAS_OFFSET + ((x) << 1)) //
#define BuffT_f32(x) *(float32_t *) (TACHO_FLOAT_OFFSET + ((x) << 2)) //
#define pScrB_u8 (( uint8_t *) (TACHO_ADDR_OFFSET))
#define pScrB_u16 (( uint16_t *) (TACHO_ADDR_OFFSET))
#define pScrB_u32 (( uint32_t *) (TACHO_ADDR_OFFSET))
#define pScrB_f32 (( float32_t *) (TACHO_ADDR_OFFSET))
#define ScrB_u8(x) *( __IO uint8_t *) (TACHO_ADDR_OFFSET + (x))
#define ScrB_u16(x) *(__IO uint16_t *) (TACHO_ADDR_OFFSET + ((x) << 1))
#define ScrB_u32(x) *(__IO uint32_t *) (TACHO_ADDR_OFFSET + ((x) << 2))
#define ScrB_f32(x) *( float32_t *) (TACHO_ADDR_OFFSET + ((x) << 2))
/////////////////////////////////////////////////////////////////////////////////////////////////
#define RAM_WR32(x) *( uint32_t *) (SRAM_ADDR_OFFSET + ((x) << 1))
#define RAM_RD32(x) *(__IO uint32_t *) (SRAM_ADDR_OFFSET + ((x) << 1))
#define RAM_WRF32(x) *( float32_t *) (SRAM_ADDR_OFFSET + ((x) << 1))
#define RAM_RDF32(x) *(__IO float32_t *) (SRAM_ADDR_OFFSET + ((x) << 1))
#endif /* SRAM_H_ */