我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

前言

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

个人设定目标

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

准备

Mini2440开发板、keil 4 for arm

Keil的配置

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

Project->new uvision project

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

点击OK

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

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

找到按钮

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

设置RAM

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

点击select folder for objects

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

选择你要的路径

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

命令如下:

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

 

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

头文件引入设置

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

开启Beep之旅

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

看到芯片手册中的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, #1

    CMP R1, #1

    BNE Delay1

    

    LDR    R1,    =0x56000014

    LDR    R2,    =0x0

    STR    R2,    [R1]



    LDR R1, =0xFFFFFF

Delay2

    SUB R1, R1, #1

    CMP R1, #0

    BNE Delay2

    

    B MainLoop



    END 

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

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

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

Add existing file to ….

我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

编译

看结果:

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

你可能感兴趣的:(ARM)