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

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

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

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

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

本文導(dǎo)讀

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

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

poYBAGJOXtOANRmpAAJURFn1h-o738.png

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

配置文件

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

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

pYYBAGJOXt2AZI0EAAA_xl2Q4OQ625.png

圖2 GPIO設(shè)備實(shí)例

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

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

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

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

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

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

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

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

pYYBAGJOXuaAfTJjAABrjB4nlHk640.png

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

工程配置

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

pYYBAGJOXvOAdLPNAAGl6LwGukA285.png

圖4 板級(jí)資源初始化使能/禁能

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

poYBAGJOXv-AGFmHAAB7D_IBkiQ304.png

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

通用例程文件

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

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

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

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

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

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

pYYBAGJOXwqAZ5vMAADPfbO00Zo860.png

圖6 通用demo示例

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

pYYBAGJOXxWAAy3NAAEFjwPRIo0608.png

圖7 可以在硬件板直接運(yùn)行的demo

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

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

    關(guān)注

    450

    文章

    49622

    瀏覽量

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

    關(guān)注

    11

    文章

    3112

    瀏覽量

    65841
  • 驅(qū)動(dòng)框架
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    4016
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于libconfig進(jìn)行配置文件解析

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

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

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

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

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

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

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

    Python進(jìn)行配置文件的教程免費(fèi)下載

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

    AD8283評(píng)估板設(shè)計(jì)和配置文件

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

    labview讀寫配置文件實(shí)例分享

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

    如何搭建工程讓MCU運(yùn)行起來(lái)

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

    SpringBoot配置文件application

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

    KT142C語(yǔ)音芯片配置文件總是不起作用?配置文件的問(wèn)題集中歸納

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

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

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

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

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

    springboot的全局配置文件有幾種

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

    zookeeper的核心配置文件是什么

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

    php的配置文件是什么

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