前言

在博客园里面我搜索了老半天,找相应的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文件吧!

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置的更多相关文章

  1. 详细解读ARM寄存器之CPSR【转】

    本文转载自:https://blog.csdn.net/david_luyang/article/details/6276533 详细解读ARM寄存器之CPSR 整理人:卢阳 QQ:820927872 ...

  2. ARM汇编初探---汇编代码中都有哪几类指令---ARM伪指令介绍

    要学习一个东西首先要把概念搞清楚,以下仅仅是自己的一些关于汇编的理解. 可运行文件里的01码是机器码,机器码不等于汇编码,尽管机器码能够非常easy翻译成汇编码. 汇编码中包括非常多汇编指令.伪指令和 ...

  3. 我与ARM的那些事儿2JINLK烧录nor flash

    前言 最近在研究mini2440的友善之臂,但是我拿着的是实验室早期买的开发板,在做裸机开发的过程中老是不能很好地使用最新版的minitools进行烧录,因而各种不爽,因为生成了bin文件不能很好地传 ...

  4. 我与ARM的那些事儿1初识ARM

    最近一直在研究ARM,说到ARM,我们首先想到了是三星.高通等公司,这些公司都制造CPU的,其实ARM也是一家公司,只不过它是提供最核心的逻辑电路,而且它的赚钱方式是与其他公司进行双赢的!你卖出多少芯 ...

  5. iOS逆向工程之Hopper中的ARM指令

    虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是 ...

  6. ARM的常数表达式

    ARM的常数表达式   如果说Intel指令中的立即数,相信大家都很熟悉.类似的,Arm指令中的“立即数”就是常数表达式.之所以称为常数表达式,而不称为立即数是有原因的. Intel指令属于CISC指 ...

  7. Azure ARM (13) 从现有VHD文件,创建新的ARM VM

    <Windows Azure Platform 系列文章目录> 本文参考了Git Hub的ARM Template: https://github.com/Azure/azure-quic ...

  8. iOS程序破解——ARM汇编基础

    原文在此:http://www.cnblogs.com/mddblog/p/4951650.html 一.Thumb指令与ARM指令 Thumb指令为16位,因此存储代码的密度高,节省存储空间.但是功 ...

  9. ARM 开发工具 Keil和DS-5的比较。

    http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...

随机推荐

  1. 新手上路,django学习笔记(1) 环境部署

    很多年没写代码了,以前学的C#,用ASP.NET,但是最近几年没落了,JAVA在崛起,最近感觉Python比较火,总是在各种技术场合听到Python,或者身边的朋友在讨论Python,所以突然想学习一 ...

  2. ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例

    HTML代码 和js 代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&quo ...

  3. 开源应用框架BitAdminCore:更新日志20180817

    索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/coo ...

  4. netcore中使用bower还原出错的解决方法

    近期BitAdminCore框架在创建时,还原bower包出现502错 打开地址,发现原为是因为bower服务调整导致的. 果断处理: 1.通过管理员模式,启动命令行 2.进入npm所在目录 3.执行 ...

  5. WPF文字间距

    代码: <ItemsControl ItemsSource="{Binding Info}" FontFamily="微软雅黑" FontSize=&qu ...

  6. linux学习之vi文件编辑命令

    如果文件为只读则无法使用普通用户编辑,需要切换到root用户,具体名称可参考: https://www.cnblogs.com/huangwei1992/p/9493443.html vi文件编辑命令 ...

  7. 总结目前为止学到的关键字(break,continue,private,static,this,super,final,abstract)

    1.控制跳转语句:break(结束) 使用的场景: a.循环当中 b.switch break关键字需要注意的问题: 1.break关键字只能用于循环和switch语句当中,其本质就是结束整段语句的意 ...

  8. UWP多线程枚举安全的List

    最近在做windows runtime下APP开发的工作.在Service层请求返回后,往往会通过回调的形式来通知UI更新数据.多个线程操作经常出现foreach抛出异常:System.Invalid ...

  9. sharepoint 2010 powershell

    可参看云总的博客:http://blog.csdn.net/yun_liang1028/article/details/6419729

  10. javascript实现八大排序

    开学一个月,已经多次梦见笔试出现数据结构算法题,我对数据结构的恐惧已经多于任何“妖魔鬼怪”了.呵呵,看来真的很有必要复习一下常用的数据结构,免得“噩梦”成真. 数据机构等编程基础的重要性不用多说,直接 ...