学习新的系列,arm裸机开发。主芯片使用的是imx.6ull芯片,平台使用的是正点原子的imx.6ull alpha开发板。本节介绍汇编led驱动的开发过程。
为什么我们要用汇编来写led程序呢?因为cortex-a芯片上电之后sp指针(堆栈指针)没有初始化,没有c语言运行的环境。所以必须先用汇编语言初始化sp指针,ddr等,把c语言运行环境搭好。
目录
一.硬件原理图
从下方原理图可以看到将GPIO1_3设置为低就可以点亮灯。


二.初始化流程
1.使能GPIO1_3的时钟
2.设置GPIO的复用功能为io
3.设置GPIO的电器属性
4.设置GPIO的输入输出
1.使能GPIO1_3的时钟
简单起见,我们将所有模块的时钟都使能。即CCM_CCGR0~CCM_CCGR6寄存器都设置为0Xffff_ffff,地址从0x020C_4068 ~ 0x020C_4080.
2.设置GPIO的复用功能为IO
查找文献(芯片参考手册)可知,设置GPIO1_3复用功能的寄存器为IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03,地址为0x020E_0068。值要设置为0x5.
3.设置GPIO的电器属性
查找文献可知,设置GPIO1_3电器属性的寄存器为IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03,地址为
0x020E_02F4。值要设置为0x000010B0
4.设置GPIO的输入输出
查找文献可知,GPIO1_GDIR用来设置输入/输出,地址是0x0209_C004,值为0x8。
查找文献可知,GPIO1_DR用来设置输出为0还是1,地

最低0.47元/天 解锁文章
3908

被折叠的 条评论
为什么被折叠?



