前言

     在博客园里面我搜索了老半天,找相应的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进行设置。

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

设置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模式,嗯!基本上我们是有思路了。

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

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

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

编码时间

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

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

新建好一个空白的文件。

然后编码了:

  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裸机工程设置

编译

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

看结果:

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

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

相关文章:

  • 2021-07-22
  • 2021-09-15
  • 2021-10-05
  • 2022-12-23
  • 2021-11-24
  • 2021-06-29
  • 2021-11-20
  • 2021-05-25
猜你喜欢
  • 2021-06-16
  • 2021-12-25
  • 2021-05-26
  • 2021-11-26
  • 2021-07-05
  • 2021-06-04
  • 2022-12-23
相关资源
相似解决方案