Linux点灯控制流程图,正点原子 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 执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值