在OK6410上点亮指路明灯(LED)

这篇博客记录了在OK6410开发板上使用GPIO点亮LED的过程,包括理解GPIO的工作原理、配置寄存器、编写汇编代码以及进行外设基地址初始化。通过这个简单的实践,作者强调了学习和记录的重要性,尤其是对于初学者。
摘要由CSDN通过智能技术生成
说实话,对于专业人事,这可能是十分简单的东西,但是还是记录一下,免得回头又忘了,毕竟看视频还是挺麻烦的。
在OK6410上点亮指路明灯(LED)
这是开发板底板的原理图,所以只要把对应的管脚变成低电平就可以了

所以这就是最简单的GPIO,其实我觉得这里面的这个和K60里的那个十分相似,GPIO既有IO输入输出功能,也有外部中断功能,甚至更多。(毕竟cortexM系列的只适用于工控)
所以附上GPIO的管脚图和寄存器
在OK6410上点亮指路明灯(LED)
在OK6410上点亮指路明灯(LED)
所以配置GPMCON为对应的功能,数据在DATA里配置
在OK6410上点亮指路明灯(LED)

GPMCON和GPMCON的地址都已经告诉我们了,所以只要往这个两个地址里写入对应的配置就可以了
control寄存器要输出功能的设为0001,所以往0x7f8820里写入0x111就可以了,往0x7f008824写入0x5就可以了(两盏灯建个亮,另外两盏不亮)

说明这一部分的汇编语言还是蛮重要的=3=!
贴上汇编代码,为什么是汇编呢?而不是C语言?因为我还没有学搭建C语言的环境,只能先用汇编
#define GPMCON 0x7f008820
#define GPMDAT 0x7f008824
light_led:
ldr r0, =GPMCON
ldr r1, =0x1111
str r1, [r0]
ldr r0, =GPMDAT
ldr r1, =0x5
str r1, [r0]
mov pc, lr


但是这样下载到开发板里面不能使LED亮,因为没有对外设基地址初始化,对,下面的仅仅是对LED的外设基地址初始化

set_peri_port:
ldr r0, =0x70000000
orr r0,r0,#0x13
mcr p15,0,r0,c15,c2,4
mov pc, lr

这样把start.S文件和脚本和makefile放在一个文件夹里面,在Linux里面用GCC编译链接生成.bin文件,通过USB用dnw下载到nand flash里面(其实不管用什么,只要把.bin文件下载到芯片的nand flash里面就可以了),在设置开发板从nand flash启动,重启就可以看见LED亮了

还是虚拟机配Linux系统好用,不用去想办法解决各种Windows的不兼容

拜拜,每天坚持不懈,菜鸟也能变大牛
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值