Linux嵌入式学习第三节:库文件编写小试与SDK移植

本文介绍了Linux嵌入式学习中如何编写库文件和移植SDK。作者通过实例展示了从分析官方库文件到编写自己的库函数的过程,并详细解释了移植SDK的要点,旨在帮助读者理解库文件的结构和SDK移植的基本步骤。
摘要由CSDN通过智能技术生成

目录

前言

一、目的

二、过程

1、写库

(1)为什么要自己写库

(2)分析官方库文件

(3)编写自己的库函数

2、移植SDK

总结


前言

本文作为本人学习Linux嵌入式记录文档,仅供参考。

开发板:正点原子阿尔法开发板(I.MX6ULL)

环境:Ubuntu 20.04 (LTS)  (内核版本:Linux 5.4.0)

交叉编译器:arm-linux-gnueabihf 4.9.4


一、目的

  1. 了解熟悉官方库的编写方法
  2. 通过自己编写的文档点亮LED
  3. 了解移植SDK方法

二、过程

1、写库

(1)为什么要自己写库

NXP为IMX.6ULL编写了SDK包,这个SDK类似于STM32开发的STD库、HAL库,我们可以直接拿过来移植使用还可以直接使用官方的IAR进行开发,更加方便。那为什么还要自己写库呢?

目前所学习阶段都是裸机的例程,抱着学习目的学习Linux下的GCC开发方法和Makefile、Shell的使用,这是我们自己写库的原因之一。更重要的原因是。大多数Cotex-A系列的芯片是没有提供相关SDK的。我们日后开发不可能只使用一种芯片,所以学会写自己的库是必须掌握的技能。

(2)分析官方库文件

安装完NXP的SDK(可以从NXP官网下载)后,查看路径 NXP\devices\MCIMX6Y2\drivers 下的三个文件,分别是fsl_common.h 、fsl_iomuxc.h 、MCIMX6Y2.h 。下面还有其他的文件分别是各种驱动以及定义有兴趣可自行查看。

看三个文件的名字大概可以猜出 MCIMX6Y2.h 应该是关于寄存器的定义,fsl_iomux 是关于IO口复用的,fsl_common是通用的一些定义。

首先我们查看一下 MCIMX6Y2.h

在开头可以看到这些定义:

很明显这是关于中断的,本节我们不需要。我们要找的是关于寄存器定义的方法。为了节省时间,我们可以直接用编辑器的搜索查找我们需要的寄存器。大多数软件查找功能的快捷键都是Ctrl+F。如果用过库函数开发单片机的话,可以知道在一般关于寄存器定义方面都会使用一个“typedef struct”定义一个结构体类型。所以我们直接查询 CCM_Type。

我们可以看到这里分别定义了CCM内所有的寄存器包括我们需要用的CCGR0~CCGR6,而且他们的顺序是和参考手册中顺序是一样的。这

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值