OK6410学习之裸板LED程序及RAM烧录

GPIO

每组GPIO有5个寄存器

GPxCON配置寄存器

GPxDAT数据寄存器

GPxUN上下拉电阻控制寄存器



OK6410是通过GPM控制的


点亮LED灯通过改变GPM中GPMCON和GPMDAT的值使其亮暗


右边是3.3V的高电平,左边需要有个低电平输出才能导通,所以GPMCON需要设成输出,GPMDAT的低4位需要设置成0



上图可以看出,OK6410中GPM0-3是控制LED等1-4的,所以我们只需要控制GPM0——3

    ldr r1, =0x7F008820			@r1的存储为0x7F008820,这里是GPMCON的地址
    ldr r0,=0x1001			@这里一共控制了GPM0到GPM3,0x1001对应的是GPM3赋值为0001、GPM2、GPM1为0,、GPM0为0001,。
					@也就是让GPM1和GPM3输出,从而控制LED1和LED4
    str r0,[r1]				@把r0的值传给r1指向的存储空间


    ldr r1,=0x7F008824		@GPMDAT寄存器的地址
    mov r0,#0x10		@对第四位置0,也就是输出低电平,点亮LED1和LED4
    str r0,[r1]

    ldr r1,=0x7F008828		@GPMPUD的地址
    mov r0,#00			@置0,禁用上\下拉电阻
    str r0,[r1]


全部代码

led.S

.globl _start
_start:
    ldr r0,=0x70000000	@CPU地址
    orr r0,r0,#0x13
    mcr p15,0,r0,c15,c2,4

    ldr r0,=0x7E004000	@关看门狗
    mov r1,#0
    str r1,[r0]

    ldr r1, =0x7F008820
    ldr r0,=0x1001
    str r0,[r1]

    ldr r1,=0x7F008824
    mov r0,#0x10
    str r0,[r1]

    ldr r1,=0x7F008828
    mov r0,#00
    str r0,[r1]

halt:
    b halt


Makefile

led.bin: led.o
	arm-linux-ld -Ttext 0 -o led.elf led.o
	arm-linux-objcopy -O binary led.elf led.bin
	arm-linux-objdump -D led.elf > led.dis

led.o : led.S
	arm-linux-gcc -o led.o led.S -c

clean:
	rm *.o led.elf led.bin led.dis



编译好后


把led.bin烧到板子上


没有Jlink...那就烧到RAM吧

先调6410到SD启动模式,00011111

用SecureCRT链接上开发版

通电或者复位后按下回车



执行loady 0x50008000

然后选择传输——Ymoden——找到led.bin——确定

等一下就烧写好了

输入go 0x50008000执行




完成~~可以看到开发版的LED1、4灯被点亮了

由于是RAM烧写。。。复位一下程序就没了~··练习还是挺方便的~~~



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值