暴走的指压师

为何中年妇女对14岁正太不理不睬?28岁大妈是如何保持14岁身材与脸颊?三无蓝毛究竟身在何处?为何少年抛弃妹子去寻找基友的菊花,大妈抛弃正太去和眼镜妹百合? 一切的一切,请看《Q ヱヴァンゲリヲン新劇場版:Q 》
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

s3c2440基本io/ports led点亮

Posted on 2010-10-28 08:11  晓彻  阅读(558)  评论(0编辑  收藏  举报

Led对应管脚如下图所示:

 

 

所以需要设置GPB相关的寄存器,在IO Port里,Port B Control Register。有11个io input/output接口

 

GPB5

Led1

GPB6

Led2

GPB7

Led3

GPB8

Led4

 

S3C2440存在接口复用,所以即需要设置PnCON以确定io口的功能。

如果接口设置位output则可写data寄存器进行控制,若设为input可读寄存器的值。

相关的还有一个混杂寄存器和外部中断寄存器,可不用关心。

 

可知相关的两个寄存器的地址为0x56000010,,0x56000014。

对于GPBCON,各个接口都应该选01,作为output使用

 

0x 00  0 0

要是GPB5-8全部点亮,设置01 0101 0100  00000000 ----------------> 0x15400

 

LED低电平点亮:

 

 

 

所有汇编程序如下

 

代码
.text
.global_start

start:
LDR R0,
=0x56000010 @R0设为GPBCON寄存器,此寄存器用于选择端口B引脚的功能:
@是输入输出还是其他
MOV R1, #
0x15400 @要是GPB5-8全部点亮,设置01 01010100 0000 0000 --> 0x15400
STRR1,[R0] @将GPBCON寄存器设置为0x15400

MOV R1,#
0x00000000 @
STRR1,[R0] @GPB5
-8输出0,LED1-4全部点亮

MAIN_LOOP:
B MAIN_LOOP

 

 

 

Makefile:

 

代码
Led_on:led_on.s
arm_linux_gcc
-g -o led_on.o led_on.s
#编译
arm_linux_ld
-Ttext 0x00000000 -g led_on.o led_tmp.o
#链接
arm_linux_objcopy
-O binary -S led_on_tmp.o led_on
#把ELF格式的可执行那个文件led_on_tmp.o转换成
二进制文件格式led_on
Clean:
rm
-f led_on
rm
*.o

 

 

实验还未经过验证。