File indexing completed on 2025-05-11 08:23:57
0001
0002
0003
0004
0005
0006 #ifndef __PSIM_h
0007 #define __PSIM_h
0008
0009
0010
0011
0012
0013 extern char RamBase[];
0014 extern char RamSize[];
0015
0016
0017
0018
0019
0020 #define PSIM_RAM_SIZE ((unsigned long)RamSize)
0021 #define PSIM_RAM_BASE ((void*)RamBase)
0022
0023
0024
0025
0026
0027 #define PSIM_RTC_FREEZE 0xc0
0028 #define PSIM_RTC_UPDATE 0x00
0029
0030 typedef struct {
0031 volatile uint8_t Control;
0032 volatile uint8_t Second;
0033 volatile uint8_t Minute;
0034 volatile uint8_t Hour;
0035 volatile uint8_t Day;
0036 volatile uint8_t Date;
0037 volatile uint8_t Month;
0038 volatile uint8_t Year;
0039 } psim_rtc_t;
0040
0041
0042
0043
0044
0045 typedef struct {
0046 volatile uint32_t obtain_value;
0047 volatile uint32_t lock;
0048 volatile uint32_t unlock;
0049 } psim_sysv_sem_t;
0050
0051 typedef struct {
0052
0053 volatile uint8_t Flash[ 512 * 1024 ];
0054
0055
0056 volatile uint8_t nvram[ 512 * 1024 ];
0057
0058
0059 psim_rtc_t RTC;
0060
0061
0062 uint8_t gap1[8];
0063
0064
0065 psim_sysv_sem_t Semaphore;
0066
0067
0068 uint8_t gap2[4];
0069
0070
0071 volatile uint8_t Ethtap[ 64 ];
0072
0073
0074 uint8_t gap3[65440];
0075
0076
0077 uint8_t SharedMemory[ 128 * 1024 ];
0078
0079
0080 volatile uint8_t OpenPIC[ 256 * 1024 ];
0081
0082 } psim_registers_t;
0083
0084
0085
0086
0087 extern psim_registers_t PSIM;
0088
0089 #endif
0090