imx6ull基于yocto工程的l汇编点亮ed

通过汇编点亮led

在裸机状态下通过汇编点亮led,即没有操作系统,(uboot kernel rootfs 都不需要实现)。

led点亮原理

1.GPIO复用

根据原理图,找到led对应的引脚(pin),复用为GPIO(只有GPIO才能控制输入输出)
芯片手册查询寄存器的方法,以CSI_HSYNC为例,在IOMUXC章节搜索CSI_HSYNC 找到

在这里插入图片描述
关键字是MUX意为复用,20E_01E0为该寄存器的地址,根据手册将其复用为GPIO
在这里插入图片描述
即将该寄存器的值设置为0b101

2. PAD属性

引脚的电气属性配置,如驱动能力、上拉/下拉选择等,占时不太清楚,按要求设置

3.GPIO.GDIR

控制GPIO为输入还是输出。芯片手册查询方法
在这里插入图片描述
在GPIO章节,找到GPIO memory map 中的GPIOx_GDIR,如想将GPIO4_IO20设置为输出
那么就需要找到GPIO4_GDIR的寄存器,然后将该寄存器的第20位设置位1

4.GPIO.DR

控制输出高低电平,芯片手册查询方法同上,找到GPIOx_DR,设置对应的寄存器

yocto编译led.bin

在yocto工程中创建recipes,结构如下
在这里插入图片描述
led.s和Makefile不多解释,led.bb如下

SUMMARY = " led test "
DESCRIPTION = " my led "
LICENSE = "CLOSED"

FILESEXTRAPATHS_prepend := "${THISDIR}/:"

#设置源码路径,在bitbake在执行时会从当前路径的led目录中获取源码,目录名最好与bb文件名称相同
SRC_URI = "file://led/"

#设定工作路径 编译时会将SRC_URI 下的文件unpack到S路径下
S = "${WORKDIR}/led"


# 为了确保我们使用的是交叉编译器
DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}binutils"

EXTRA_OEMAKE = "'CROSS_COMPILE=${TARGET_PREFIX}'"


# 添加任务来编译汇编文件
do_compile() {
   
#相当于在 S = "${WORKDIR}/led" 下执行make ,前面 EXTRA_OEMAKE 设定了交叉编译工具
	oe_runmake
}

使用bitbake -c compile -f led 即可编译得到led.bin

烧录

直接将led.bin 烧录到sd卡是肯定不能执行的,因为做的是裸机使用,从sd卡启动时,片内的rom代码是无法直接将led.bin 加载到内存运行的,必须在led.bin 前面加上一段配置代码,后面学到了继续分析。

相关推荐

  1. IMX6ULL+LAN8720*2移植

    2024-01-14 00:20:07       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-14 00:20:07       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-14 00:20:07       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-14 00:20:07       87 阅读
  4. Python语言-面向对象

    2024-01-14 00:20:07       96 阅读

热门阅读

  1. 基于SpringBoot使用AOP开发接口的访问日志信息

    2024-01-14 00:20:07       59 阅读
  2. node 第二十天 手写SPA前端路由,vue-router实现原理

    2024-01-14 00:20:07       65 阅读
  3. Dockerfile指令详解

    2024-01-14 00:20:07       63 阅读
  4. C语言结构体2

    2024-01-14 00:20:07       63 阅读
  5. 文件包含漏洞原理以及修复方法

    2024-01-14 00:20:07       69 阅读
  6. 11.【TypeScript 教程】函数(Function)

    2024-01-14 00:20:07       55 阅读
  7. Unity-游戏与帧

    2024-01-14 00:20:07       62 阅读
  8. 编程探秘:Python深渊之旅-----算法的舞蹈(二)

    2024-01-14 00:20:07       67 阅读