0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來源:立功科技 ? 作者:立功科技 ? 2022-04-07 11:49 ? 次閱讀

本文導(dǎo)讀

上期講述了AMetal平臺驅(qū)動框架中的硬件層,介紹了硬件層的驅(qū)動是如何實現(xiàn)及其硬件層接口的定義,逐漸深入了解AMetal平臺。接下來向大家介紹配置文件和例程文件的使用,以此可靈活使用相應(yīng)外設(shè)的資源。

每一個MCU上都包含了眾多硬件外設(shè)資源,只要AMetal提供了對應(yīng)外設(shè)的驅(qū)動,就會提供一套相對應(yīng)的默認(rèn)配置信息。AMetal支持的任一型號的芯片均按照如下所示的格式來設(shè)置硬件外設(shè)資源所對應(yīng)的配置文件,其中xxx代表的是芯片型號。

poYBAGJOXtOANRmpAAJURFn1h-o738.png

圖1 硬件外設(shè)及對應(yīng)的配置文件

配置文件

配置文件的核心是定義一個設(shè)備實例和設(shè)備信息結(jié)構(gòu)體,并提供封裝好的實例初始化函數(shù)和實例解初始化函數(shù)。

設(shè)備實例為整個外設(shè)驅(qū)動提供必要的內(nèi)存空間,實際上就是使用相應(yīng)的設(shè)備結(jié)構(gòu)體類型定義的一個結(jié)構(gòu)體變量,無需用戶賦值。在配置文件中,設(shè)備實例均已定義,如下以GPIO設(shè)備實例為例:

pYYBAGJOXt2AZI0EAAA_xl2Q4OQ625.png

圖2 GPIO設(shè)備實例

設(shè)備信息通常包含以下幾個部分:

寄存器基地址:每個片上外設(shè)都有對應(yīng)的寄存器,根據(jù)該寄存器的起始地址,就能夠操作到對應(yīng)的寄存器。

中斷號:中斷號對應(yīng)了外設(shè)的中斷服務(wù)入口,需要將該中斷號傳遞給驅(qū)動,以便驅(qū)動使用相應(yīng)的中斷資源。

時鐘ID號:時鐘ID對應(yīng)了外設(shè)的時鐘來源,需要將時鐘ID號傳遞給驅(qū)動,以便驅(qū)動中可以獲取外設(shè)的頻率及使能該外設(shè)的相關(guān)時鐘。

用戶根據(jù)實際需求分配內(nèi)存:由于系統(tǒng)部分資源會存在差異,用戶可根據(jù)實際情況來設(shè)置,避免造成資源浪費。

平臺初始化函數(shù):平臺初始化函數(shù)主要用于初始化與該外設(shè)相關(guān)的平臺資源,如使能外設(shè)的時鐘,配置相應(yīng)的引腳等。

平臺解初始化函數(shù):平臺解初始化函數(shù)與平臺初始化函數(shù)對應(yīng),平臺初始化使能了時鐘等,就可以通過平臺解初始化函數(shù)將其關(guān)閉。

通過設(shè)置外設(shè)相應(yīng)的配置文件,以此來實現(xiàn)設(shè)備實例化,便于后續(xù)驅(qū)動文件調(diào)用該外設(shè)的相關(guān)資源。如下所示為外設(shè)實例化的流程:

pYYBAGJOXuaAfTJjAABrjB4nlHk640.png

圖3 外設(shè)實例化流程

工程配置

與板級相關(guān)的資源有LED、蜂鳴器、按鍵、調(diào)試串口、延時、系統(tǒng)滴答、軟件定時器、標(biāo)準(zhǔn)庫、中斷延時等,如下所示。上述板級資源均可以通過配置對應(yīng)的使能/禁能宏來決定系統(tǒng)啟動時是否自動完成初始化操作。

pYYBAGJOXvOAdLPNAAGl6LwGukA285.png

圖4 板級資源初始化使能/禁能

除此之外,還有一些全局外設(shè),如CLK、GPIO、DMA、INT和NVRAM。由于需要在全局使用,因此在系統(tǒng)啟動時已默認(rèn)初始化,在應(yīng)用程序使用時,無需再重復(fù)初始化。若在某些特殊的應(yīng)用場合不希望在系統(tǒng)啟動時自動初始化某些特定的資源,可設(shè)置宏來關(guān)閉。如果確定系統(tǒng)不使用GPIO資源或希望由應(yīng)用程序自行完成初始化操作,則可以將該宏的值修改為0。

poYBAGJOXv-AGFmHAAB7D_IBkiQ304.png

圖5 部分外設(shè)初始化使能/禁能

通用例程文件

AMetal中examples文件下的demo分為四類,分別放到board、components、soc、std這四個文件中的demo源程序是給用戶的一個使用范疇,同時頭文件包含了詳盡的注釋說明,操作步驟,實驗現(xiàn)象等。因此,大家在使用相關(guān)內(nèi)容的時候可以先查看對應(yīng)的demo文件,就可以快速上手相應(yīng)的外設(shè)資源。

board文件下對應(yīng)板級例程,調(diào)用驅(qū)動層和硬件層的例程,控制評估板的各個硬件外設(shè);

components文件下對應(yīng)組件例程,包含一些常用芯片(如MX25xx、EP24Cxx等)的例程和服務(wù)組件例程;

soc文件下對應(yīng)硬件層例程,通過調(diào)用硬件層函數(shù)實現(xiàn),不同系列的soc對應(yīng)不同的相關(guān)硬件層例程;

std文件下對應(yīng)驅(qū)動層例程,調(diào)用驅(qū)動層的函數(shù)和標(biāo)準(zhǔn)接口來實現(xiàn)的。

除board、soc外,其他文件中(components、std)的demo是通用的,不與具體的硬件綁定,可以應(yīng)用在多個硬件平臺中,其正常運行時需要將入口函數(shù)的參數(shù)傳入即可。如下所示為通用demo的示例:

pYYBAGJOXwqAZ5vMAADPfbO00Zo860.png

圖6 通用demo示例

board文件下的demo可以直接在相應(yīng)的硬件評估板上運行,其實現(xiàn)往往直接調(diào)用通用demo的入口函數(shù),并根據(jù)硬件板的實際情況,準(zhǔn)備好通用demo的必要條件。如下所示為可以直接在ZLG116上運行的demo:

pYYBAGJOXxWAAy3NAAEFjwPRIo0608.png

圖7 可以在硬件板直接運行的demo

以上就是AMetal驅(qū)動框架詳解之配置文件與例程文件的全部內(nèi)容,主要為大家介紹配置文件和例程文件的使用,也便于后續(xù)可以熟練使用AMetal提供的示例文件。

審核編輯:彭菁
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50812

    瀏覽量

    423573
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3328

    瀏覽量

    66218
  • 驅(qū)動框架
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    4035
收藏 人收藏

    評論

    相關(guān)推薦

    基于libconfig進行配置文件解析

    本文介紹基于libconfig進行配置文件解析
    的頭像 發(fā)表于 06-08 10:18 ?1419次閱讀
    基于libconfig進行<b class='flag-5'>配置文件</b>解析

    探討PROE的配置文件——系統(tǒng)配置文件config.pro

    PROE的配置文件讓不少初學(xué)者感到煩惱,盡管不少教材里都會提到關(guān)于PROE的配置文件。但大多數(shù)顯得過于理論化,而不便于初學(xué)者理解,可操作性不強。本文力求以通俗的語言結(jié)合
    發(fā)表于 09-28 15:50 ?0次下載

    ICD配置文件的詳細介紹和配置內(nèi)容的詳細概述

    配置文件配置文件是利用SCL語言描述變電站設(shè)備對象模型后生成的文件,用于在不同廠商的配置工具之間交換配置信息。
    的頭像 發(fā)表于 06-02 11:16 ?1.8w次閱讀
    ICD<b class='flag-5'>配置文件</b>的詳細介紹和<b class='flag-5'>配置</b>內(nèi)容的詳細概述

    Keil的黑色界面配置文件配置方法

    本文檔的主要內(nèi)容詳細介紹的是Keil的黑色界面配置文件配置方法。
    發(fā)表于 12-03 15:05 ?26次下載

    Python進行配置文件的教程免費下載

    本文檔的主要內(nèi)容詳細介紹的是Python進行配置文件的教程免費下載。
    發(fā)表于 09-30 16:41 ?6次下載
    Python進行<b class='flag-5'>配置文件</b>的教程免費下載

    AD8283評估板設(shè)計和配置文件

    AD8283評估板設(shè)計和配置文件
    發(fā)表于 05-31 16:04 ?9次下載
    AD8283評估板設(shè)計和<b class='flag-5'>配置文件</b>

    labview讀寫配置文件實例分享

    labview讀寫配置文件實例分享
    發(fā)表于 11-01 16:05 ?45次下載

    如何搭建工程讓MCU運行起來

    上期講述了AMetal平臺驅(qū)動框架中的配置文件例程文件的使用,方便用戶快速調(diào)用MCU相應(yīng)的外設(shè)資源?;谇捌趯Metal驅(qū)動架構(gòu)各層文件的詳細說明,本次向大家介紹如何搭建工程讓MC
    的頭像 發(fā)表于 05-01 09:04 ?1914次閱讀
    如何搭建工程讓MCU運行起來

    SpringBoot配置文件application

    Map配置 YML配置文件: sys-num: mymap: "{'a':'aaa','b':'bbb'}" 方法內(nèi): public class learnMap { @Value
    的頭像 發(fā)表于 01-13 15:28 ?650次閱讀

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納
    的頭像 發(fā)表于 10-20 15:04 ?579次閱讀
    KT142C語音芯片<b class='flag-5'>配置文件</b>總是不起作用?<b class='flag-5'>配置文件</b>的問題集中歸納

    linux修改網(wǎng)卡ip配置文件

    Linux是一種開源的操作系統(tǒng),因此,它給用戶提供了很高的自由度,可以根據(jù)個人需要進行各種定制和配置。其中,修改網(wǎng)絡(luò)接口配置文件是常見的操作,可以通過修改網(wǎng)卡ip配置文件來設(shè)置網(wǎng)絡(luò)接口的IP地址
    的頭像 發(fā)表于 11-17 10:51 ?2249次閱讀

    ROS編寫參數(shù)配置文件例程

    _config.yaml這三個文件中,這三個文件均位于下圖所示的目錄下,下面依次進行詳細的介紹 1、編寫user_config.yaml參數(shù)配置文件 首先,我們來看作者提供的示例程
    的頭像 發(fā)表于 11-26 17:35 ?1619次閱讀
    ROS編寫參數(shù)<b class='flag-5'>配置文件</b>示<b class='flag-5'>例程</b>序

    springboot的全局配置文件有幾種

    Spring Boot是一種快速開發(fā)框架,其通過提供配置文件來實現(xiàn)對應(yīng)用程序的配置。全局配置文件在Spring Boot中起著非常重要的作用,可以用于配置各種不同的屬性,包括數(shù)據(jù)庫連接
    的頭像 發(fā)表于 12-03 15:28 ?1573次閱讀

    zookeeper的核心配置文件是什么

    Zookeeper是一個常用的分布式協(xié)調(diào)服務(wù),它被廣泛應(yīng)用于大型分布式系統(tǒng)中。Zookeeper的核心配置文件是zoo.cfg,它包含了Zookeeper服務(wù)器的各種配置參數(shù),可以通過修改這些參數(shù)
    的頭像 發(fā)表于 12-04 10:33 ?813次閱讀

    php的配置文件是什么

    PHP的配置文件是一種用于配置PHP解釋器的文本文件。它包含了一系列的指令和選項,用于影響PHP的行為和性能。通過修改配置文件,可以改變PHP解釋器的默認(rèn)行為,從而滿足不同的需求。 在
    的頭像 發(fā)表于 12-04 15:55 ?1549次閱讀