1.使能时间控制:CCGR0-6
2.配置IO口复用,复用为GPIO
3.配置输出模式。
.global _start @ 全局标号
_start:
@使能所有时钟
ldr r0, =0x020c4068 @CCGR0
ldr r1, =0xffffffff @要向CCGR0写入的数据
str r1, [r0] @将0xffffffff写入CCGR0中
ldr r0, =0x020c406c @CCGR1
str r1, [r0]
ldr r0, =0x020c4070 @CCGR2
str r1, [r0]
ldr r0, =0x020c4074 @CCGR3
str r1, [r0]
ldr r0, =0x020c4078 @CCGR4
str r1, [r0]
ldr r0, =0x020c407c @CCGR5
str r1, [r0]
ldr r0, =0x020c4080 @CCGR6
str r1, [r0]
@配置复用
ldr r0, =0x020E0068 @CCGR0
ldr r1, =0x5 @要向CCGR0写入的数据
str r1, [r0] @将0xffffffff写入CCGR0中
@配置
ldr r0, =0x020e02f4
ldr r1, =0x10b0
str r1, [r0]
ldr r0, =0x0209c004
ldr r1, =0x8
str r1, [r0]
ldr r0, =0x0209c000
ldr r1, =0
str r1, [r0]
loop:
b loop
arm-linux-gnueabihf-gcc -g -c leds.s -o led.o
生成led.o
arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elf
生成led.elf
arm-linux-gnueabihf-objcopy -O binary -g -S led.elf led.bin
生成led.bin
查看SD卡
ls /dev/sd* -l
烧写
xiaopeng18@ubuntu:~/linux/IMX6ULL/Board_Drivers/1_leds$ ls /dev/sd* -l
brw-rw---- 1 root disk 8, 0 Nov 11 22:44 /dev/sda
brw-rw---- 1 root disk 8, 1 Nov 11 22:44 /dev/sda1
brw-rw---- 1 root disk 8, 16 Nov 12 00:14 /dev/sdb
brw-rw---- 1 root disk 8, 32 Nov 12 00:14 /dev/sdc
brw-rw---- 1 root disk 8, 33 Nov 12 00:14 /dev/sdc1
xiaopeng18@ubuntu:~/linux/IMX6ULL/Board_Drivers/1_leds$ chmod 777 imxdownload
xiaopeng18@ubuntu:~/linux/IMX6ULL/Board_Drivers/1_leds$ ./imxdownload led.bin /dev/sd
编写makefile文件
led.bin : leds.s
arm-linux-gnueabihf-gcc -g -c leds.s -o led.o
arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elf
arm-linux-gnueabihf-objcopy -O binary -g -S led.elf led.bin
arm-linux-gnueabihf-objdump -D led.elf > led.dis
clean :
rm -rf *.o led.bin led.elf led.dis
make 执行。