基于KEIL4开发ARM9(S3C2440)的裸机程序
本文主要介绍如何使用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)的裸机程序的更多相关文章
- 10.17小作业 基于TCP开发一款远程CMD程序
基于TCP开发一款远程CMD程序 客户端连接服务器后,可以向服务器发送命令 服务器收到命令后执行,无论执行是否成功,无论执行几遍,都将执行结果返回给客户端 注意: 执行系统指令使用subprocess ...
- (一)keil4 MDK 开发环境下编写裸机程序 (参考杨铸 北航) (开发板只需要连接JLNK 就行了)
首先用的是 keil4 位与 ( F:\ARM+LINUX\MDK-ARM_v4.10.exe ) 1. 新建工程名project 为 led circle ,放在 我的文档\ l ...
- JZ2440学习笔记之第一个裸机程序(Keil-MDK)
CPU:S3C2440, ARM920T, Internal 4KB RAM, Support boot from NAND flash, 128MB for each bank. JZ2440:Me ...
- ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境
ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境 系统: ubuntu16.04 裸板: 飞凌公司OK6410开发板 目标:搭建基于ubuntu1604系统和基于RA ...
- 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)
本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以 SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...
- 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(1:概述)
本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以 SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...
- s3c2440 lcd 显示图片裸机程序
因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SD ...
- 基于Asterisk的VoIP开发指南——(2)Asterisk AGI程序编写指南
原文:基于Asterisk的VoIP开发指南--(2)Asterisk AGI程序编写指南 5. Asterisk AGI程序编写指南 5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或 ...
- MDK972-EK开发板裸调试设置和裸机程序烧写(转)
硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8 本例子从串口输出信息,如图: KEIL uVision4调试设置如图所示: ...
随机推荐
- Android4.0.3 USB OTG底层插入上报过程分析(1)
下面的两个宏是PM8058的MMP11(R15),MMP12(P15)管脚.#define EXT_CHG_VALID_MPP 10#define EXT_CHG_VALID_MPP_2 11 sta ...
- 遗传算法在JobShop中的应用研究(part 7:整体流程)
""" pop是种群,种群中的每个个体的形式是,(makespan, 染色体)""" pop = [(ComputeStartTimes(g ...
- SQL-Server使用点滴(一)
前言 SQL的语法比较简单,学起来相比界面UI控制要简单得多,但是SQL在企业级应用中又是如此的重要,以至于很多开发人员都把重点放在SQL上. SQL并没有面向对象的概念,最复杂的设计也不过是表值函数 ...
- 21.TFS文件系统搭建笔记
TFS文件系统搭建笔记 参考地址: https://github.com/alibaba/tfs/blob/master/INSTALL.md https://github.com/alibaba/t ...
- 设置hr标签的粗细
hr {border:0px;border-bottom:1px solid #5c5c3d;}
- Ubuntu install g++
We can use two ways to install g++ on Ubuntu. 1. a. sudo apt-get install make gcc g++. b. sud ...
- Ajax --- 数据请求
下面主要介绍(JS原生)数据请求的主要步骤: Ajax 数据请求步骤: 1.创建XMLHttpRequest对象 2.准备数据发送 3.执行发送 4.指定回掉函数 第一步:创建XMLHttpReque ...
- Asp.NET利用ClientScript.RegisterStartupScript("")的同学,请注意!
如果你想要在aspx.cs 文件用利用 ClientScript.RegisterStartupScript(""); 方法动态在DOM中执行脚本(比如想要将后置代码中的验证结果信 ...
- 2014 ACM/ICPC Asia Regional Xi'an Online
03 hdu5009 状态转移方程很好想,dp[i] = min(dp[j]+o[j~i]^2,dp[i]) ,o[j~i]表示从j到i颜色的种数. 普通的O(n*n)是会超时的,可以想到o[]最大为 ...
- go并发3
Go语言并发的设计模式和应用场景 以下设计模式和应用场景来自Google IO上的关于Goroutine的PPT:https://talks.golang.org/2012/concurrency.s ...