📄 memory.h
字号:
/* Memory.h - Memory mappings and remapping functions declarations *//* Copyright - Galileo technology. */#ifndef __INCmemoryh#define __INCmemoryh/* includes */#include "core.h"/* defines */#define DONT_MODIFY 0xffffffff#define PARITY_SUPPORT 0x40000000#define _8BIT 0x00000000#define _16BIT 0x00100000#define _32BIT 0x00200000#define _64BIT 0x00300000/* typedefs */ typedef struct deviceParam{ /* boundary values */ unsigned int turnOff; /* 0x0 - 0xf */ unsigned int acc2First; /* 0x0 - 0x1f */ unsigned int acc2Next; /* 0x0 - 0x1f */ unsigned int ale2Wr; /* 0x0 - 0xf */ unsigned int wrLow; /* 0x0 - 0xf */ unsigned int wrHigh; /* 0x0 - 0xf */ unsigned int deviceWidth; /* in Bytes */} DEVICE_PARAM;typedef enum __memBank{BANK0,BANK1,BANK2,BANK3} MEMORY_BANK;typedef enum __memDevice{DEVICE0,DEVICE1,DEVICE2,DEVICE3,BOOT_DEVICE} DEVICE;typedef enum __memoryProtectRegion{MEM_REGION0,MEM_REGION1,MEM_REGION2, \ MEM_REGION3,MEM_REGION4,MEM_REGION5, \ MEM_REGION6,MEM_REGION7} \ MEMORY_PROTECT_REGION;typedef enum __memoryAccess{MEM_ACCESS_ALLOWED,MEM_ACCESS_FORBIDEN} \ MEMORY_ACCESS;typedef enum __memoryWrite{MEM_WRITE_ALLOWED,MEM_WRITE_FORBIDEN} \ MEMORY_ACCESS_WRITE;typedef enum __memoryCacheProtect{MEM_CACHE_ALLOWED,MEM_CACHE_FORBIDEN} \ MEMORY_CACHE_PROTECT;typedef enum __memorySnoopType{MEM_NO_SNOOP,MEM_SNOOP_WT,MEM_SNOOP_WB} \ MEMORY_SNOOP_TYPE;typedef enum __memorySnoopRegion{MEM_SNOOP_REGION0,MEM_SNOOP_REGION1, \ MEM_SNOOP_REGION2,MEM_SNOOP_REGION3} \ MEMORY_SNOOP_REGION;/* functions */unsigned int memoryGetBankBaseAddress(MEMORY_BANK bank);unsigned int memoryGetDeviceBaseAddress(DEVICE device);unsigned int memoryGetBankSize(MEMORY_BANK bank);unsigned int memoryGetDeviceSize(DEVICE device);unsigned int memoryGetDeviceWidth(DEVICE device);/* when given base Address and size Set new WINDOW for SCS_X. (X = 0,1,2 or 3*/bool memoryMapBank(MEMORY_BANK bank, unsigned int bankBase,unsigned int bankLength);bool memoryMapDeviceSpace(DEVICE device, unsigned int deviceBase,unsigned int deviceLength);/* Change the Internal Register Base Address to a new given Address. */bool memoryMapInternalRegistersSpace(unsigned int internalRegBase);/* returns internal Register Space Base Address. */unsigned int memoryGetInternalRegistersSpace(void);/* Configurate the protection feature to a given space. */bool memorySetProtectRegion(MEMORY_PROTECT_REGION region, MEMORY_ACCESS memoryAccess, MEMORY_ACCESS_WRITE memoryWrite, MEMORY_CACHE_PROTECT cacheProtection, unsigned int baseAddress, unsigned int regionLength);/* Configurate the snoop feature to a given space. */bool memorySetRegionSnoopMode(MEMORY_SNOOP_REGION region, MEMORY_SNOOP_TYPE snoopType, unsigned int baseAddress, unsigned int regionLength);bool memoryRemapAddress(unsigned int remapReg, unsigned int remapValue);bool memoryGetDeviceParam(DEVICE_PARAM *deviceParam, DEVICE deviceNum);bool memorySetDeviceParam(DEVICE_PARAM *deviceParam, DEVICE deviceNum);#endif /* __INCmemoryh */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -