0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

配置文件和例程文件的使用

科技绿洲 来源:立功科技 作者:立功科技 2022-04-07 11:49 次阅读

本文导读

上期讲述了AMetal平台驱动框架中的硬件层,介绍了硬件层的驱动是如何实现及其硬件层接口的定义,逐渐深入了解AMetal平台。接下来向大家介绍配置文件和例程文件的使用,以此可灵活使用相应外设的资源。

每一个MCU上都包含了众多硬件外设资源,只要AMetal提供了对应外设的驱动,就会提供一套相对应的默认配置信息。AMetal支持的任一型号的芯片均按照如下所示的格式来设置硬件外设资源所对应的配置文件,其中xxx代表的是芯片型号。

poYBAGJOXtOANRmpAAJURFn1h-o738.png

图1 硬件外设及对应的配置文件

配置文件

配置文件的核心是定义一个设备实例和设备信息结构体,并提供封装好的实例初始化函数和实例解初始化函数。

设备实例为整个外设驱动提供必要的内存空间,实际上就是使用相应的设备结构体类型定义的一个结构体变量,无需用户赋值。在配置文件中,设备实例均已定义,如下以GPIO设备实例为例:

pYYBAGJOXt2AZI0EAAA_xl2Q4OQ625.png

图2 GPIO设备实例

设备信息通常包含以下几个部分:

寄存器基地址:每个片上外设都有对应的寄存器,根据该寄存器的起始地址,就能够操作到对应的寄存器。

中断号:中断号对应了外设的中断服务入口,需要将该中断号传递给驱动,以便驱动使用相应的中断资源。

时钟ID号:时钟ID对应了外设的时钟来源,需要将时钟ID号传递给驱动,以便驱动中可以获取外设的频率及使能该外设的相关时钟。

用户根据实际需求分配内存:由于系统部分资源会存在差异,用户可根据实际情况来设置,避免造成资源浪费。

平台初始化函数:平台初始化函数主要用于初始化与该外设相关的平台资源,如使能外设的时钟,配置相应的引脚等。

平台解初始化函数:平台解初始化函数与平台初始化函数对应,平台初始化使能了时钟等,就可以通过平台解初始化函数将其关闭。

通过设置外设相应的配置文件,以此来实现设备实例化,便于后续驱动文件调用该外设的相关资源。如下所示为外设实例化的流程:

pYYBAGJOXuaAfTJjAABrjB4nlHk640.png

图3 外设实例化流程

工程配置

与板级相关的资源有LED、蜂鸣器、按键、调试串口、延时、系统滴答、软件定时器、标准库、中断延时等,如下所示。上述板级资源均可以通过配置对应的使能/禁能宏来决定系统启动时是否自动完成初始化操作。

pYYBAGJOXvOAdLPNAAGl6LwGukA285.png

图4 板级资源初始化使能/禁能

除此之外,还有一些全局外设,如CLK、GPIO、DMA、INT和NVRAM。由于需要在全局使用,因此在系统启动时已默认初始化,在应用程序使用时,无需再重复初始化。若在某些特殊的应用场合不希望在系统启动时自动初始化某些特定的资源,可设置宏来关闭。如果确定系统不使用GPIO资源或希望由应用程序自行完成初始化操作,则可以将该宏的值修改为0。

poYBAGJOXv-AGFmHAAB7D_IBkiQ304.png

图5 部分外设初始化使能/禁能

通用例程文件

AMetal中examples文件下的demo分为四类,分别放到board、components、soc、std这四个文件中的demo源程序是给用户的一个使用范畴,同时头文件包含了详尽的注释说明,操作步骤,实验现象等。因此,大家在使用相关内容的时候可以先查看对应的demo文件,就可以快速上手相应的外设资源。

board文件下对应板级例程,调用驱动层和硬件层的例程,控制评估板的各个硬件外设;

components文件下对应组件例程,包含一些常用芯片(如MX25xx、EP24Cxx等)的例程和服务组件例程;

soc文件下对应硬件层例程,通过调用硬件层函数实现,不同系列的soc对应不同的相关硬件层例程;

std文件下对应驱动层例程,调用驱动层的函数和标准接口来实现的。

除board、soc外,其他文件中(components、std)的demo是通用的,不与具体的硬件绑定,可以应用在多个硬件平台中,其正常运行时需要将入口函数的参数传入即可。如下所示为通用demo的示例:

pYYBAGJOXwqAZ5vMAADPfbO00Zo860.png

图6 通用demo示例

