前言
在博客园里面我搜索了老半天,找相应的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文件吧!
上一篇:我与ARM的那些事儿2JINLK烧录nor flash
下一篇:ARM的体系结构与编程系列博客——ARM的历史与应用范围
推荐阅读最新更新时间:2024-03-16 15:28
设计资源 培训 开发板 精华推荐
- 2024年Automechanika Shanghai海量同期活动刷新历届记录,汇聚行业智慧,共谋未来发展
- 企业文化分享 如何培养稀缺的硅IP专业人员?SmartDV开启的个人成长与团队协作之旅
- 恩智浦发布首个超宽带无线电池管理系统解决方案
- 北交大本科生探秘泰克先进半导体开放实验室,亲历前沿高科技魅力
- 新帅上任:杜德森博士(Dr. Torsten Derr)将于2025年1月1日出任肖特集团首席执行官
- 边缘 AI 如何提升日常体验
- 苹果要首发!台积电宣布2nm已准备就绪
- AMD有望用上全新芯片堆叠技术:延迟大幅减少、性能显著提升
- 宁德时代发布10月战报
- 2024年10月电池行业:增长势头不减!