第一个裸奔程序——跑马灯
来源:互联网 发布:java实现文件加密解密 编辑:程序博客网 时间:2024/05/02 04:55
转自:http://blog.csdn.net/zhaocj/article/details/5307659
经过前段时间的准备,现在终于开始正式写ARM程序了。本着先易后难的原则,先写无操作系统的ARM裸奔程序,以便熟悉s3c2440的内部结构,此后再编写有操作系统的程序。
第一个程序就从最最简单的点亮开发板上的四个LED开始,使这四个并排摆放的LED从一端向另一端依次被点亮,从而呈现出跑马灯的效果。四个LED连接到了B口的5到8引脚,输出低电平时被点亮,下面就是程序代码:
//定义三个寄存器#define rGPBCON (*(volatile unsigned *)0x56000010) //Port B control#define rGPBDAT (*(volatile unsigned *)0x56000014) //Port B data#define rGPBUP (*(volatile unsigned *)0x56000018) //Pull-up control B void delay(int);//延时函数 void Main(void){ int light; int i; rGPBCON = 0x015550;//定义PB5~PB8为输出 rGPBUP = 0x7ff;//使PB上拉功能失效 light = 0x10; light = light<<1; rGPBDAT = ~light;//第一个LED被点亮 delay(500000);//延时一段时间 //主程序死循环 while(1) { //从一端向另一端 for (i=0;i<3;i++) { light = light<<1; rGPBDAT = ~light; delay(500000); } //返回 for (i=0;i<3;i++) { light = light>>1; rGPBDAT = ~light; delay(500000); } }}//延时函数void delay(int a){ int k; for(k=0;k<a;k++) ;}
程序很简单,其中Main函数是在2440启动代码执行完后开始被执行。由于该程序没有用到MMU_SetAsyncBusMode、MMU_SetFastBusMode和RdNF2SDRAM,所以为了正确编译该程序,只需把启动代码中相关的地方注释掉即可。
在这里,把ADS的相关配置介绍一下,这些内容是比较重要的。下面是需要修改的内容:
在Target Settings中的Post-linker中选择ARM fromELF,因为我们需要把ELF文件格式转化为下载到flash中所必须的二进制文件。
在Language Settings中的所有语言的Target下的Architecture or Processor,选择ARM920T,因为s3c2440是ARM920T内核。
在ARM Linker中的Output中的RO Base填写0x30000000,因为在开发板上SDRAM是从0x30000000地址开始。在Layout中的Object/Symbol中填写2440init.o,它是启动文件的目标文件,在Section中填写Init,它是在启动文件中我们所定义的入口代码段的名称。
在ARM fromELF中的Output format选择Plain binary,并在Output file name中填写任意以bin为后缀的输出文件名。
博主:恩,程序很简单, 后面的ADS的相关配置非常重要。
- 第一个裸奔程序——跑马灯
- 第一个裸奔程序——跑马灯
- 第一个裸奔程序——跑马灯(转)
- 第一个裸奔程序——跑马灯
- STM32F103RCT6第一个程序——跑马灯程序
- 第一个跑马灯程序
- 第一个实验—跑马灯
- ARM上裸奔的跑马灯程序
- ARM上裸奔的跑马灯程序
- 第一个ARM实验(跑马灯)
- 2440裸机程序——跑马灯
- 20170721——NRF51822跑马灯程序
- 我的ADS的裸奔调试的第一个问题
- [C#]第一个程序——HelloWorld
- 入门——第一个android程序
- DX11——第一个程序:Box
- Android第一个程序——打招呼
- QT——第一个QT程序
- 画布上的图形保存未bitmap
- Hibernate 映射类型
- PHP超时处理全面总结
- 语音基本常识
- 关于delphi对象存入Tlist中的使用
- 第一个裸奔程序——跑马灯
- 20120808-课堂笔记 --继承、重载
- 使用ILmerge合并Exe、Dll文件的帮助类
- 图形透明贴图
- win7下SendTo文件夹位置
- JPA多对多双向关联实例
- 运放稳定性连载9:单电源缓冲器电路的实际设计(2)
- 颜色透明例子
- 如何成为一个编程高手