目录
前言
本文作为本人学习Linux嵌入式记录文档,仅供参考。
开发板:正点原子阿尔法开发板(I.MX6ULL)
环境:Ubuntu 20.04 (LTS) (内核版本:Linux 5.4.0)
交叉编译器:arm-linux-gnueabihf 4.9.4
一、目的
- 编写裸机代码(汇编)点亮LED灯
- 掌握如何配置Linux开发板的GPIO
- 熟悉Linux开发板的裸机开发流程
二、原理
1.硬件电路分析
首先查看开发板原理图中有关LED设备的电路。
可以看到LED采用了共阳的接线,也就是当“LED0”端为低电平时,电路导通,LED灯被点亮。
从上图可以看到,“LED0”与芯片的“GPIO_3”相连,所以想点亮LED就要先配置好GPIO_3,然后将GPIO3设置为输出,并输出低电平即可点亮LED。
2.寄存器分析
(1)时钟
想使用GPIO口首先要使能GPIO和一些系统运行必须的时钟。由于本人刚刚接触Linux嵌入式开发,且现在正在啃教程(正点原子Linux嵌入式开发),对此了解较少,本次将开启所有时钟,不做节能考虑。相关寄存器内容请自行查看《I.MX6ULL参考手册》 18.6.23 CCM Clock Gating Register 0 (CCM_CCGR0)~18.6.29 CCM Clock Gating Register 6 (CCM_CCGR6)章节。