当前位置:首页 > 单片机 > 单片机
[导读]Led对应管脚如下图所示:所以需要设置GPB相关的寄存器,在IO Port里,Port B Control Register。有11个io input/output接口GPB5Led1GPB6Led2GPB7Led3GPB8Led4S3C2440存在接口复用,所以即需要设置PnCON以确定io口的功

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


实验还未经过验证。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