i.MX6ULL裸机开发 二:官方 SDK移植

本文档详细介绍了如何从NXP的I.MX6ULL官方SDK中提取必要的头文件,并进行移植,以便在裸机环境下进行开发。主要涉及fsl_common.h、fsl_iomuxc.h和MCIMX6Y2.h等文件,内容包括寄存器定义、引脚复用和配置、外设操作等。在移植过程中,删除了不必要的宏、编译器相关和C++支持。最后展示了LED驱动的C代码实现,包括时钟使能、GPIO配置和LED开关控制。

一、I.MX6ULL 官方 SDK包下载

在这里插入图片描述

二、I.MX6ULL 官方 SDK包简介

NXP 针对 I.MX6ULL 编写了一个 SDK 包,这个 SDK 包就类似于 STM32STD 库或者 HAL 库,这个 SDK 包提供了 WindowsLinux 两种版本,分别针对主机系统是 WindowsLinux

我们不是通过 SDK 进行开发,而是需要 SDK 中寄存器相关定义文件。一共需要如下三个文件:

  • fsl_common.h:位置为 SDK_2.2_MCIM6ULL\devices\MCIMX6Y2\drivers\fsl_common.h
  • fsl_iomuxc.h: 位置为 SDK_2.2_MCIM6ULL\devices\MCIMX6Y2\drivers\fsl_iomuxc.h
  • MCIMX6Y2.h: 位置为 SDK_2.2_MCIM6ULL\devices\MCIMX6Y2\MCIMX6YH2.h

1、fsl_common.h 内容

  • 构造代码状态
    • MAKE_STATUS
    • enum _status_groups
    • enum _generic_status
  • 版本号
  • Debug 控制台类型
  • status_t 类型(typedef int32_t status_t
  • 一些宏定义
  • 不同链接器相关定义
  • 对 C++ 的一些支持(__cplusplus

2、fsl_iomuxc.h 内容

  • IOMUXC 复用定义
  • 引脚复用功能函数(IOMUXC_SetPinMux
  • 引脚配置函数(IOMUXC_SetPinConfig

3、MCIMX6Y2.h 内容

  • IRQn_Type 定义
  • SW_MUX_CTL_PAD 引脚枚举
  • SW_PAD_CTL_PAD_DDR 引脚枚举
  • SW_PAD_CTL_PAD 引脚枚举
  • IOMUXC 输入选择
  • IOMUXC 组枚举
  • IOMUXC_SNVS SW_MUX_CTL_PAD 枚举
  • IOMUXC_SNVS SW_PAD_CTL_PAD 枚举
  • 外设地址定义
  • 外设结构体定义
  • 外设的基本操作

三、SDK 移植

1、fsl_common.h 需要内容(删除宏、编译器相关内容、C++相关内容)

  • 构造代码状态
    • MAKE_STATUS
    • enum _status_groups
    • enum _generic_status
  • 版本号
  • Debug 控制台类型
  • status_t 类型(typedef int32_t status_t

2、fsl_iomuxc.h 内容都需要,删除包含头文件即可。

3、MCIMX6Y2.h 内容都需要,删除包含头文件即可。

4、对以上头文件使用的数据类型添加(移植官方文件也可以(SDK 中未找到),自己写以可以)。

四、编写代码

1、fsl_commom.h

文件较大,不复制相关代码。

2、fsl_iomuxc.h

文件较大,不复制相关代码。

3、MCIMX6Y2.h

文件较大,不复制相关代码。

4、types.h

定义 fsl_commom.hfsl_iomuxc.hMCIMX6Y2.h 文件中相关数据类型

#ifndef __TYPES_H__
#define __TYPES_H__

#define __I     volatile
#define __O     volatile
#define __IO    volatile

typedef 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值