optical/NxFuncs/fmc/corefmc.h
2025-09-04 09:45:08 +08:00

53 lines
1.4 KiB
C

#ifndef __COREFMC_H__
#define __COREFMC_H__
//---------------------------------------------------------------------------------
#include "config.h"
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// FMC 总线上挂接 SDAM, FPGA, 等以及外扩总线
// BANK1 地址分配
#define Bank1_SRAM1_ADDR ((u32)0x60000000) // NE1 板载FPGA
#define Bank1_SRAM2_ADDR ((u32)0x64000000) // NE2
#define Bank1_SRAM3_ADDR ((u32)0x68000000) // NE3
#define Bank1_SRAM4_ADDR ((u32)0x6C000000) // NE4
#define CORE_FPGA_ADDR_BEG Bank1_SRAM1_ADDR
#define CORE_FPGA_BANK FSMC_Bank1_NORSRAM1
// SDRAM BANK
#define SDRAM_BANK1_ADDR ((u32)0xC0000000UL)
#define SDRAM_BANK2_ADDR ((u32)0xD0000000UL)
#define CORE_SDRAM1_ADDR_BEG SDRAM_BANK1_ADDR
#define CORE_SDRAM2_ADDR_BEG SDRAM_BANK2_ADDR
#define CORE_SDRAM1_SIZE (4*1024*1024*4*16/8) // 字节数 32M 字节
#define CORE_SDRAM2_SIZE (4*1024*1024*4*16/8) // 字节数 32M 字节
//---------------------------------------------------------------------------------
// 初始化FMC
void InitCoreFmc(void);
// 写入半字数据
void FmcWriteReg(u32 wAddr, u16 data);
// 读取半字数据
u16 FmcReadReg(u32 rAddr);
// 写数据到固定地址
void FmcWriteConstBuf(u32 wAddr, u16* pBuffer, u32 num);
// 从固定地址读数据
void FmcReadConstBuf(u32 rAddr, u16* pBuffer, u32 num);
#endif