关注分享主机优惠活动
国内外VPS云服务器

IMX6ULL裸机学习----LED正点原子在魏东山开发板上实现(正点原子imx6u开发指南)

总结:前言 1. 启动流程 2. 代码移植 硬件介绍 代码移植概述 前言 最近在学习这款开发板。 我手里有魏东山老师的全功能板子。 我使用Punctual Atom的视频课程来练习我的学习的初步效果。 学习。

简介

1.IMX6ULL启动流程?

2 . LED代码移植

1.硬件介绍

2. 移植代码

总结

简介

最近在学习IMX6ULL开发板。 我有魏东山老师的imx6ull全功能板。 为了将您学习的初步效果付诸实践,请使用我们的点对点原子视频课程进行学习。 首先,我们移植了一个基本的 LED 控制实验。

提示:以下是本文的正文。 以下案例仅供参考。

1.启动IMX6ULL您想启动该过程吗?

我们手头的开发板通常有直接的拨码开关来控制IMX6ULL的启动模式。 常见的有SD卡、USB、EMMC等。 这里可以根据自己的开发板进行配置。 (IMX6ULL的具体启动模式选择和启动设备选择参见正电原子,我觉得写得很好)。

在此处选择 SD 卡。

2. LED 代码移植 1. 硬件介绍

正电 Atom 开发板的 LED 电路图如下。

魏东山开发板是:

p>

2.代码移植

Atomic 使用的是 GPIO1_3 ,魏东山开发板使用的是。 GPIO5_3。 设置过程主要包括:

①使能GPIO对应的时钟(所有原子都打开,所以不需要碰原子)②。 配置IOMUXC_SW_MUX_CTL_PAD_XX_XX寄存器,使IO复用功能复用为GPIO功能(设置对应引脚)。 ③. 配置寄存器IOMUXC_SW_PAD_CTL_PAD_XX_XX来配置IO下拉、速度等(配置相应引脚)。 ④. 步骤2中,IO被复用为GPIO功能,因此需要进行GPIO设置、输入/输出设置、是否使用中断、默认输出电平等设置(对应管脚设置)。

在例程中,所有相应的引脚地址都被更改,并且注释被保留用于原子。 欲了解更多信息,请访问原子网站。 同时给开发板上电。 由于流过LED的电流很小,因此增加了延迟功能以确保更改成功。 调整r2延迟,可以观察闪烁频率的差异。 具体代码如下。

.global _start /* 全局标号 *//* * 说明:_start函数,程序从这里开始执行。 该函数完成时钟使能、*GPIO初始化,最终控制GPIO输出低电平。 打开 LED 灯。 */_开始:/* 例程代码 *//* 1. 使能所有时钟 */ldr r0, =0X020C4068 /* CCGR0 */ldr r1, =0XFFFFFFFF str r1, [r0]ldr r0, =0X020C406C /* CCGR1 */ str r1 , [ r0]ldr r0, =0X020C4070 /* CCGR2 */str r1, [r0]ldr r0, =0X020C4074 /* CCGR3 */str r1, [r0]ldr r0, =0X020C4078 /* CCGR4 */str r1 , [ r0] ldr r0, =0X020C407C /* CCGR5 */str r1, [r0]ldr r0, =0X020C4080 /* CCGR6 */str r1, [r0]/* 2. 设置 GPIO5_IO03 复用为 GPIO1_IO03 */ldr r0, = 0X2290014 /* 将寄存器 SW_MUX_GPIO1_IO03_BASE 加载到 r0 */ldr r1, =0X5/* 将寄存器 SW_MUX_GPIO1_IO03_BASE 的 MUX_MODE 设置为 5 */str r1,[r0]/* 3. 设置 GPIO5_IO03 的 IO 属性 *bit 16:0 HYS 关闭 *bit [ [15:14]: 00 默认下拉 *位[13]: 0 保持器功能 *位[12]: 1 上拉/保持器使能 * 位[11]: 0 关闭开路输出 *位[7:6]: 10 速度​​100Mhz *bit[5:3]: 110 R0/6 驱动能力 *bit[0]:0 较低转换速率 */ ldr r0 , =0X02290058/*寄存器 SW_PAD_GPIO1_IO03_BASE */ ldr r1, =0X10B0 str r1,[r0]/* 4. 设置 GPIO5_IO03 为输出 */ ldr r0, =0X020AC004/*寄存器 GPIO1_GDIR */ ldr r1, =0X0000008 str r1,[r0]flash:/* 5 打开 LED0 * 设置 GPIO5_IO03输出低电平 */ldr r0, =0X020AC000/*寄存器 GPIO1_DR */ ldr r1, =0 str r1,[r0]bl Lateb flash /* * 说明: Loop无限循环 */loop:bloop //延时函数:函数名:latelay:ldr r2,=1000000ldr r3,=0x0lay_loop:sub r2,r2,#1//r2 = r2-1cmp r2,r3 //cmp影响 Z 标志。 如果r2等于r3,Z=1,则以下语句中的eq为真。 bne Late_loopmov pc, lr//函数调用返回

。 摘要

仅用于学习时记录笔记。 LED在各种开发板上的实现要点是:

1. 多种开发板启动方式有EMMC、SD卡、USB。 这只是裸机学习,因此您可以使用 SD 卡和 USB。 这里使用的是SD卡,但尚未使用USB。

2. 对于不同的引脚,需要进行更改。

3. 向程序集中添加惰性函数

未经允许不得转载:主机频道 » IMX6ULL裸机学习----LED正点原子在魏东山开发板上实现(正点原子imx6u开发指南)

评论 抢沙发

评论前必须登录!