第一个点灯程序
使用编译命令
arm-linux-gcc -c -o led_on.o Start.s
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elf led_on.bin
原理图
n表示低电坪有效
这里表示低电平有效
接到I/O口的GPF4、GPF5、GPF6
对应JZ2440
1、配置位输出引脚
2、再配置
GPFCON 控制寄存器
GPFDAT 数据寄存器
GPF4[9:8] 设置成 输出引脚 0b01
GPFDAT[4]= 1:输出高电平 0:输出低电平
点亮第一个灯需要设置
1、地址0x56000050设置成值位0x100 设置GPF4 输出引脚
2、地址0x56000054设置成值为0x0 设置GPFDAT[4] =0x00低电平
下面是汇编代码
.text
.global _start
_start:
/*
配置GPF4位输入引脚
把0x100写入到地址0x56000050
*/
ldr r1,=0x56000050
ldr r0,=0x100
str r0,[r1]
/*
配置GPF4位输出高电平
把0写入到地址0x56000054
*/
ldr r1,=0x56000054
ldr r0,=0x00
str r0,[r1]
halt:
b halt
1、arm-linux-gcc -c -o led_on.o Start.s
先生成.o文件
2、arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
链接.o文件
3、arm-linux-objcopy -O binary -S led_on.elf led_on.bin
生成.bin文件
生成bin文件之后就可下载烧录
进入.bin文件夹,输入
oflash 0 1 1 0 0 led_on.bin
当出现下面成功的情况,重新开机
总结 还可以把编译的命令放到Makefile中
all:
arm-linux-gcc -c -o led_on.o Start.s
arm-linux-ld -Ttext 0 led_on.o -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elf led_on.bin
clean:
rm -rf *.bin *.o *.elf
作业
1、修改Start.s 点亮LED2
2、直接修改led_on.bin点亮LED2