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

📄 define.pas

📁 LOM-ARM7的Flash烧写的windows版程序
💻 PAS
字号:
Unit Define;

interface

Uses HWINTERFACELib_TLB,SysUtils;

{*********************************************************************
S3C4510.h
**********************************************************************}

const 
      S3C4510_CHAIN_LENGTH = 233;

     	UARXD1_IN      =     0  ;
     	nUADSR0_OUT    =     1  ;
     	UATXD0_OUT     =     2  ;
     	nUADTR0_IN     =     3  ;
     	UARXD0_IN      =     4  ;
     	SDA_OUT        =     5  ; // OPEN DRAIN OUTPUT
     	SDA_IN         =     6  ;
     	SCL_OUT        =     7  ;  
     	SCL_IN         =     8  ;  
      P17_ENB        =     9  ; // *
      P17_OUT        =     10 ;   
      P17_IN         =     11 ;   
      P16_ENB        =     12 ; // *
      P16_OUT        =     13 ;   
      P16_IN         =     14 ;   
      P15_ENB        =     15 ; // *
      P15_OUT        =     16 ;   
      P15_IN         =     17 ;   
      P14_ENB        =     18 ; // *
      P14_OUT        =     19 ;   
      P14_IN         =     20 ;   
      P13_ENB        =     21 ; // *
      P13_OUT        =     22 ;   
      P13_IN         =     23 ;   
      P12_ENB        =     24 ; // *
      P12_OUT        =     25 ;   
      P12_IN         =     26 ;   
      P11_ENB        =     27 ; // *
      P11_OUT        =     28 ;   
      P11_IN         =     29 ;   
      P10_ENB        =     30 ; // *
      P10_OUT        =     31 ;   
      P10_IN         =     32 ;   
      P9_ENB         =     33 ; // *
      P9_OUT         =     34 ;   
      P9_IN          =     35 ;   
      P8_ENB         =     36 ; // *
      P8_OUT         =     37 ;   
      P8_IN          =     38 ;   
      P7_ENB         =     39 ; // *
      P7_OUT         =     40 ;   
      P7_IN          =     41 ;   
      P6_ENB         =     42 ; // *
      P6_OUT         =     43 ;   
      P6_IN          =     44 ;   
      P5_ENB         =     45 ; // *
      P5_OUT         =     46 ;   
      P5_IN          =     47 ;   
      P4_ENB         =     48 ; // *
      P4_OUT         =     49 ;   
      P4_IN          =     50 ;   
      P3_ENB         =     51 ; // *
      P3_OUT         =     52 ;   
      P3_IN          =     53 ;   
      P2_ENB         =     54 ; // *
      P2_OUT         =     55 ;   
      P2_IN          =     56 ;   
      P1_ENB         =     57 ; // *
      P1_OUT         =     58 ;   
      P1_IN          =     59 ;   
      P0_ENB         =     60 ; // *
      P0_OUT         =     61 ;
      P0_IN          =     62 ;
      D31_OUT        =     63 ;
      D31_IN         =     64 ;
      D30_OUT        =     65 ;
      D30_IN         =     66 ;
      D29_OUT        =     67 ;
      D29_IN         =     68 ;
      D28_OUT        =     69 ;
      D28_IN         =     70 ;
      D27_OUT        =     71 ;
      D27_IN         =     72 ;
      D26_OUT        =     73 ;
      D26_IN         =     74 ;
      D25_OUT        =     75 ;
      D25_IN         =     76 ;
      D24_OUT        =     77 ;
      D24_IN         =     78 ;
      D23_OUT        =     79 ;
      D23_IN         =     80 ;
      D22_OUT        =     81 ;
      D22_IN         =     82 ;
      D21_OUT        =     83 ;
      D21_IN         =     84 ;
      D20_OUT        =     85 ;
      D20_IN         =     86 ;
      D19_OUT        =     87 ;
      D19_IN         =     88 ;
      D18_OUT        =     89 ;
      D18_IN         =     90 ;
      D17_OUT        =     91 ;
      D17_IN         =     92 ;
      D16_OUT        =     93 ;
      D16_IN         =     94 ;
      D15_OUT        =     95 ;
      D15_IN         =     96 ;
      D14_OUT        =     97 ;
      D14_IN         =     98 ;
      D13_OUT        =     99 ;
      D13_IN         =     100;
      D12_OUT        =     101;
      D12_IN         =     102;
      D11_OUT        =     103;
      D11_IN         =     104;
      D10_OUT        =     105;
      D10_IN         =     106;
      D9_OUT         =     107;
      D9_IN          =     108;
      D8_OUT         =     109;
      D8_IN          =     110;
      D7_OUT         =     111;
      D7_IN          =     112;
      D6_OUT         =     113;
      D6_IN          =     114;
      D5_OUT         =     115;
      D5_IN          =     116;
      D4_OUT         =     117;
      D4_IN          =     118;
      D3_OUT         =     119;
      D3_IN          =     120;
      D2_OUT         =     121;
      D2_IN          =     122;
      D1_OUT         =     123;
      D1_IN          =     124;
      D0_OUT         =     125;
      D0_IN          =     126;
      D_OUT_ENB      =     127;    
      A21_OUT        =     128;
      A20_OUT        =     129;
      A19_OUT        =     130;
      A18_OUT        =     131;
      A17_OUT        =     132;
      A16_OUT        =     133;
      A15_OUT        =     134;
      A14_OUT        =     135;
      A13_OUT        =     136;
      A12_OUT        =     137;
      A11_OUT        =     138;
      A10_OUT        =     139;
      A9_OUT         =     140;
      A8_OUT         =     141;
      A7_OUT         =     142;
      A6_OUT         =     143;
      A5_OUT         =     144;
      A4_OUT         =     145;
      A3_OUT         =     146;
      A2_OUT         =     147;
      A1_OUT         =     148;
      A0_OUT         =     149;
     	ExtMACK_OUT    =     150;
     	ExtMREQ_IN     =     151;
     	nWBE_3_OUT     =     152;
     	nWBE_2_OUT     =     153;
     	nWBE_1_OUT     =     154;
     	nWBE_0_OUT     =     155;
     	nDWE_OUT       =     156;
     	nCAS_3_OUT     =     157;
     	nCAS_2_OUT     =     158;
     	nCAS_1_OUT     =     159;
     	nCAS_0_OUT     =     160;
     	nRAS_3_OUT     =     161;
     	nRAS_2_OUT     =     162;
     	nRAS_1_OUT     =     163;
     	nRAS_0_OUT     =     164;
     	nRCS_5_OUT     =     165;
     	nRCS_4_OUT     =     166;
     	nRCS_3_OUT     =     167;
     	nRCS_2_OUT     =     168;
     	nRCS_1_OUT     =     169;
     	CLKSEL_IN      =     170;
     	nRESET_IN      =     171;
     	MCLK_IN        =     172;
     	MCLKO_OUT      =     173;
     	CLKOEN_IN      =     174;
     	nRCS_0_OUT     =     175;
     	B0SIZE_1_IN    =     176;
     	B0SIZE_0_IN    =     177;
     	nOE_OUT        =     178;
     	nEWAIT_IN      =     179;
     	nECS_3_OUT     =     180;
     	nECS_2_OUT     =     181;
     	nECS_1_OUT     =     182;
     	nECS_0_OUT     =     183;
     	DIS_BUS        =     184;    
     	UCLK_IN        =     185;
     	TMODE_IN       =     186;
     	MDC_OUT        =     187;
     	LITTLE_IN      =     188;
     	MDIO_OE        =     189;
     	MDIO_OUT       =     190;
     	MDIO_IN        =     191;
     	TX_EN_TXEN_10M_OUT   = 192;
     	TX_CLK_TXCLK_10M_OUT = 193;
     	TX_ERR_PCOMP_10M_OUT = 194;
     	TXD3_OUT             = 195;
     	TXD2_OUT             = 196;
     	TXD1_LOOP10_OUT      = 197;
     	TXD0_TXD_10M_OUT     = 198;
     	COL_COL_10M_IN       = 199;
     	RX_CLK_RXCLK_10M_IN  = 200;
     	RX_ERR_IN      =     201;
     	RXD3_IN        =     202;
     	RXD2_IN        =     203;
     	RXD1_IN        =     204;
     	RXD0_RXD_10M_IN=     205;
     	RX_DV_LINK10_IN=     206;
     	CRS_CRS_10M_IN =     207;
     	TXCBEN         =     208;     // *
     	TXCB_OUT       =     209;
     	TXCB_IN        =     210;
     	nSYNCB_OUT     =     211;
     	RXCB_IN        =     212;
     	nDCDB_IN       =     213;
     	nCTSB_IN       =     214;
     	TXDB_OUT       =     215;
     	nRTSB_OUT      =     216;
     	RXDB_IN        =     217;
     	nDTRB_OUT      =     218;
     	TXCAEN         =     219;     // *
     	TXCA_OUT       =     220;
     	TXCA_IN        =     221;
     	nSYNCA_OUT     =     222;
     	RXCA_IN        =     223;
     	nDCDA_IN       =     224;
     	nCTSA_IN       =     225;
     	TXDA_OUT       =     226;
     	nRTSA_OUT      =     227;
     	RXDA_IN        =     228;
     	nDTRA_OUT      =     229;
     	nUADSR1_OUT    =     230;
     	UATXD1_OUT     =     231;
     	nUADTR1_IN     =     232;

      TRST  =  $01 ;
      LPT1  =  $3bc;	// hardware base address for parallel port
      LPT2  =  $378;	// the search order is LPT1 then 2 then 3
      LPT3  =  $278;	// first valid address found is used (re-order if needed for multiple ports)

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

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

      S3C4510ID = '**** 1111000011110000 11110000111 1'; // JTAG ID-codes for the S3C4510
                 // "0001 1111000011110000 11110000111 1"


