CPU:S3C2440, ARM920T, 4KB RAM, Support boot from NAND flash, 128MB for each bank。

JZ2440:Memory接到Bank6,所以内存地址从0x3000,0000(128MBx6)开始。 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

Keil-MDK5已经不支持ARM9,需要安装额外的pack支持:http://www2.keil.com/mdk5/legacy/

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第1张    JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第2张

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第3张

参考::s3c2440裸机开发环境的搭建

        ::基于KEIL4开发ARM9(S3C2440)的裸机程序

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第4张

通过图形界面设置,配置完之后.s文件会变化,GPIO的设置放在C code里面。

地址需要设置成如下:

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第5张

设置不同的地址,bin文件不一样(地址的设定待研究):

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第6张

JZ2440学习笔记之第一个裸机程序(Keil-MDK),s3c2440裸机开发环境的搭建,基于KEIL4开发ARM9(S3C2440)的裸机程序 随笔 第7张

/*
 * Leds.c
 * Light leds in turn.
 */
 // S3C2440 registers define
#define    GPFCON        (*(volatile unsigned long *)0x56000050)
#define    GPFDAT        (*(volatile unsigned long *)0x56000054)

// Set GPF4/5/6 as output.
#define    GPF4_out    (1<<(4*2))
#define    GPF5_out    (1<<(5*2))
#define    GPF6_out    (1<<(6*2))

// Delay
void Delay(volatile unsigned long delay)
{
    for(; delay>0; delay--);
}

int main(void)
{
    // Set GPF4/5/6 as output.
    GPFCON = GPF4_out|GPF5_out|GPF6_out;        
    // Pull down will light led, so pull up here.
    GPFDAT = 0xFF;

    while(1){
        Delay(300000);
        GPFDAT = 0xEF;         // 1110,1111
        Delay(300000);
        GPFDAT = 0xDF;         // 1101,1111
        Delay(300000);
        GPFDAT = 0xBF;         // 1011,1111
    }
    
    return 0;
}

通过oflash.exe烧写bin文件到nand flash的地址0位置:https://blog.csdn.net/thisway_diy/article/details/52808038

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