开发环境


1、硬件平台:FS2410(s3c2410)

2、主机:Ubuntu 12.04 LTS


LED原理图


LED的GPIO的配置

  • 配置GPFCON寄存器,设置GPF4-7为输出

  • 配置GPFDAT,设置LED灯亮与灭


主要步骤

  • 通过设置GPFCON将GPF4-7设置为输出

  • 设置GPFDAT,可以将led灯亮或灭,GPFDAT的相应位置1灯灭,置0灯亮


源代码

   NAND flash启动

  1. 关狗

  2. 设置栈

//start.S

1
2
3
4
5
6
7
8
9
10
11
12
13
.text
.global _start
_start:
#define WATCHDOG 0x53000000
     ldr r0, =WATCHDOG    //关看门狗
     mov r1, #0
     str r1, [r0]
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
     ldr sp, =1024*4    //设置堆栈
     bl main      //跳转进入main函数
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
loop:
     b loop

//led.c (s3c2410.h 网上找,其中包含option.h,我找了一段时间,所以上传附件了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "s3c2410.h"
void  delay( long  long  max)     //延迟函数
{
     int  i, j;
     for (i = 0; i < max; i++)
         for (j = 0; j < max; j ++);
}
int  main( void )
{
     int  i;
     GPFCON = GPFCON & (~(0xff << 8)) | (0x55 << 8);     //设置GPF4-7为输出
     GPFDAT &= ~(0xf << 4);      //将4个LED灯开启
     while (1)
     {
         for (i = 0; i < 5; i++)
         {
             GPFDAT = GPFDAT | (0xf << i);   //利用循环设置流水灯     
             delay(500);
         }
         GPFDAT &= ~(0xf << 4);    //4个LED灯开启
     }
     return  0;
}

//Makefile

1
2
3
4
5
6
7
led.bin: start.S led.c                                               
     arm-linux-gcc -c start.S -o start.o
     arm-linux-gcc -c led.c -o led.o
     arm-linux-ld -Ttext 0x30008000 start.o led.o -o led
     arm-linux-objcopy -O binary -S led led.bin
   6 clean:
     rm  -f *.o led.bin



步骤

   ①首先make

可以看见生成了led.bin文件

   ②下载到开发板

由于我用的bootloader是出厂自带的,而这个bootloader里面没有tftp,所以这里用古老的zmodem协议,但是在下载过程中报告失败,囧……

于是我换到windows下

OK,大功告成,流水灯很顺利


小结

好久没玩arm裸机了,这次只是在linux下测试下环境

可以看见,linux下的编程并没有比windows下多多少东西,也就一个Makefile而已,但是对于过程而言,就清楚多了

附件:http://down.51cto.com/data/2363008

本文转自infohacker 51CTO博客,原文链接:http://blog.51cto.com/liucw/1220886

【ARM】led·fs2410流水灯相关推荐

  1. ARM裸机——FS2410 流水灯

    一.开发环境 1.硬件平台:FS2410(s3c2410) 2.主机:Ubuntu 10.10 二.LED的原理图: 三.有关LED的GPIO口的配置信息: 1.配置GPFCON寄存器,设置GPF4- ...

  2. 一、点亮LED和流水灯设计

    点亮LED和流水灯设计 参考书籍:51单片机C语言教程 视频链接:参考视频 单片机型号:巫妖王51单片机V2版 单片机概述 什么是单片机? Micro Controller Unit简称MCU,即单片 ...

  3. 基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯

    基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...

  4. 基于51单片机的汇编/C程序:拨码开关控制八位LED实现流水灯

    基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...

  5. 点灯合集(点亮LED、流水灯、8x8点阵、点阵拓展)——附程序

    点灯合集 一.点亮LED 简介: LED闪烁: Proteus仿真图: 视频展示: 代码: 二.流水灯 Proteus仿真图: 代码: 代码一: 代码二(优化): 三.行列扫描原理 四.8x8点阵 简 ...

  6. ARM实验1 —— 流水灯实验

    实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...

  7. STM32cubeIDE学习汇总(二)----外部中断控制LED和流水灯

    基于上篇我们已经基本了解了软件界面和如何创建一个项目了 接着我们看如何利用外部按键来控制LED灯的亮灭,即外部中断. (本文讲述的是外部中断控制led取反以及如何实现流水灯) (如果想了解外部中断如何 ...

  8. 8个流水灯c语言程序按顺序亮,求由AT89S52单片机,8个LED,流水灯程序,要求八灯一盏接一盏闪烁,且循环不灭,,要求用c语...

    厦小伙子 t--) for(bt=0; } temp=0x80;/i8 个流水灯反向逐个闪动 { P2=~temp;<8;/ 声明延时函数 void main(void) { uint i.05 ...

  9. 单片机入门:LED双向流水灯(原理图+程序+仿真)

    目录 硬件电路设计 仿真电路设计 程序设计 学习了LED灯的左移和右移后,下面实现LED灯的双向移动点亮. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电路(未包括电源部分). ...

最新文章

  1. JAVA基础中关于double进制问题的解析
  2. 新鲜新奇事物_对各样新奇事物都有兴趣去了解的星座
  3. HarmonyOS之深入解析编译构建的配置和代码混淆
  4. 积分图像(Integral image)
  5. Facebook 的大牛组长什么样?
  6. oauth2-server-php-docs 存储
  7. Quartz 知识点汇总
  8. visio设置网络拓扑图
  9. MIUI10使用adb工具实现免ROOT冻结系统应用和去广告
  10. [转]寂寞的数学家和不孤独的素数
  11. vue学习日记(流水账
  12. Python日报0507 - PyQt5实现打卡登记系统
  13. jpg怎么转换成pdf文档
  14. 怎么新建从文本文件转换成PDF文件?
  15. 使用react完成图片放大功能(淘宝放大镜)
  16. C语言如何清除控制台特定的一行,及'\b'字符的使用
  17. 《“网上邻居”无法互访问题解决方法大全 》
  18. 微信小程序怎么集成腾讯IM
  19. GB 9706.1-2020和GB9706.1-2007对照表
  20. 微吼2022企业直播创见大会:探寻直播行业星辰大海

热门文章

  1. MongoDB安装教程(Win10Linux)
  2. C# wpf 使用WriteableBitmap渲染视频
  3. java gui切换面板,Java GUI,根据actionListener更改面板
  4. reduce函数的用法
  5. 山东教师教育网研修平台-首页
  6. 最新PHP一些面试题
  7. 对Git用户名与Github账户关系的理解
  8. 【AI视野·今日NLP 自然语言处理论文速览 第三十期】Thu, 14 Apr 2022
  9. 77.4%份额,环信高居SaaS移动端客服市场第一的背后
  10. 专业工具软件课程说明与资料下载