本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序。

说明:

    一、平台:

      操作系统:Windows XP系统

      KEIL版本:4.73

开发板:ARM9(S3C2440)

二、建立工程:

       1、新建工程,选择S3C2440A处理器:

2、对工程进行设置

1)设置RAM、ROM地址:

          RAM1:

            Start:0x30000000

            Size:0x200000

          ROM1:

            Start:0x30200000

            Size:0x200000

      2)生成Hex文件

      3)设置生成.0 .bin .axf文件

     4)选择仿真器与初始化文件:

        1、仿真器设置

        2、加载初始化文件和修改初始化文件:将代码58行的LOAD test1.axf INCREMENTAL中的test1修改为工程各即可。

      5)加载Flash烧录算法与设置:注意,不可以擦除芯片或者扇区,所以只好选择Do not Erase。没有对应的芯片的Flash烧录算法,所以选择容量相近的芯片的烧录算法。(此方法为网上给出的方法,没有深入分析过,我很菜。哈哈)

并且不要选择Upadte Target before Debugging和Use Debug Driver。

      6)设置和修改s3C2440.s汇编文件:可以使用图形界面修改s3c2440.s,如果够厉害,可以直接在汇编文件里面修改汇编代码。我不够厉害,所以我使用的图形界面修改的。

我建立的工程为一个简单的LED流水灯的工程,4个流水灯使用PF0-PF4控制,所以将PF0-PF4设置为输出。关于时钟寄存器的设置,可以参考S3C2440芯片说明手册。

      7)加载main.c文件

8)下载程序仿真:下载程序仿真时,发现KEIL中的RESET键不可以用,如果直接按RESET键,程序就跳转到0x00000000地址,再次运行时就跳飞了。所以当需要复位时,直接修改程序地址寄存器(PC,R15),如图所示,我的程序的初始化地址为

0x300001E8,所在需要复位时,我直接将R15寄存器的值修改为0x300001E8即可。

总结:上以的教程为我从网上找的资料,然后经过实际操作后编写,完全可行。如有错误之处,欢迎大家指出。谢谢!大家共同学习,互相交流。

联系方式:

    QQ:553823837(Sky)

    微信:553823837(Sky)

    称呼:天朝的猫

基于KEIL4开发ARM9(S3C2440)的裸机程序的更多相关文章

  1. 10.17小作业 基于TCP开发一款远程CMD程序

    基于TCP开发一款远程CMD程序 客户端连接服务器后,可以向服务器发送命令 服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端 注意: 执行系统指令使用subprocess ...

  2. (一)keil4 MDK 开发环境下编写裸机程序 (参考杨铸 北航) (开发板只需要连接JLNK 就行了)

    首先用的是 keil4  位与   ( F:\ARM+LINUX\MDK-ARM_v4.10.exe  ) 1. 新建工程名project 为    led circle   ,放在  我的文档\ l ...

  3. JZ2440学习笔记之第一个裸机程序(Keil-MDK)

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

  4. ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

    ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境 系统:  ubuntu16.04 裸板: 飞凌公司OK6410开发板 目标:搭建基于ubuntu1604系统和基于RA ...

  5. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...

  6. 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(1:概述)

    本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以  SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...

  7. s3c2440 lcd 显示图片裸机程序

    因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SD ...

  8. 基于Asterisk的VoIP开发指南——(2)Asterisk AGI程序编写指南

    原文:基于Asterisk的VoIP开发指南--(2)Asterisk AGI程序编写指南 5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或 ...

  9. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

随机推荐

  1. AfxBeginThread中使用updatedata出错

    原因:MFC对象不支持多线程操作,不能供多个线程进程使用,所以尽量不要在线程里面更新界面. 解决办法: 1.将工程改为release 2.使用控件来SetWindowText 3.在线程里面发送消息 ...

  2. 开发一个IONIC应用的首要操作(宏观)

    1.创建工程 2.搭建路由(routes.js) 3.添加控制(controller.js) 4.加载模块(app.js)

  3. Overload和Override的区别

    Overload:重载 |- 在一个类中定义的若干方法 |- 所有的方法名相同,但参数类型或个数不同 |- 只有参数有关,与返回类型无关 Override:覆写 |- 在继承的关系中 |- 子类定义了 ...

  4. Date Picker和UITool Bar的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Verdana } span.s1 { } span.s2 { background-colo ...

  5. C#知识点总结系列:4、C#中Monitor和Lock以及区别

    Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...

  6. LeetCode——Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  7. LINQ之路 7:子查询、创建策略和数据转换

    在前面的系列中,我们已经讨论了LINQ简单查询的大部分特性,了解了LINQ的支持计术和语法形式.至此,我们应该可以创建出大部分相对简单的LINQ查询.在本篇中,除了对前面的知识做个简单的总结,还会介绍 ...

  8. ASP.NET 状态服务 及 session丢失问题解决方案总结

    ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...

  9. web前端图片极限优化策略

    随着web的发展,网站资源的流量也变得越来越大.据统计,60%的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力. 一.现有web图片格式 我们先来看下现在常用 ...

  10. springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传

    总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...