一、I.MX6ULL 官方 SDK包下载

二、I.MX6ULL 官方 SDK包简介
NXP 针对 I.MX6ULL 编写了一个 SDK 包,这个 SDK 包就类似于 STM32 的 STD 库或者 HAL 库,这个 SDK 包提供了 Windows 和 Linux 两种版本,分别针对主机系统是 Windows 和 Linux。
我们不是通过 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_STATUSenum _status_groupsenum _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_STATUSenum _status_groupsenum _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.h、fsl_iomuxc.h 和 MCIMX6Y2.h 文件中相关数据类型。
#ifndef __TYPES_H__
#define __TYPES_H__
#define __I volatile
#define __O volatile
#define __IO volatile
typedef

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

331

被折叠的 条评论
为什么被折叠?



