OK6410:LED流水灯

  上层应用开发,学习的第一个程序是打印Hello World!那么底层驱动开发,学习的第一个程序就是跑流水灯了。其实ARM11也可以把它当成单片机一样,玩裸板程序,写驱动跑流水灯,只是ARM11的裸板开发资料没有STM32的丰富而已。

  我用的板子是飞凌的OK6410,要写裸板程序,首先我们先要看硬件手册,或者是原理图。官方的原理图给出的是

底板LED:

核心板原理图:

  可知S3C6410接四个LED灯的引脚是GPM0~GPM3

 

  通过查阅S3C6410手册可知GPMCON,GPMDAT寄存器的地址。这样只要给GPMCON在相应的为配置成输出功能,并给GPMDAT相应的位赋0则会点亮相应的LED灯。

 

  下面就直接贴代码了

 

ARM芯片的IO口是分组的,每组IO口对应着两个寄存器,一个是功能配置寄存器GPxCON,一个是数据寄存器GPxDAT,每个寄存器都是32位。先设置配置寄存器,定义IO口的功能,这里要设置GPM的0~3IO为输出功能,查阅手册,给寄存器赋相应的值。

 

还有一个就是Makefile的编写

 

led.bin: start.o led.o                                                  //目标:依赖
 arm-linux-ld -Ttext 0 -o led.elf start.o led.o          //链接二进制文件,-Ttext 0指定链接地址从0地址开始
 arm-linux-objcopy -O binary led.elf led.bin         //将生成二进制文件led.bin
 arm-linux-objdump -D led.elf > led.dis               //生成反汇编文件

%.o : %.S                                                                   //$@为目标 $<为依赖
 arm-linux-gcc -o $@ $< -c

%.o : %.c
 arm-linux-gcc -o $@ $< -c
 
clean:
 rm *.o led.elf led.bin led.dis


编写好后,放到Linux系统上,执行make就生成目标文件了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值