📄 s3c4510.c.bak
字号:
#define VERSION "1.0"
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
#include "s3c4510.h"
int pin[] =
{
//0
1, // UARXD1_IN PEXINT(7) out
1, // UARXD1_IN PEXINT(7) out enable
1, // nUADSR0_OUT PEXINT(7) observe_only
1, // UATXD0_OUT PEXINT(6) out
1, // nUADTR0_IN PEXINT(6) out enable
1, // UARXD0_IN PEXINT(6) observe_only
1, // SDA_OUT PEXINT(5) out
1, // SDA_IN PEXINT(5) out enable
1, // SCL_OUT PEXINT(5) observe_only
1, // SCL_IN PEXINT(4) out
1, // P_17_ENB PEXINT(4) out enable
//10
1, // P_17_OUT PEXINT(4) observe_only
1, // P_17_IN PEXINT(3) out
1, // P_16_ENB PEXINT(3) out enable
1, // P_16_OUT PEXINT(3) observe_only
1, // P_16_IN PEXINT(2) out
1, // P_15_ENB PEXINT(2) out enable
1, // P_15_OUT PEXINT(2) observe_only
1, // P_15_IN PEXINT(1) out
1, // P_14_ENB PEXINT(1) out enable
1, // P_14_OUT PEXINT(1) observe_only
//20
1, // P_14_IN PEXINT(0) out
1, // P_13_ENB PEXINT(0) out enable
1, // P_13_OUT PEXINT(0) observe_only
1, // P_13_IN PNXDACK0
1, // P_12_ENB PNXDACK0 out enable
1, // P_12_OUT PNXDACK0 observe_only
1, // P_12_IN PNXDREQ0
1, // P_11_ENB PNXDREQ0 out enable
1, // P_11_OUT PNXDREQ0 observe_only
1, // P_11_IN PNXWAIT
//30
1, // P_10_ENB PNXWAIT out enable
1, // P_10_OUT PNXWAIT observe_only
1, // P_10_IN PSCLK
1, // P_9_ENB PSCLK out enable
1, // P_9_OUT PSCKE
1, // P_9_IN PSCKE out enable
1, // P_8_ENB PNGCS(7)
1, // P_8_OUT nGCS_6_OUT
1, // P_8_IN nRCS_5_OUT
0, // P_7_ENB nRCS_5_OUT enable
//40
1, // P_7_OUT nRCS_4_OUT
0, // P_7_IN nRCS_4_OUT enable
1, // P_6_ENB nRCS_3_OUT
0, // P_6_OUT nRCS_3_OUT enable
1, // P_6_IN nRCS_2_OUT
0, // P_5_ENB nRCS_2_OUT enable
1, // P_5_OUT nRCS_1_OUT
0, // P_5_IN nRCS_1_OUT enable
1, // P_4_ENB nRCS_0_OUT
1, // P_4_OUT nDWE_OUT
//50
1, // P_4_IN nOE_OUT
1, // P_3_ENB nWBE_3_OUT
1, // P_3_OUT nWBE_3_OUT enable
1, // P_3_IN nWBE_2_OUT
1, // P_2_ENB nWBE_2_OUT enable
1, // P_2_OUT nWBE_1_OUT
1, // P_2_IN nWBE_1_OUT
0, // P_1_ENB nWBE_DWE_OE_CS0_OUT_ENB
1, // P_1_OUT PNCAS(3)
0, // P_1_IN PNCAS(3 enable)
//60
1, // P_0_ENB PNCAS(2)
0, // P_0_OUT PNCAS(2) enable
1, // P_0_IN PNCAS(1)
1, // D_31_OUT PNCAS(0)
0, // D_31_IN nGCS_6-7_OUT PNCAS(0-1) enable
0, // D_30_OUT //a0 66-101 都为0
0, // D_30_IN
0, // D_29_OUT
0, // D_29_IN
0, // D_28_OUT
//70
0, // D_28_IN
0, // D_27_OUT
0, // D_27_IN
0, // D_26_OUT
0, // D_26_IN
0, // D_25_OUT
0, // D_25_IN
0, // D_24_OUT
0, // D_24_IN
0, // D_23_OUT
//80
0, // D_23_IN
0, // D_22_OUT a15
0, // D_22_IN
0, // D_21_OUT a16
0, // D_21_IN
0, // D_20_OUT a17
0, // D_20_IN
0, // D_19_OUT a18
0, // D_19_IN
0, // D_18_OUT
//90
0, // D_18_IN
0, // D_17_OUT
0, // D_17_IN
0, // D_16_OUT
0, // D_16_IN
0, // D_15_OUT
0, // D_15_IN
0, // D_14_OUT
0, // D_14_IN
0, // D_13_OUT a24
//100
0, // D_13_IN
0, // d0-out
0, // d0-in
0, // D_11_OUT
0, // D_11_IN
0, // D_10_OUT
0, // D_10_IN
0, // D_9_OUT
0, // D_9_IN
0, // D_8_OUT
//110
0, // D_8_IN
0, // D_7_OUT
0, // D_7_IN
0, // D_6_OUT
0, // D_6_IN
0, // D_5_OUT d7-out
1, // D_5_IN d7-d0-out-enable
0, // D_4_OUT
0, // D_4_IN d8-out
0, // D_3_OUT d8-in
//120
0, // D_3_IN
0, // D_2_OUT
0, // D_2_IN
0, // D_1_OUT
0, // D_1_IN
0, // D_0_OUT
0, // D_0_IN
0, //1,// D_OUT_ENB
0, // A_21_OUT
0, // A_20_OUT
//130
0, // A_19_OUT
0, // A_18_OUT
0, // A_17_OUT d15 out
1, // A_16_OUT d15-d8-out-enable
0, // A_15_OUT
0, // A_14_OUT D16_OUT
1, // A_13_OUT D16_OUT_ENB
0, // A_12_OUT D16_IN
0, // A_11_OUT
1, // A_10_OUT D17_OUT_ENB
//140
0, // A_9_OUT
0, // A_8_OUT
1, // A_7_OUT D18_OUT_ENB
0, // A_6_OUT
0, // A_5_OUT
1, // A_4_OUT D19_OUT_ENB
0, // A_3_OUT
0, // A_2_OUT
1, // A_1_OUT D20_OUT_ENB
0, // A_0_OUT
//150
0, // ExtMACK_OUT
1, // ExtMREQ_IN D21_OUT_ENB
0, // nWBE_3_OUT
0, // nWBE_2_OUT
1, // nWBE_1_OUT D22_OUT_ENB
0, // nWBE_0_OUT
0, // nDWE_OUT
1, // nCAS_3_OUT D23_OUT_ENB
0, // nCAS_2_OUT
0, // nCAS_1_OUT
//160
1, // nCAS_0_OUT D24_OUT_ENB
0, // nRAS_3_OUT
0, // nRAS_2_OUT
1, // nRAS_1_OUT D25_OUT_ENB
0, // nRAS_0_OUT
0, // nRCS_5_OUT
1, // nRCS_4_OUT D26_OUT_ENB
0, // nRCS_3_OUT
0, // nRCS_2_OUT
1, // nRCS_1_OUT D27_OUT_ENB
//170
0, // CLKSEL_IN
0, // nRESET_IN
1, // MCLK_IN D28_OUT_ENB
0, // MCLKO_OUT
0, // CLKOEN_IN
1, // nRCS_0_OUT D29_OUT_ENB
0, // B0SIZE_1_IN
0, // B0SIZE_0_IN
1, // nOE_OUT D30_OUT_ENB
0, // nEWAIT_IN
//180
0, // nECS_3_OUT
1, // nECS_2_OUT D31_OUT_ENB
1, // nECS_1_OUT D31_IN
1, // nECS_0_OUT PTXD0
1, // DIS_BUS PTXD0 out enable
1, // UCLK_IN PTXD0 observe_only
1, // TMODE_IN PRXD0
1, // MDC_OUT PRXD0 out enable
1, // LITTLE_IN PRXD0 observe_only
1, // MDIO_OE PVD(0)
//190
1, // MDIO_OUT PVD(0) out enable
1, // MDIO_IN PVD(0) observe_only
1, // TX_EN_TXEN_10M_OUT PVD(1)
1, // TX_CLK_TXCLK_10M_OUT PVD(1) out enable
1, // TX_ERR_PCOMP_10M_OUT PVD(1) observe_only
1, // TXD3_OUT PVD(2)
1, // TXD2_OUT PVD(2) out enable
1, // TXD1_LOOP10_OUT PVD(2) observe_only
1, // TXD0_TXD_10M_OUT PVD(3)
1, // COL_COL_10M_IN PVD(3) out enable
//200
1, // RX_CLK_RXCLK_10M_IN PVD(3) observe_only
1, // RX_ERR_IN PVCLK
1, // RXD3_IN PVCLK out enable
1, // RXD2_IN PVCLK observe_only
1, // RXD1_IN PVLINE
1, // RXD0_RXD_10M_IN PVLINE out enable
1, // RX_DV_LINK10_IN PVLINE observe_only
1, // CRS_CRS_10M_IN PVM
1, // TXCBEN PVM out enable
1, // TXCB_OUT PVM observe_only
//210
1, // TXCB_IN PVFRAME
1, // nSYNCB_OUT PVFRAME out enable
1, // RXCB_IN PVFRAME observe_only
1, // nDCDB_IN PTOUT(4)
1, // nCTSB_IN PTOUT(4) out enable
0, // TXDB_OUT PTOUT(4) observe_only
0, // nRTSB_OUT PTOUT(3)
1, // RXDB_IN PTOUT(3) out enable
0, // nDTRB_OUT PTOUT(43) observe_only
0, // TXCAEN PTOUT(2)
//220
0, // TXCA_OUT PTOUT(2) out enable
1, // TXCA_IN PTOUT(2) observe_only
0, // nSYNCA_OUT PTOUT(1)
1, // RXCA_IN PTOUT(1) out enable
1, // nDCDA_IN PTOUT(1) observe_only
1, // nCTSA_IN PTOUT(0)
0, // TXDA_OUT PTOUT(0) out enable
0, // nRTSA_OUT PTOUT(0) observe_only
1, // RXDA_IN
0, // nDTRA_OUT
//230
0, // nUADSR1_OUT
0, // UATXD1_OUT
1 , // nUADTR1_IN
1, // RXCA_IN
1, // nDCDA_IN
1, // nCTSA_IN
0, // TXDA_OUT
0, // nRTSA_OUT
1, // RXDA_IN
0, // nDTRA_OUT
//240
0, // nUADSR1_OUT
0, // UATXD1_OUT
1 , // nUADTR1_IN
1, // RXCA_IN
1, // nDCDA_IN
1, // nCTSA_IN
0, // TXDA_OUT
0, // nRTSA_OUT
1, // RXDA_IN
0, // nDTRA_OUT
//250
0, // nUADSR1_OUT
0, // UATXD1_OUT
1 , // nUADTR1_IN
0, // nDTRA_OUT
0, // nUADSR1_OUT
0, // UATXD1_OUT
// 1 // nUADTR1_IN
};
int lpt_address;
void error_out(char *error_string)
{
printf("%s\n",error_string);
exit(0);
}
unsigned short test_port(void) // 不需要改
{
// search for valid parallel port
lpt_address = 0;
OUTB(LPT1, 0x55);
if(INB(LPT1) == 0x55) lpt_address = LPT1;
OUTB(LPT2, 0x55);
if(INB(LPT2) == 0x55) lpt_address = LPT2;
OUTB(LPT3, 0x55);
if(INB(LPT3) == 0x55) lpt_address = LPT3;
return(lpt_address);
}
int putp(int tdi, int tms, int rp)
{
// Output pins (LPT driving)
// LPT D2 Pin 4 and TCK (bit 2 lptaddress )
// LPT D3 Pin 5 and TDI (bit 3 lptaddress )
// LPT D1 Pin 3 and TMS (bit 1 lptaddress )
// LPT D0 Pin 2 and TRST (bit 0 lptaddress )
//
// Input pin (S3C4510 board drives)
// LPT BUSY Pin 11 and TDO (bit 7 lptaddress + 2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -