在OK6410上点亮指路明灯(LED)
这是开发板底板的原理图,所以只要把对应的管脚变成低电平就可以了
所以这就是最简单的GPIO,其实我觉得这里面的这个和K60里的那个十分相似,GPIO既有IO输入输出功能,也有外部中断功能,甚至更多。(毕竟cortexM系列的只适用于工控)
所以附上GPIO的管脚图和寄存器
所以配置GPMCON为对应的功能,数据在DATA里配置
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的不兼容
OK6410指路明灯LE 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)