board文件下的demo可以直接在相应的硬件评估板上运行,其实现往往直接调用通用demo的入口函数,并根据硬件板的实际情况,准备好通用demo的必要条件。如下所示为可以直接在ZLG116上运行的demo:

pYYBAGJOXxWAAy3NAAEFjwPRIo0608.png

图7 可以在硬件板直接运行的demo

以上就是AMetal驱动框架详解之配置文件与例程文件的全部内容,主要为大家介绍配置文件和例程文件的使用,也便于后续可以熟练使用AMetal提供的示例文件。

审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47732

    浏览量

    409028
  • 硬件
    +关注

    关注

    11

    文章

    2921

    浏览量

    64744
  • 驱动框架
    +关注

    关注

    0

    文章

    14

    浏览量

    4004
收藏 人收藏

    评论

    相关推荐

    基于libconfig进行配置文件解析

    本文介绍基于libconfig进行配置文件解析
    的头像 发表于 06-08 10:18 835次阅读
    基于libconfig进行<b class='flag-5'>配置文件</b>解析

    ICD配置文件的详细介绍和配置内容的详细概述

    配置文件配置文件是利用SCL语言描述变电站设备对象模型后生成的文件,用于在不同厂商的配置工具之间交换配置信息。
    的头像 发表于 06-02 11:16 1.7w次阅读
    ICD<b class='flag-5'>配置文件</b>的详细介绍和<b class='flag-5'>配置</b>内容的详细概述

    FreeRTOS_006_FreeRTOSConfig.h配置文件 (三)

    FreeRTOS_006_FreeRTOSConfig.h配置文件(三)
    的头像 发表于 03-14 11:10 3133次阅读
    FreeRTOS_006_FreeRTOSConfig.h<b class='flag-5'>配置文件</b> (三)

    FreeRTOS_004_FreeRTOSConfig.h配置文件 (一)

    FreeRTOS_004_FreeRTOSConfig.h配置文件(一)
    的头像 发表于 03-14 11:18 2434次阅读
    FreeRTOS_004_FreeRTOSConfig.h<b class='flag-5'>配置文件</b> (一)

    AD8283评估板设计和配置文件

    AD8283评估板设计和配置文件
    发表于 05-31 16:04 9次下载
    AD8283评估板设计和<b class='flag-5'>配置文件</b>

    labview读写配置文件实例分享

    labview读写配置文件实例分享
    发表于 11-01 16:05 40次下载

    如何搭建工程让MCU运行起来

    上期讲述了AMetal平台驱动框架中的配置文件例程文件的使用,方便用户快速调用MCU相应的外设资源。基于前期对AMetal驱动架构各层文件的详细说明,本次向大家介绍如何搭建工程让MC
    的头像 发表于 05-01 09:04 1567次阅读
    如何搭建工程让MCU运行起来

    SpringBoot配置文件application

    Map配置 YML配置文件: sys-num: mymap: "{'a':'aaa','b':'bbb'}" 方法内: public class learnMap { @Value
    的头像 发表于 01-13 15:36 487次阅读

    教程 2:自定义配置文件示例

    教程 2:自定义配置文件示例
    发表于 03-13 19:33 0次下载
    教程 2:自定义<b class='flag-5'>配置文件</b>示例

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 03-15 19:39 0次下载
    教程 3:构建自定义<b class='flag-5'>配置文件</b>

    教程 2:自定义配置文件示例

    教程 2:自定义配置文件示例
    发表于 07-04 20:50 0次下载
    教程 2:自定义<b class='flag-5'>配置文件</b>示例

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 07-06 18:49 0次下载
    教程 3:构建自定义<b class='flag-5'>配置文件</b>

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳
    的头像 发表于 10-20 15:04 277次阅读
    KT142C语音芯片<b class='flag-5'>配置文件</b>总是不起作用?<b class='flag-5'>配置文件</b>的问题集中归纳

    springboot的全局配置文件有几种

    Spring Boot是一种快速开发框架,其通过提供配置文件来实现对应用程序的配置。全局配置文件在Spring Boot中起着非常重要的作用,可以用于配置各种不同的属性,包括数据库连接
    的头像 发表于 12-03 15:28 470次阅读

    php的配置文件是什么

    PHP的配置文件是一种用于配置PHP解释器的文本文件。它包含了一系列的指令和选项,用于影响PHP的行为和性能。通过修改配置文件,可以改变PHP解释器的默认行为,从而满足不同的需求。 在
    的头像 发表于 12-04 15:55 784次阅读