【ARM学习笔记】实验一:S3C2440A的GPIO输出实验
扫描二维码
随时随地手机看文章
GPIO引脚的主要作用输出/输入高低电平,用来表示二进制的0和1,当然除此之外还有其它特殊功能,这在之后的课程会学习到的,此处只需要研究输出功能。
实验1:在下面的电路中:
如果想要点亮4个LED,应该怎么做呢
【原理】需要让适宜的电流从右到左通过LED,这样才能激发LED发光
【实现方法】以GPB5为例,将GPB5设为低电平,这时右边的3.3V处于为高电平,电流将从高电平流向处于低电平的GPB5,LED将被点亮
#########################################################################################################
【代码实现】
#########################################################################################################
以下为汇编版本
led_on.bin : led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
arm-linux-objdump -D -m arm led_on_elf > led_on_c.dis
clean:
rm -f *.bin *elf *.o *bak *.dis *~
.text
.global _start
_start:
LDRR0, =0x56000010
MOVR1, #0x00000400
STRR1, [R0]
LDRR0, =0x56000014
MOVR1, #0x00000000
STRR1, [R0]
MAIN_LOOP:
BMAIN_LOOP
以下为C语言版本
led_on_c.bin : crt0.S led_on_c.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c
arm-linux-ld -Ttext 0x0000000 -g crt0.o led_on_c.o -o led_on_c_elf
arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
clean:
rm -f *.bin *elf *.o *bak *.dis *~
int main()
{
* (unsigned long *)0x56000010 = 0x00000400;
* (unsigned long *)0x56000014 = 0x00000000;
return 0;
}