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

JZ2440:Memory接到Bank6,所以内存地址从0x3000,0000(128MBx6)开始。 Nand 256M 8bit,SDRAM 64M 32bit,Nor 2M 16bit。

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

    

参考::s3c2440裸机开发环境的搭建  ::基于KEIL4开发ARM9(S3C2440)的裸机程序

配置S3C2440.s,这是MDK自动生成的。主要是配置关闭Watchdog,配置MEM,CLK。GPIO的设置我们放到C code里面实现:

设置地址如下:

设置生成文件:

/*
 * 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)
{  ; 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;
    ){
        Delay();
        GPFDAT = 0xEF;         // 1110,1111
        Delay();
        GPFDAT = 0xDF;         // 1101,1111
        Delay();
        GPFDAT = 0xBF;         // 1011,1111
    }
    ;
}

通过oflash.exe(安装OpenOCD之后位于bin目录)烧写bin文件到nand flash的地址0位置:https://blog.csdn.net/thisway_diy/article/details/52808038

纯ARM汇编程序点亮LED的程序(所有行都要TAB缩进):

     AREA    RESET, CODE, READONLY
     ARM
     LDR     R0,=0x56000050      ; GPFCON
     MOV     R1,#0x00000100      ; bit[9:8]=01, set GPF4 output
     STR     R1,[R0]             ;
     LDR     R0,=0x56000054      ; GPFDAT                               ;
     MOV     R1,#0x00000000      ; pull down GPF
     STR     R1,[R0]             ;

JZ2440学习笔记之第一个裸机程序(Keil-MDK)的更多相关文章

  1. Linux学习笔记20——第一个多线程程序

    一 什么是线程 线程:是一个进程内部的一个控制序列. 二 使用POSIX的注意点 1 为了使用线程函数库,必须定义宏_REENTRANT,通过定义_REENTRANT来告诉编译器我们需要可重入功能,可 ...

  2. 【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序

    FRDM-K64F开发平台采用MK64FN1M0VLL12微控制器.该控制器包含一个带有浮点单元的ARM Cortex-M4内核.其最高工作频率为120MHz,具有256KB的RAM.1MB闪存以及许 ...

  3. JZ2440学习笔记之通过J-Link单步裸机程序(Keil+J-Link)

    我们还是使用JZ2440学习笔记之第一个裸机程序(Keil-MDK)里面的程序,但是把延时拿掉,要不然单步的时候一直在delay里面: int main(void) { // Set GPF4/5/6 ...

  4. Spring实战第五章学习笔记————构建Spring Web应用程序

    Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第一章:向量代数 学习目标: 学习如何使用几何学和数字描述 Vecto ...

  6. Stealth视频教程学习笔记(第一章)

    Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  7. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  8. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  9. C#.NET学习笔记2---C#.第一个C#程序

    C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com 6.第一个C#程序:   ...

随机推荐

  1. esyui datagrid 水平方向下方出来滚动条的原因是因为使用了同一列名

    esyui datagrid 水平方向下方出来滚动条的原因是因为使用了同一列名

  2. Linux服务器tomcat启动很慢

    Linux服务器tomcat启动很慢 步骤: 一:找到 java 位置 whereis java 输出内容(部分):/usr/lib/java  ...... 二:进入到 lib 目录 cd /usr ...

  3. C博客作业01--分支,顺序结构

    1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 因为暑假的时候没有事先了解过C语言这门课程,翁恺老师的学习视频没看,pta习题也没有刷,所以开学后学得也蛮吃 ...

  4. LVS,Keepalived,HAproxy区别与联系

    LVS,Keepalived,HAproxy区别与联系 LVS 全称Linux Virtual Server,也就是Linux虚拟服务器,由章文嵩(现就职于于淘宝,正因为如此才出现了后来的fullna ...

  5. 迪杰斯特拉(Dijkstra)算法描述及理解

    Dijkstra算法是一种计算单源最短无负边路径问题的常用算法之一,时间复杂度为O(n2) 算法描述如下:dis[v]表示s到v的距离,pre[v]为v的前驱结点,用以输出路径,vis[v]表示该点最 ...

  6. es6下 vue实例属性template不能使用

    esm模式下 不能使用template,需要引入非esm的vue.js,查看vue源码的包的dist目录下 文件标有esm是支持ems,没有标记,就是不支持(这个知识,怎么说了,应该属于webpack ...

  7. css实现三角形相关

    1.css样式面包屑导航条实现矩形和三角箭头拼接 .cssTest { font-family: PingFangSC-Regular; font-size: 16px; color: #333333 ...

  8. RedHat Enterprise Linux 6.4使用网易Centos 6 的yum源

    1.首先到http://mirrors.163.com/centos下载软件包 x86 地址:http://mirrors.163.com/centos/6/os/i386/Packages/ x86 ...

  9. subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.

    解决方法find / -name lsb_releaserm -rf /usr/bin/lsb_release

  10. numpy处理时间序列

    1. 字符串转成numpy.datetime64格式 import numpy as np #将字符串转换成numpy格式时间 #注意个位前补0,如1月写成01 nd=np.datetime64('2 ...