一、使能时钟
CCGR0-CCGR6这7个寄存器全部写为0xFFFFFFFF。
上图为CCGR0的寄存器地址向其写入oxFFFFFFFF代码如下所示:
ldr r0,=0x020c4068 @CCGR0的寄存器地址
ldr r1,=0xffffffff @向CCGR0中写入的数据
str r1,[r0] @将r1中的数据写入r0中
然后将后面六个都赋值为0xffffffff。
ldr r0,=0x020c406c @CCGR1的寄存器地址
ldr r1,=0xffffffff @向CCGR1中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4070 @CCGR2的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4074 @CCGR3的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4078 @CCGR4的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c407c @CCGR5的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4080 @CCGR5的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
二、IO复用
配置IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03寄存器其地址为0x020e0068c设置其值为5代码如下所示。
ldr r0,=0x020e0068 @OMUXC_SW_MUX_CTL_PAD_GPIO1_IO00寄存器的地址
ldr r1,=0X5 @需要写入的数值
str r1,[r0] @将5写入到MUXC_SW_MUX_CTL_PAD_GPIO1_IO00中
三、配置其电器属性
配置IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03寄存器其地址为0x020e02f4向其写入0x10b0,配置步骤与代码如下:
ldr r0,=0x020e02f4 @IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03寄存器地址
ldr r1,=0x10b0 @需要写入的数据
str r1,[r0]
四、配置GPIO属性
设置 GPIO1_GDIR,设置GPIO1_GPIO03为输出模式,其寄存器地址为0x0209c004
ldr r0,=0x0209c004 @GPIO1_GDIR寄存器的地址
ldr r1,=0x8 @需要写入的数值
str r1,[r0]
五、设置电平
设置GPIO1_GPIO03输出低电平,需要配置GPIO1_DR寄存器,其地址为0x0209c000.
@设置GPIO1_GPIO03输出低电平
ldr r0,=0x0209c000 @GPIO1_DR寄存器的地址
ldr r1,=0x0 @需要写入的数据
str r1,[r0]
五、完整代码
.global _start @全局标号
_start:
@使能所有时钟
ldr r0,=0x020c4068 @CCGR0的寄存器地址
ldr r1,=0xffffffff @向CCGR0中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c406c @CCGR1的寄存器地址
ldr r1,=0xffffffff @向CCGR1中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4070 @CCGR2的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4074 @CCGR3的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4078 @CCGR4的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c407c @CCGR5的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
ldr r0,=0x020c4080 @CCGR5的寄存器地址
ldr r1,=0xffffffff @向CCGR2中写入的数据
str r1,[r0] @将r1中的数据写入r0中
@配置其IO复用功能
ldr r0,=0x020e0068 @OMUXC_SW_MUX_CTL_PAD_GPIO1_IO00寄存器的地址
ldr r1,=0X5 @需要写入的数值
str r1,[r0] @将5写入到MUXC_SW_MUX_CTL_PAD_GPIO1_IO00中
@配置GPIO_IO03的电气属性其寄存器地址为IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03 0x020e02f4
ldr r0,=0x020e02f4 @IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03寄存器地址
ldr r1,=0x10b0 @需要写入的数据
str r1,[r0]
@设置GPIO功能 设置GPIO1_GDIR寄存器bit3为1
ldr r0,=0x0209c004 @GPIO1_GDIR寄存器的地址
ldr r1,=0x8 @需要写入的数值
str r1,[r0]
@设置GPIO1_GPIO03输出低电平
ldr r0,=0x0209c000 @GPIO1_DR寄存器的地址
ldr r1,=0x0 @需要写入的数据
str r1,[r0]
loop:
b loop