说实话,关于专业人事,这可能是非常简略的东西,可是仍是记载一下,以免回头又忘了,究竟看视频仍是挺费事的。
这是开发板底板的原理图,所以只需把对应的管脚变成低电平就可以了
所以这便是最简略的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的不兼容