ARM笔记: GPIO口LED程序

发布者:RadiantSoul最新更新时间:2017-11-17 来源: eefocus关键字:ARM笔记  GPIO口  LED程序 手机看文章 扫描二维码
随时随地手机看文章

leds.bin:crt0.S    leds.c
    arm-linux-gcc -g -c -o crt0.o crt0.S
    arm-linux-gcc -g -c -o leds.o leds.c
    arm-linux-ld -Ttext 0x00000000 -g crt0.o leds.o -o leds_elf
    arm-linux-objcopy -O binary -S leds_elf leds.bin
    arm-linux-objdump -D -m arm leds_elf>leds.dis
clean:
    rm -f leds.dis leds.bin leds_elf *.o


.text
.global _start
_start:
    ldr     r0,=0x56000010
    mov    r1,#0x0
    str    r1,[r0]
   
    ldr    sp,=1024*4
   
    bl    main
halt_loop:   
    b     halt_loop;


#define GPFCON    (*(volatile unsigned long *)0x56000050)
#define GPFDAT    (*(volatile unsigned long *)0x56000054)

#define GPF4_OUT    (1<<(4*2))    //dfjlf
#define GPF5_OUT    (1<<(5*2))
#define GPF6_OUT    (1<<(6*2))

void Delay(volatile unsigned long dly)
{
    for(;dly>0;dly--);
}

int main(void)
{
    unsigned long i=4;
    GPFCON=GPF4_OUT|GPF5_OUT|GPF6_OUT;
    GPFDAT=0x11111111;
    while(1)
    {
        GPFDAT=~(1<        Delay(10000);       
        i++;
        if(i==7)
        i=4;       
    }
    return 0;
}

关键字:ARM笔记  GPIO口  LED程序 引用地址:ARM笔记: GPIO口LED程序

上一篇:ARM笔记:外部按键中断程序
下一篇:ARM笔记:内存控制器程序

推荐阅读最新更新时间:2024-03-16 15:45

arm学习笔记--程序中变量引起的思考
今天在写代码的时候,遇到一个奇怪的问题,在函数内定义局部变量数组,如果这个数组较大时程序就会跑飞,跑飞的地方如下: /*这一块是跑飞的代码*/ uint32_t UserCode ; UserCode =1; /*代码over*/ 如果数组比较小的话就没有问题,然后我上网查了一下资料这里理一下: 1、由于局部变量创建的时候是静态创建在栈上的,所以栈的大小限制了局部变量的size,如果栈小了,在运行的时候就会出现溢出,程序当然就飞了。这里就有概念上的疑问了:静态创建和动态创建区别是什么?局部变量占用的是栈的空间,那么其他类型的变量呢?下面我们就来看这个问题。 2、静态创建和动态创建的区别 我个人的理解:静态创建分为两个
[单片机]
ARM学习笔记8 通用寄存器和存储器内容交换指令和软中断指令
  交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径。该指令产生一堆原子Load/Store操作,该操作发生在一个连续的总线操作中,在操作期间阻止其他任何指令对该存储单元的读/写。 一、通用寄存器和存储器字数据交换指令SWP   1、作用     将一个内存单元(该单元地址放在寄存器Rn中)的内容读取到一个寄存器Rd中,同时将另一个寄存器Rm的内容写入到该内存单元中。   2、语法格式     SWP{ condition } Rd , Rm ,   3、参数说明     3.1、 Rd :确定指令的目标寄存器     3.2、 Rm :该寄存器包含将要被存储到内存单元中的数据  
[单片机]
字符设备驱动程序--LED驱动
编写驱动程序需要编写那些代码: 1、硬件相关的驱动程序 2、Makefile的编译程序 3、还需要编写一个相关的测试程序 比如说:一个摄像头驱动程序 1、驱动程序的编写,需要编写一些硬件相关的操作,编译Makefile 2、安装、运行、卸载驱动程序(insmod ***、。./*** 、remod *** )。 3、使用这个驱动程序:需要一个测试程序,如QQ(测试程序)打开摄像头。 编写驱动程序框架: APP:(测试程序) open read write ......... -----------------------------------------------------
[单片机]
ARM学习笔记(一)"S3C2440A时钟初始化"
S3C2440A时钟初始化: 1.根据OM 判定系统时钟来源(Fin) 2.设置CLKCON 默认即可,如有功耗要求,可参考手册设置,关闭部分时钟. 3.设置CLKSLOW 默认即可,不用SLOW模式. 4.LOCKTIME设定(略),默认设置 5.设置锁相环 MPLLCON UPLLCON MDIV= MP(U)LLCON PDIV= MP(U)LLCON SDIV= MP(U)LLCON 约定:m=MDIV+8 ; p=PDIV+2; s=SDIV 系统时钟FCLK=Fmpll=(2*m*Fin)/(p*2^s) 【与S3C2410不同】 USB时钟UCLK=Fupl
[单片机]
51单片机程序——按键控制LED
#include reg52.h void Delay(unsigned int t); sbit key=P3^2; //对应单片机开发板上s19按键 void main (void) { while (1) //函数开始后,一直在检测按键是否被按下 { if(key==0) { unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255 P0=0x7f; //赋初始值,右边第一个灯亮起来 for(i=0;i 8;i++) //加入 for循环,表明for循环大括号中的程序循环执行8次 { Delay
[单片机]
基于设备树的led驱动程序
1 #include linux/module.h 2 #include linux/kernel.h 3 #include linux/fs.h 4 #include linux/init.h 5 #include linux/delay.h 6 #include asm/io.h 7 #include linux/cdev.h 8 #include linux/device.h 9 #include linux/bitmap.h 10 #include asm/gpio.h 11 #include linux/platform_device.h 12 #include linux/sla
[单片机]
单片机C语言程序设计:K1-K4 控制 LED 移位
/* 名称:K1-K4 控制 LED 移位 说明:按下 K1 时,P0 口 LED 上移一位; #FormatImgID_0# */ 按下 K2 时,P0 口 LED 下移一位; 按下 K3 时,P2 口 LED 上移一位; 按下 K4 时,P2 口 LED 下移一位; #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) for(i=0;i 120;i++);
[单片机]
单片机C语言<font color='red'>程序</font>设计:K1-K4 控制 <font color='red'>LED</font> 移位
ARM Cortex-M3 学习笔记(4-5)
最近在学ARMCortex-M3, 找了本号称很经典的书 An Definitive Guide to The ARM Cortex-M3 在看。这个系列学习笔记其实就是在学习这本书的过程中做的读书笔记。 Barrier 指令 DMB, DSB, ISB 这三个指令的区别如下表所示。 指令名 功能描述 DMB 数据存储器隔离。DMB指令保证: 仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存储器访问操作。 DSB 数据同步隔离。比DMB严格: 仅当所有在它前面的存储器访问操作都执行完毕后,才执行在它后
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved