经过前段时间的准备,现在终于开始正式写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为后缀的输出文件名。

s3c2440第一个裸奔程序——跑马灯(转)相关推荐

  1. ARM上裸奔的跑马灯程序

    今天用优龙ST2410测试了一下在不进系统的情况下裸奔跑马灯程序.首先总结下在ARM板上裸奔程序的几种方法:既然要在ARM上裸奔,首先地让ARM板不进系统,方法是上电复位后选BIOS的最后一项:7 : ...

  2. arm开发tq2440上的c++裸奔程序

    AVR实验做到LCD的时候,就发现proteus上没有现成合适的显示模块,网上找的模块不是按一般方法封装的,想来自己还有一块arm9开发板,大概大三.大四时候买的,已经搁置三年了.毕业这两年已经从51 ...

  3. 51单片机74ls273并行输出地址c语言程序,跑马灯/输入输出接口(片选地址74LS273)...

    ;NAME:  跑马灯 ;AUTOR: ;CONTENT: P1.0-P1.7接发光二极管L1-L8CSEG AT 4000H         ;定义起始地址,为什么是4000H呢 ;存储器:程序存储 ...

  4. 微信小程序 跑马灯效果完整代码附效果图

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 一:功能介绍及讲解 实现的跑马灯(跑马灯里面显示文章的title)的效果,并在右侧有个查看文章的按钮, ...

  5. c语言小程序跑马灯,微信小程序实现文字跑马灯效果

    本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...

  6. c语言小程序跑马灯,微信小程序实现跑马灯效果(完整代码)

    在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS,效果如下图: Wxml代码:一个人活着就是为了让更多的人更好的活着! Wxss代码:/*首页跑马灯 ...

  7. 2440裸机程序——跑马灯

    工程当中需要添加 S3C2440A.s :2440lib.c:main.c:led.c 这四个程序. 主程序: /******************************************* ...

  8. TQ2440第一个裸板程序led

    开发环境 系统:ubuntu 10.04.4 单板:tq2440 编译器:arm-linux-gcc-4.3.2 搭建开发环境详见ubuntu 10.04.4开发环境配置. 目标:实现tq2440单板 ...

  9. TQ2440裸奔程序串口UART的PC机按键测试程序

    //========================================= // NAME: main.c // DESC: TQ2440串口UART测试程序 //============ ...

最新文章

  1. SQL Server 数据库崩溃后的恢复之法
  2. 子查询dinstinct放哪_第四关 复杂查询
  3. 用回溯法找出n个自然数中取r个数的全排列
  4. Linux基础提高_系统性能相关命令
  5. 关于 create-react-app 自定义 eslint文件配置解决方案
  6. 容器编排技术 -- Kubernetes Deployment
  7. css中英文混排 标点,浅析css中英文混排时行高不一样的原因及其解决方法
  8. 关于HTML(十)-------怎么提升网站页面打开加载速度优化
  9. thinkphp的model模型的设计经验总结
  10. 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN)
  11. 3 个很酷的 Python 库,可以节省您的时间和精力
  12. kaminari 简要文档
  13. yar php使用,php中yar框架实例用法讲解
  14. Python中路径的写法
  15. C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件
  16. Chrome模拟IOS/IPad/Android运行环境
  17. 计算机网络体系结构i层,1.2 计算机体系结构
  18. 重度使用开源技术,网易云要用互联网IT打开企业级市场
  19. onlyoffice安装之二:centos7安装
  20. css div水平垂直居中

热门文章

  1. Set集合[HashSet,TreeSet,LinkedHashSet],Map集合[HashMap,HashTable,TreeMap]
  2. iOS--百度地图相关功能的实现
  3. SQL 2000 中如何 纵表变横表
  4. 使用标准库函数对象的例子
  5. Socket编程实例
  6. Python算法(含源代码下载)
  7. 自回归模型/向量自回归模型
  8. 左神算法进阶班5_3求公司的最大活跃度
  9. HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】
  10. 在IDEA中设置自己的名字和时间