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

📄 2410test.c

📁 s3c2410 arm9 仿真器下载程序
💻 C
字号:
//====================================================================
// File Name : 2410test.c
// Function  : S3C2410 Test Main Menu
// Program   : Shin, On Pil (SOP)
// Date      : June 13, 2003
// Version   : 0.0
// History
//   0.0 : Programming start (February 20,2002) -> SOP
//   1.0 (20020530) : First release for customer
//   1.1 (20020801) : Strata NOR Flash Added and etc. -> SOP
//   1.2 (20020930) : Added IIS Slave mode Test Menu. -> SOP
//       (20021208) : IIS Record & Play Test
//       (20030324) : Added K9S1208 Erase -> SOP
//       (20030331) : Added Test_Cache -> SOP
//       (20030613) : SOP
//====================================================================

#include <stdlib.h>
#include <string.h>

//Shin, On Pil
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "mmu.h"

#include "flash.h"

void Isr_Init(void);
void HaltUndef(void);
void HaltSwi(void);
void HaltPabort(void);
void HaltDabort(void);

//===================================================================
void Main(void)
{
    Led_Display(15);
//    MMU_Init();
    MMU_DisableMMU();
    MMU_DisableDCache();
    MMU_DisableICache();

#if ADS10   
    __rt_lib_init();                //for ADS 1.0
#endif
    
    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  

    Port_Init();
    Isr_Init();
    Uart_Init(0,115200);
    Uart_Select(0);

    Delay(0);	//calibrate Delay()

    while(1)
    {
        Uart_Printf("\n\n[GX-ARM9-2410 Flash Program] FCLK = %d Hz\n", FCLK);
        ProgramFlash();
    }
}

//===================================================================
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 HaltUndef(void)
{
    Uart_Printf("Undefined instruction exception.\n");
    while(1);
}

//===================================================================
void HaltSwi(void)
{
    Uart_Printf("SWI exception.\n");
    while(1);
}

//===================================================================
void HaltPabort(void)
{
    Uart_Printf("Pabort exception.\n");
    while(1);
}

//===================================================================
void HaltDabort(void)
{
    Uart_Printf("Dabort exception.\n");
    while(1);
}

⌨️ 快捷键说明

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