前言

在博客园里面我搜索了老半天,找相应的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. TSQL--使用CTE完成递归查询

    CREATE TABLE TB001( CategoryId INT PRIMARY KEY, ParentCategoryId INT, CategoryName NVARCHAR(200))GO ...

  2. Hadoop各个组件与端口

    组件 Daemon 端口 配置 说明 HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传输 HDFS DataNode 50075 ...

  3. docker怎么导出导入镜像

    https://blog.csdn.net/dest_dest/article/details/80612231 把某个docker镜像保存到本地文件,命令如下docker save -o 镜像名.t ...

  4. python, C++, C# 计算速度简单对比

    有个简单的运算, ; ; ; i < n ; i ++) { ; j < n; j ++) { lResult += (ulong) ( i * j ); } } return lResu ...

  5. 使用Toolbar + DrawerLayou实现菜单侧滑,改变toolbar左上角图标

    侧边栏具体实现可以参照http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0303/2522.html getSupportActio ...

  6. 搭建 .NET Core 开发环境

    安装 .Net Core 执行代码 任务时间:时间未知 .NET Core 的官方文档很详细,本实验带你建立一个.NET Core 1.1的Web运行环境,更多内容可以可以查阅微软官方文档. 安装 . ...

  7. DotNet三层架构

    [项目结构]DAL 数据访问层.BLL 业务逻辑.UI 表现层 Model 数据.Common 常用工具[引用关系]DAL --> Model CommonCommon --> 谁都不引用 ...

  8. 遇到问题-----cas4.2.x登录成功后报错No principal was found---cas中文乱码问题完美解决

    情况 我们之前已经完成了cas4.2.x登录使用MongoDB验证方式并且自定义了加密. 单点登录(十五)-----实战-----cas4.2.x登录mongodb验证方式实现自定义加密 但是悲剧的是 ...

  9. mysql遇到的问题:can't creat/write to file "/var/mysql/xxxx.MYI"

    这个问题困扰了我,可能有两个原因. 1.文件夹权限不够,至少也要给出 USERS 组的可读可写权限: 2.文件夹的磁盘满了,文件写不进去了: 如果是这个不能创建和写的问题,很大的概率就是文件的权限.没 ...

  10. CTF中密码学一些基础【三】

    本文作者:i春秋签约作家——MAX. 看看今天教程: 看着几个字符在键盘的位置,直接就是三个圈圈,圆心的三个字符就是答案 非常简单! 答案就是KEY 看题解密就好了!! 根据提示Asp encode解 ...