【ARM】led·fs2410流水灯
开发环境
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启动
关狗
设置栈
//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流水灯相关推荐
- ARM裸机——FS2410 流水灯
一.开发环境 1.硬件平台:FS2410(s3c2410) 2.主机:Ubuntu 10.10 二.LED的原理图: 三.有关LED的GPIO口的配置信息: 1.配置GPFCON寄存器,设置GPF4- ...
- 一、点亮LED和流水灯设计
点亮LED和流水灯设计 参考书籍:51单片机C语言教程 视频链接:参考视频 单片机型号:巫妖王51单片机V2版 单片机概述 什么是单片机? Micro Controller Unit简称MCU,即单片 ...
- 基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯
基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...
- 基于51单片机的汇编/C程序:拨码开关控制八位LED实现流水灯
基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...
- 点灯合集(点亮LED、流水灯、8x8点阵、点阵拓展)——附程序
点灯合集 一.点亮LED 简介: LED闪烁: Proteus仿真图: 视频展示: 代码: 二.流水灯 Proteus仿真图: 代码: 代码一: 代码二(优化): 三.行列扫描原理 四.8x8点阵 简 ...
- ARM实验1 —— 流水灯实验
实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...
- STM32cubeIDE学习汇总(二)----外部中断控制LED和流水灯
基于上篇我们已经基本了解了软件界面和如何创建一个项目了 接着我们看如何利用外部按键来控制LED灯的亮灭,即外部中断. (本文讲述的是外部中断控制led取反以及如何实现流水灯) (如果想了解外部中断如何 ...
- 8个流水灯c语言程序按顺序亮,求由AT89S52单片机,8个LED,流水灯程序,要求八灯一盏接一盏闪烁,且循环不灭,,要求用c语...
厦小伙子 t--) for(bt=0; } temp=0x80;/i8 个流水灯反向逐个闪动 { P2=~temp;<8;/ 声明延时函数 void main(void) { uint i.05 ...
- 单片机入门:LED双向流水灯(原理图+程序+仿真)
目录 硬件电路设计 仿真电路设计 程序设计 学习了LED灯的左移和右移后,下面实现LED灯的双向移动点亮. 硬件电路设计 结合51单片机最小系统的知识,利用AD19画好最小系统电路(未包括电源部分). ...
最新文章
- JAVA基础中关于double进制问题的解析
- 新鲜新奇事物_对各样新奇事物都有兴趣去了解的星座
- HarmonyOS之深入解析编译构建的配置和代码混淆
- 积分图像(Integral image)
- Facebook 的大牛组长什么样?
- oauth2-server-php-docs 存储
- Quartz 知识点汇总
- visio设置网络拓扑图
- MIUI10使用adb工具实现免ROOT冻结系统应用和去广告
- [转]寂寞的数学家和不孤独的素数
- vue学习日记(流水账
- Python日报0507 - PyQt5实现打卡登记系统
- jpg怎么转换成pdf文档
- 怎么新建从文本文件转换成PDF文件?
- 使用react完成图片放大功能(淘宝放大镜)
- C语言如何清除控制台特定的一行,及'\b'字符的使用
- 《“网上邻居”无法互访问题解决方法大全 》
- 微信小程序怎么集成腾讯IM
- GB 9706.1-2020和GB9706.1-2007对照表
- 微吼2022企业直播创见大会:探寻直播行业星辰大海
热门文章
- MongoDB安装教程(Win10Linux)
- C# wpf 使用WriteableBitmap渲染视频
- java gui切换面板,Java GUI,根据actionListener更改面板
- reduce函数的用法
- 山东教师教育网研修平台-首页
- 最新PHP一些面试题
- 对Git用户名与Github账户关系的理解
- 【AI视野·今日NLP 自然语言处理论文速览 第三十期】Thu, 14 Apr 2022
- 77.4%份额,环信高居SaaS移动端客服市场第一的背后
- 专业工具软件课程说明与资料下载