⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s3c4510.h

📁 针对硬件操作
💻 H
字号:
//JFLASH V1.0
#define S3C4510_CHAIN_LENGTH 257

// define I/O functions
#ifdef	PLATFORM_WINNT
	#include	"dlportio.h"
	#define OUTB(x,y)	DlPortWritePortUchar(x,y)
	#define INB(x)		DlPortReadPortUchar(x)
#else
	#include	<conio.h>
	#define OUTB(x,y)	_outp(x,y)
	#define INB(x)		_inp(x)
#endif
// 修改映射
/*
#define	UARXD1_IN           0
#define	nUADSR0_OUT         1
#define	UATXD0_OUT          2
#define	nUADTR0_IN          3
#define	UARXD0_IN           4
#define	SDA_OUT             5   // OPEN DRAIN OUTPUT
#define	SDA_IN              6
#define	SCL_OUT             7
#define	SCL_IN              8
#define P17_ENB             9   // *
#define P17_OUT             10
#define P17_IN              11
#define P16_ENB             12  // *
#define P16_OUT             13
#define P16_IN              14
#define P15_ENB             15  // *
#define P15_OUT             16
#define P15_IN              17
#define P14_ENB             18  // *
#define P14_OUT             19
#define P14_IN              20
#define P13_ENB             21  // *
#define P13_OUT             22
#define P13_IN              23
#define P12_ENB             24  // *
#define P12_OUT             25
#define P12_IN              26
#define P11_ENB             27  // *
#define P11_OUT             28
#define P11_IN              29
#define P10_ENB             30  // *
#define P10_OUT             31
#define P10_IN              32
#define P9_ENB              33  // *
#define P9_OUT              34
#define P9_IN               35
#define P8_ENB              36  // *
#define P8_OUT              37
#define P8_IN               38
#define P7_ENB              39  // *
#define P7_OUT              40
#define P7_IN               41
#define P6_ENB              42  // *
#define P6_OUT              43
#define P6_IN               44
#define P5_ENB              45  // *
#define P5_OUT              46
#define P5_IN               47
#define P4_ENB              48  // *
#define P4_OUT              49
#define P4_IN               50
#define P3_ENB              51  // *
#define P3_OUT              52
#define P3_IN               53
#define P2_ENB              54  // *
#define P2_OUT              55
#define P2_IN               56
#define P1_ENB              57  // *
#define P1_OUT              58
#define P1_IN               59
#define P0_ENB              60  // *
#define P0_OUT              61
#define P0_IN               62
*/
#define D31_OUT_ENB         182
#define D31_OUT             181
#define D31_IN              183
#define D30_OUT_ENB         179
#define D30_OUT             178
#define D30_IN              180
#define D29_OUT_ENB         176
#define D29_OUT             175
#define D29_IN              177
#define D28_OUT_ENB         173
#define D28_OUT             172
#define D28_IN              174
#define D27_OUT_ENB         170
#define D27_OUT             169
#define D27_IN              171
#define D26_OUT_ENB         167
#define D26_OUT             166
#define D26_IN              168
#define D25_OUT_ENB         164
#define D25_OUT             163
#define D25_IN              165
#define D24_OUT_ENB         161
#define D24_OUT             160
#define D24_IN              162
#define D23_OUT_ENB         158
#define D23_OUT             157
#define D23_IN              159
#define D22_OUT_ENB         155
#define D22_OUT             154
#define D22_IN              156
#define D21_OUT_ENB         152
#define D21_OUT             151
#define D21_IN              153
#define D20_OUT_ENB         149
#define D20_OUT             148
#define D20_IN              150
#define D19_OUT_ENB         146
#define D19_OUT             145
#define D19_IN              147
#define D18_OUT_ENB         143
#define D18_OUT             142
#define D18_IN              144
#define D17_OUT_ENB         140
#define D17_OUT             139
#define D17_IN              141
#define D16_OUT_ENB         137
#define D16_OUT             136
#define D16_IN              138

#define D15_8_OUT_ENB       134
#define D15_OUT             133
#define D15_IN              135
#define D14_OUT             131
#define D14_IN              132
#define D13_OUT             129
#define D13_IN              130
#define D12_OUT             127
#define D12_IN              128
#define D11_OUT             125
#define D11_IN              126
#define D10_OUT             123
#define D10_IN              124
#define D9_OUT              121
#define D9_IN               122
#define D8_OUT              119
#define D8_IN               120

#define D7_0_OUT_ENB         117
#define D7_OUT              116
#define D7_IN               118
#define D6_OUT              114
#define D6_IN               115
#define D5_OUT              112
#define D5_IN               113
#define D4_OUT              110
#define D4_IN               111
#define D3_OUT              108
#define D3_IN               109
#define D2_OUT              106
#define D2_IN               107
#define D1_OUT              104
#define D1_IN               105
#define D0_OUT              102
#define D0_IN               103

//#define D_OUT_ENB           200     // *???

#define A24_OUT_ENB           101
#define A24_OUT             100
#define A23_OUT_ENB           99
#define A23_OUT             98
#define A22_OUT_ENB           97
#define A22_OUT             96
#define A21_OUT_ENB           95
#define A21_OUT             94
#define A20_OUT_ENB           83
#define A20_OUT             92
#define A19_OUT_ENB           81
#define A19_OUT             90
#define A18_OUT_ENB           89
#define A18_OUT             88
#define A17_OUT_ENB           87
#define A17_OUT             86
#define A16_OUT_ENB           85
#define A16_OUT             84

