学习新的系列,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复用功能的