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

📄 2410my.c

📁 arm开发的一些小实验,开发工具ads1.2,multi-ice,实验开发板 s3c2410
💻 C
字号:
/************************************************ * NAME    : 2410loader.C			* * DESC    : 					* * History : 2002.02.25 ver 0.0			*************************************************/#include <stdlib.h>#include <string.h>#include "option.h"#include "def.h"#include "2410addr.h"#include "2410slib.h"#include "2410lib.h"#include "2410addr.h"#include "mmu.h"#include "2410etc.h"#include "flash.h"/*void Isr_Init(void);void T4_Start(void);void T4_Stop(void);char *hex2char(int val);*/void WriteMemory_chen(void);void ReadMemory_chen(void);void Write_D_Mem(void);void Read_D_Mem(void);void Main(void){    char i;         //   MMU_Init();     // MMU_EnableICache();     //    ChangeClockDivider(0,0);          // 1:1:1    //    ChangeClockDivider(0,1);          // 1:1:2    //    rCLKDIVN |= (1<<2);                     // 1:4:4//    ChangeClockDivider(1,0);          // 1:2:2       ChangeClockDivider(1,1);          // 1:2:4    //    ChangeMPllValue(0xa1,0x3,0x3);    // FCLK=50.7MHz    //    ChangeMPllValue(0x7f,0x2,0x2);    // FCLK=101.25MHz//    ChangeMPllValue(0x96,0x5,0x1);    // FCLK=135428571Hz //    ChangeMPllValue(0x2a,0x1,0x0);    // FCLK=200MHz   //    ChangeMPllValue(0x5c,0x1,0x1);    // FCLK=200MHz            ChangeMPllValue(0x5c,0x4,0x0);    // FCLK=200MHz//    ChangeMPllValue(0x8e,0x7,0x0);    // FCLK=200MHz          //    ChangeMPllValue(0xa1,0x3,0x1);    // FCLK=202.8MHz  //    ChangeMPllValue(0x66,0x1,0x1);    // FCLK=220MHz   //    ChangeMPllValue(0x69,0x1,0x1);    // FCLK=226MHz       //    ChangeMPllValue(0x96,0x2,0x1);    // FCLK=237MHz//    ChangeMPllValue(0x7d,0x4,0x0);    // FCLK=266MHz                Port_Init();//=== PORT E GROUP    //Ports  : GPE15  GPE14 GPE13   GPE12   GPE11   GPE10   GPE9    GPE8     GPE7  GPE6  GPE5   GPE4      //Signal : IICSDA IICSCL SPICLK SPIMOSI SPIMISO SDDATA3 SDDATA2 SDDATA1 SDDATA0 SDCMD SDCLK I2SSDO     //Binary :  10     10  ,  10      10  ,  10      10   ,   01      01   ,   01    10  , 01     10  ,         //-------------------------------------------------------------------------------------------------------    //Ports  :  GPE3   GPE2  GPE1    GPE0        //Signal : I2SSDI CDCLK I2SSCLK I2SLRCK         //Binary :  10     10  ,  10      10         rGPECON  =0xaaa566aa;  //         rGPEUP  = 0xffff;     // The pull up function is disabled GPE[15:0]    rGPEDAT |=0x03a0;     //let the 4 led shut off//  Isr_Init();//  Rtc_Init();    //  Uart_Init(0,115200);    Uart_Init(PCLK,115200);        Uart_Select(0);    Uart_Printf("Intel 28f128 program\n");    Uart_Printf(".bin file load begin 0x31000000\n");   Program28F128J3A();// by ldl add 2004/8/29    //ProgramFlash();// by ldl comment 2004/8/29   //ReadPageMode();  // WriteMemory_chen();   //ReadMemory_chen();       //Write_D_Mem();   // Read_D_Mem();    while(1);    	   // T4_Start();   // T4_Stop();  }//********************[ Write 32 bit Memory ]**************************************void WriteMemory_chen(void){    int i, *pt;    Uart_Printf("[ SDRAM Write Test(0x32000000~0x32bfffff, 12MBytes) ]\n");    pt=(int *)0x32000000;    for(i=0;i<0xc00000;i+=4)    {        *pt ++= i;        if((i%0x10000)==0)	   Uart_Printf("%x\t",i);		      }    Uart_Printf("\nWriting is completed.\n");}//********************[ Read 32 bit Memory ]***************************************void ReadMemory_chen(void){    int i,j,err = 0;    int *pt;        Uart_Printf("[ SDRAM Read Test(0x32000000~0x32bfffff, 12MBytes) ]\n");    pt = (int *)0x32000000;    for(i=0;i<0xc00000;i+=4)    {        j = *pt;        if(j!=i)        {            Uart_Printf("%x = %x\n",(U32)pt,j);            err++;        }        pt++;        if((i%0x10000)==0)               Uart_Printf("%x\t",j);	        	                  }    if(err==0)        Uart_Printf("\nMemory read test : O.K.\n");    else        Uart_Printf("\nMemory read test : FAIL!!!\n");}//********************[ Write dual Memory, 16 bit]**************************************void Write_D_Mem(void){    int pt,i;    Uart_Printf("[ Dual port RAM Write Test(0x20000000~0x20010000, 64KBytes) ]\n");    pt=0x20000000;    for(i=0;i<0x10000;i+=2)    {        *((U16 *)pt) = (U16)i;               if((i%0x1000)==0)            { Uart_Printf("%x--%x\t",(U32)pt,(U16)i);                          }			pt=pt+2;    }    Uart_Printf("\nWriting is completed.\n");}//********************[ Read dual Memory, 16 bit ]***************************************void Read_D_Mem(void){    int i,j,err = 0;    int pt;        Uart_Printf("[ Dual port RAM Read Test(0x20000000~0x20010000, 64KBytes) ]\n");    pt = 0x20000000;    for(i=0;i<0x10000;i+=2)    {        j = *((U16 *)pt);    //read mem        if(j!=i)        {            Uart_Printf("%x = %x\n",(U32)pt,(U16)j);            err++;        }                if((i%0x1000)==0)              { Uart_Printf("%x--%x\t",(U32)pt,(U16)j);	    //rGPEDAT ^=0x03a0;           }	pt=pt+2;    }    if(err==0)        Uart_Printf("\nMemory read test : O.K.\n");    else        Uart_Printf("\nMemory read test : FAIL!!!\n");}/*//===================================================================void Isr_Init(void){    pISR_UNDEF  = (unsigned)HaltUndef;    pISR_SWI    = (unsigned)HaltSwi;    pISR_PABORT = (unsigned)HaltPabort;    pISR_DABORT = (unsigned)HaltDabort;        rINTMOD     = 0x0;                     //All=IRQ mode//    rINTCON=0x5;                           //Non-vectored,IRQ enable,FIQ disable        rINTMSK     = BIT_ALLMSK;              //All interrupt is masked.    rINTSUBMSK  = BIT_SUB_ALLMSK;          //All sub-interrupt is masked. <- April 01, 2002 SOP//    rINTSUBMSK  = ~(BIT_SUB_RXD0);         //Enable Rx0 Default value=0x7ff//    rINTMSK     = ~(BIT_UART0);            //Enable UART0 Default value=0xffffffff        //    pISR_UART0=(unsigned)RxInt;            //pISR_FIQ,pISR_IRQ must be initialized}//===================================================================*//*void T4_Start(void){    rTCFG0=0xff00;    rTCFG1=(0x3<<16); //T4=16/256    rTCNTB4=0xffff;    rTCON=(1<<22)|(1<<21);  //Manual update    rTCON=(1<<22)|(1<<20);  //Start T4       }void T4_Stop(void){    int cnt;    rTCON=(1<<22)|(0<<20);  //Stop T4    cnt=0xffff-rTCNTO4;    Uart_SendString("NAND Boot End\n");    Uart_SendString("Boot time=nTCNT*82uS. nTCNT=0x");    Uart_SendString(hex2char((cnt&0xf000)>>12));    Uart_SendString(hex2char((cnt&0x0f00)>>8));    Uart_SendString(hex2char((cnt&0x00f0)>>4));    Uart_SendString(hex2char((cnt&0x000f)>>0));    	    Uart_SendString("\n\n");}char *hex2char(int val){    static char str[2];    str[1]='\0';	    if(val<=9)str[0]='0'+val;    else str[0]=('a'+val-10);    return str;}*/

⌨️ 快捷键说明

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