#define A15_1_OUT_ENB           83
#define A15_OUT             82
#define A14_OUT             81
#define A13_OUT             80
#define A12_OUT             79
#define A11_OUT             78
#define A10_OUT             77
#define A9_OUT              76
#define A8_OUT              75
#define A7_OUT              74
#define A6_OUT              73
#define A5_OUT              72
#define A4_OUT              71
#define A3_OUT              70
#define A2_OUT              69
#define A1_OUT              68
#define A0_OUT_ENB           67
#define A0_OUT              66
/*
#define	ExtMACK_OUT         150
#define	ExtMREQ_IN          151
*/
#define	nWBE_DWE_OE_CS0_OUT_ENB          58

#define	nWBE_3_OUT          52
#define	nWBE_2_OUT          54
#define	nWBE_1_OUT          56
#define	nWBE_0_OUT          57

#define nGCS_6_OUT          38

#define	nDWE_OUT            50
/*
#define	nCAS_3_OUT          59
#define	nCAS_2_OUT          61
#define	nCAS_1_OUT          63
#define	nCAS_0_OUT          64

#define	nRAS_3_OUT          161
#define	nRAS_2_OUT          162
#define	nRAS_1_OUT          163
#define	nRAS_0_OUT          164
*/
#define	nRCS_5_OUT          39
#define	nRCS_4_OUT          41
#define	nRCS_3_OUT          43
#define	nRCS_2_OUT          45
#define	nRCS_1_OUT          47
  /*
#define	CLKSEL_IN           170
#define	nRESET_IN           171
#define	MCLK_IN             172
#define	MCLKO_OUT           173
#define	CLKOEN_IN           174
*/
#define	nRCS_0_OUT          49

//#define	B0SIZE_1_IN         176
//#define	B0SIZE_0_IN         177

#define	nOE_OUT             51
/*
#define	nEWAIT_IN           179
#define	nECS_3_OUT          180
#define	nECS_2_OUT          181
#define	nECS_1_OUT          182
#define	nECS_0_OUT          183
#define	DIS_BUS             184     // *
#define	UCLK_IN             185
#define	TMODE_IN            186
#define	MDC_OUT             187
#define	LITTLE_IN           188
#define	MDIO_OE             189
#define	MDIO_OUT            190
#define	MDIO_IN             191
#define	TX_EN_TXEN_10M_OUT  192
#define	TX_CLK_TXCLK_10M_OUT    193
#define	TX_ERR_PCOMP_10M_OUT    194
#define	TXD3_OUT            195
#define	TXD2_OUT            196
#define	TXD1_LOOP10_OUT     197
#define	TXD0_TXD_10M_OUT    198
#define	COL_COL_10M_IN      199
#define	RX_CLK_RXCLK_10M_IN 200
#define	RX_ERR_IN           201
#define	RXD3_IN             202
#define	RXD2_IN             203
#define	RXD1_IN             204
#define	RXD0_RXD_10M_IN     205
#define	RX_DV_LINK10_IN     206
#define	CRS_CRS_10M_IN      207
#define	TXCBEN              208     // *
#define	TXCB_OUT            209
#define	TXCB_IN             210
#define	nSYNCB_OUT          211
#define	RXCB_IN             212
#define	nDCDB_IN            213
#define	nCTSB_IN            214
#define	TXDB_OUT            215
#define	nRTSB_OUT           216
#define	RXDB_IN             217
#define	nDTRB_OUT           218
#define	TXCAEN              219     // *
#define	TXCA_OUT            220
#define	TXCA_IN             221
#define	nSYNCA_OUT          222
#define	RXCA_IN             223
#define	nDCDA_IN            224
#define	nCTSA_IN            225
#define	TXDA_OUT            226
#define	nRTSA_OUT           227
#define	RXDA_IN             228
#define	nDTRA_OUT           229
#define	nUADSR1_OUT         230
#define	UATXD1_OUT          231
#define	nUADTR1_IN          232
*/
#define TRST    0x01
#define LPT1 0x3bc	// hardware base address for parallel port
#define LPT2 0x378	// the search order is LPT1 then 2 then 3
#define LPT3 0x278	// first valid address found is used (re-order if needed for multiple ports)

#define READ  0 // Flags used to modify the S3C4510 JTAG chain data depending on
#define WRITE 1 // the access mode of the Flash Memory
#define SETUP 2
#define HOLD  3
#define RS    4
#define NONE  5

#define IP    0 // Flag used when accessing the parallel port
#define RP    1 // RP = 'read port', IP = 'ignore port', using IP will speed access

#define S3C4510ID   "**** 1111000011110000 11110000111 1" // JTAG ID-codes for the S3C4510
                 // "0001 1111000011110000 11110000111 1"

void error_out(char *error_string);
unsigned short test_port(void);

int  putp(int tdi, int tms, int rp);
void reset_jtag(void);
void test_logic_reset(void);
int  check_id(char *device_id);
void id_command(void);
void bypass_all(void);
void extest(void);

void write_rom(DWORD address, unsigned char data);
unsigned char read_rom(DWORD address);
void write_rom2(DWORD address, WORD data);
WORD read_rom2(DWORD address);
DWORD access_rom(int rw, DWORD address, DWORD data, int rp);
DWORD access_bus(int rw, DWORD address, DWORD data, int rp);
DWORD access_bus2(int rw, DWORD address, DWORD data, int rp);
DWORD s3c4510_bus(int cs, int rw, DWORD address, DWORD data, int rp);
DWORD s3c4510_bus2(int cs, int rw, DWORD address, DWORD data, int rp);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -