正点原子 linux 开发板汇编点灯。

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 执行。

 

 

你可能感兴趣的:(Ubuntu,Linux)