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


    前言

         在博客园里面我搜索了老半天,找相应的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, #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格式

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

    Add existing file to ….

    编译

    看结果:

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

  • 相关阅读:
    【C语言】学习笔记5——指针(1)
    【C语言】学习笔记4——数组
    【leetcode】Contest98
    【Python】从0开始写爬虫——豆瓣电影
    C# WPF 文件复制,相对路径
    WPF DataGrid多表头/列头,多行头,合并单元格,一列占据多行
    WPF Image Source 设置相对路径图片
    WPF Blend 一个动画结束后另一个动画开始执行(一个一个执行)
    WPF 操作XML 读写
    WPF 选择电脑文件显示路径,弹出资源管理器,打开文件
  • 原文地址:https://www.cnblogs.com/samuelwnb/p/4072046.html
Copyright © 2020-2023  润新知