官方 SDK 移植实验(LED)
前言:我们就来讲解如何移植 SDK 包里面重要的文件,方便我们的开发。但不是所有的半导体厂商都会为 Cortex-A 架构的芯片编写裸机 SDK 包,极少,所以我们只是借助SDK里的三个重要文件来开发,不能完全依赖SDK开发。在 Cotex-A 芯片下基本都需要我们自行编写,比如.s 启动文件、寄存器定义等等。
我们重点是需要 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。
MCIMX6YH2.h:SDK_2.2_MCIM6ULL\devices\MCIMX6Y2\MCIMX6YH2.h。
使用以上3个头文件,我们就不用写上面一章的main.h了,因为头文件已经定义好寄存器了。
1.使用 VSCode 新建工程,将 fsl_common.h、fsl_iomuxc.h 和 MCIMX6Y2.h 这三个文件拷贝到工程中,这三个文件直接编译的话肯定会出错的!需要对其做删减。
2. 创建 cc.h 文件,cc.h 里面存放一些 SDK 库文件需要使用到的数据类型。
3.新建 start.S 和 main.c 这两个文件,start.S 文件的内容和上一章一样,也就是C语言的环境初始化,直接复制过来就可以。
4.然后编写main.c,main.c的包含fsl_common.h、fsl_iomuxc.h、MCIMX6YH2.h这三个头文件,也就是SDK那里拿出来的三个头文件,然后编写代码: 使能 I.MX6U 所有外设时钟、初始化 LED 对应的 GPIO。
5.在main.c中我们新使用了IOMUXC_SetPinMux 是 用 来 设 置 IO 复 用 功 能和 IOMUXC_SetPinConfig设置的是 IO 的上下拉、速度等。用来代替上一章中的IOMUX_SW_MUX->GPIO1_IO03 = 0X5;和IOMUX_SW_PAD->GPIO1_IO03 = 0X10B0;这样方便。
6.编译:编写 Makefile 和链接脚本。
7.使用 Make 命令编译代码,编译成功以后使用软件 imxdownload 将编译完成的 ledc.bin 文件下载到 SD 卡中。