前言

在博客园里面我搜索了老半天,找相应的mini2440的裸机开发的程序,让我挺失望的就是居然没有人对做arm这块做详细的解答,到底如何去做,到底如何去配置,都不清楚,让我很纠结,那么我花了近一星期的时间,翻书、查资料、逛论坛,终于在自己一点一点地摸索下把整个流程都搞定了!而且谁说ARM硬件平台的同学不搞开源的,作为硬件狗,我们也是很乐意与大家分享我们的项目的!

个人设定目标

使用mini2440上的蜂鸣器进行呼叫。

准备

Mini2440开发板、keil 4 for arm

Keil的配置

OK,首先我们要新建一个project

Project->new uvision project

写完自己的项目名以后,要选择自己的CPU了

OK,我们选择的就是三星的S3C2440A的芯片

问你是否把keil写的加入到项目中,我们选否,自己进行配置

按F2键可以修改工程项目名

当然我们也可以右击后选择Mange Project Items对我们的工程项目进行管理

点击OK

马上我们的工程现在就有个完整的体系

下面就是对keil的target进行设置。

找到按钮

设置ROM起始地址,至于为何是0x30000000,请查看芯片手册

设置RAM

设置产生文件的地方,我们一般都是放在Out目录下

点击select folder for objects

选择你要的路径

在USER中勾选run#1项表示在编译过程中如何连接等

命令如下:

fromelf.exe --bin -o ./out/@l.bin ./out/@l.axf

因keil默认不能产生bin文件,需借助fromelf.exe工具来产生bin文件

头文件引入设置

OK,基本上我们的工程已经设置完成了!

开启Beep之旅

要操作硬件,那么我们必须要知道它的电路图是如何的?

看到了吧,我们要寻找GPB0口对蜂鸣器进行操作。

那么我们要操作这个口,必须找到他的地址,我们去找到MINI2440_CPU芯片文档

OK,我们找到了GPB口的寄存器

看到芯片手册中的GPB0口了吧,OK,呢么我们应该使用的是OUTPUT模式,嗯!基本上我们是有思路了。

OK,这个就是我们设置数据的寄存器,哈哈,可以了!

看我蓝线的部分,英语真心重要啊!当端口被设置为输出端口时,这个GPBDAT寄存器就是被设置为相应的数值。

编码时间

OK,上面我们已经讲得非常清楚如何来配置了。一条清晰的思路已经在我们的脑海里面形成,下面就是我们如何来实现了。

新建好一个空白的文件。

然后编码了:

  AREA RESET,CODE,READONLY
ENTRY
LDR R1, =0x56000010
LDR R2, =0x1
STR R2, [R1]
MainLoop
LDR R1, =0x56000014
LDR R2, =0x1
STR R2, [R1] LDR R1, =0xFFFFFF
Delay1
SUB R1, R1, #
CMP R1, #
BNE Delay1 LDR R1, =0x56000014
LDR R2, =0x0
STR R2, [R1] LDR R1, =0xFFFFFF
Delay2
SUB R1, R1, #
CMP R1, #
BNE Delay2 B MainLoop END

保存,将我们的文件保存为demo.s格式

将我们的文件添加到我们的src目录下

Add existing file to ….

编译

看结果:

很明显,这个项目没有错误,OK,使用MINItool下载OUT目录下的bin文件吧!

最新文章

  1. 在windows系统下,在终端快速打开某个路径
  2. linux 守护程序小记(指定进程不存在则启动 )
  3. easyui tree onloadsuccess事件的心得
  4. linux网络协议
  5. runoob
  6. Java集合之TreeMap
  7. vim显示行号
  8. 上架app 到app store 的出现: “The IPA is invalid. It does not inlude a Payload directory.”错误处理
  9. ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.
  10. 笔记《Java程序性能优化 让你的Java程序更快、更稳定》 第二章 设计调优
  11. myeclipse2013 for linux及其破解补丁百度网盘下载
  12. JVM 找出最耗 cpu的线程 并打印线程栈
  13. Hat’s Words hdu-1247
  14. (转)Phonegap VS AppCan
  15. 美国政府关于Google公司2013年度的财务报表红头文件
  16. JSP 学习笔记
  17. javaweb-1-B/S初论
  18. 【转】JAVA异常报错大全
  19. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第二话):安装插件,配置JDK、Git、Ant
  20. OpenCV——归一化函数normalize

热门文章

  1. 微信小程序web-view之动态加载html页面
  2. 一起学习《C#高级编程》3--运算符重载
  3. SQL Server数据库的基础脚本编程
  4. .Net Core使用HttpClient请求Web API注意事项
  5. 浅谈由管理者角色引出的B端产品设计思考点
  6. 销售系统项目业务分析和Java中使用邮箱
  7. 2018 OCP 052最新题库及答案-4
  8. CF77E Martian Food(圆的反演or 笛卡尔定理+韦达定理)
  9. java使用Redis4--主从复制
  10. leetcode-201-数字范围按位与