{***********************************************************************
SST39VF160.H
************************************************************************}
//basic sst39vf160 info 

    SST39_ROW_SIZE    =  4096       ;   	// Must be 4096 bytes for 39VF160
    SST39_BLOCK_SIZE  =  64*1024    ;   	// block erase size --- 64k
    SST_39VF160       =  $2782     ;   	// SST 39VF160 device ID
    SST_ID            =  $00BF     ;   	// Manufacturer’s ID
    FLASH_SIZE			  =  2*1024*1024;		//whole flash size

//flash operation addr
    SST39_CMD_ADDRESS1  =  $5555;
    SST39_CMD_ADDRESS2  =  $2aaa;

//defined for sector erase
        SST39_AUTO_PG_ERASE1  =  $aaaa;
        SST39_AUTO_PG_ERASE2  =  $5555;
        SST39_AUTO_PG_ERASE3  =  $8080;
        SST39_AUTO_PG_ERASE4  =  $aaaa;
        SST39_AUTO_PG_ERASE5  =  $5555;
        SST39_ERASE_SECTOR    =  $3030;
        SST39_ERASE_BLOCK     =  $5050;
        SST39_ERASE_CHIP      =  $1010;

//defined for word program
        SST39_AUTO_PGRM1   =   $aaaa;
        SST39_AUTO_PGRM2   =   $5555;
        SST39_AUTO_PGRM3   =   $a0a0;

//defined for read id
        SST39_READ_ID1      =  $aaaa;
        SST39_READ_ID2      =  $5555;
        SST39_READ_ID3      =  $9090;
        SST39_EXIT_READ_ID  =  $f0f0;
procedure OUTB(port:word;data:byte);function  INB(port:word):word;var  lpt_address:integer;	//the first addr of the parallel
  pos      :longword;
  read_size:longword;
  sector_addr, sector_count:longword;
  block_addr, block_count:longword;
  fname:TFileName;
  OperateType:(optLoad,optEraseAll,optEraseSec,optEraseBlk,optSave);
  MyPar:THwinterface;

implementation
procedure OUTB(Port:word;data:byte);begin  MyPar.OutPort(Port,data);
end;function INB(port:word):word;begin
  Result:=MyPar.InPort(Port);
end;end.

⌨️ 快捷键说明

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