一、汇编LED原理分析
1 为什么要学习Cortex-A汇编
1.需要使用汇编初始化一些SOC外设。
2.使用汇编舒适化DDR, MX6U不需要
3.设置SP指针,一般指向DDR.设置好C语言运行环境
2 ALPHA开发板LED灯硬件原理分析
STM32 IO初始化流程:
①、使能GPIO时钟。
②、设置IO复用,将其复用为GPIO
③、配置GPIO的电气属性。
④、使用GPIO,输出高/低电平
I.MX6ULL IO初始化:
①、使能时钟,CCGR0~CCGR6这7个寄存器控制着6ULL所有外设时钟的使能。为了简单,设置CCGR0~CCGR6这7个寄存器全部为0XFFFFFFFF,相当于使能所有外设时钟。
②、IO复用,将寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的bit3~0设置为0101=5,这样GPIO1_IO03就复用为GPIO。
③、寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03是设置GPIO1_IO03的电气属性。包括压摆率、速度、驱动能力、开漏、上下拉等.
④、配置GPIO功能,设置输入输出。设置GPIO1_DR寄存器bit3为1,也就是设置为输出模式。设置GPIO1_DR寄存器的bit3,为1表示输出高电平,为0表示输出低电平。
3 汇编简介
汇编由一条一条指令构成,指令就涉及到汇编指令。
Int a,b;
a=b;
假设a地址为0X20,b地址为0x30
LDR R0, =0X30 //将地址0x30复制给R0,R0=0x30
LDR R1, [R0] //将R0地址的内容复制给R1
LDR R0, =0X20 //将地址0x20复制给R0,R0=0x20
STR R1, [R0] //将R1 中的数据写入到存储器中的 R0 位置。
我们在使用汇编编写驱动的时候最常用的就是LDR和STR这两个指令。