本文導讀
上期講述了AMetal平臺驅動框架中的硬件層,介紹了硬件層的驅動是如何實現及其硬件層接口的定義,逐漸深入了解AMetal平臺。接下來向大家介紹配置文件和例程文件的使用,以此可靈活使用相應外設的資源。
每一個MCU上都包含了眾多硬件外設資源,只要AMetal提供了對應外設的驅動,就會提供一套相對應的默認配置信息。AMetal支持的任一型號的芯片均按照如下所示的格式來設置硬件外設資源所對應的配置文件,其中xxx代表的是芯片型號。
圖1 硬件外設及對應的配置文件
配置文件
配置文件的核心是定義一個設備實例和設備信息結構體,并提供封裝好的實例初始化函數和實例解初始化函數。
設備實例為整個外設驅動提供必要的內存空間,實際上就是使用相應的設備結構體類型定義的一個結構體變量,無需用戶賦值。在配置文件中,設備實例均已定義,如下以GPIO設備實例為例:
圖2 GPIO設備實例
設備信息通常包含以下幾個部分:
寄存器基地址:每個片上外設都有對應的寄存器,根據該寄存器的起始地址,就能夠操作到對應的寄存器。
中斷號:中斷號對應了外設的中斷服務入口,需要將該中斷號傳遞給驅動,以便驅動使用相應的中斷資源。
時鐘ID號:時鐘ID對應了外設的時鐘來源,需要將時鐘ID號傳遞給驅動,以便驅動中可以獲取外設的頻率及使能該外設的相關時鐘。
用戶根據實際需求分配內存:由于系統部分資源會存在差異,用戶可根據實際情況來設置,避免造成資源浪費。
平臺初始化函數:平臺初始化函數主要用于初始化與該外設相關的平臺資源,如使能外設的時鐘,配置相應的引腳等。
平臺解初始化函數:平臺解初始化函數與平臺初始化函數對應,平臺初始化使能了時鐘等,就可以通過平臺解初始化函數將其關閉。
通過設置外設相應的配置文件,以此來實現設備實例化,便于后續驅動文件調用該外設的相關資源。如下所示為外設實例化的流程:
圖3 外設實例化流程
工程配置
與板級相關的資源有LED、蜂鳴器、按鍵、調試串口、延時、系統滴答、軟件定時器、標準庫、中斷延時等,如下所示。上述板級資源均可以通過配置對應的使能/禁能宏來決定系統啟動時是否自動完成初始化操作。
圖4 板級資源初始化使能/禁能
除此之外,還有一些全局外設,如CLK、GPIO、DMA、INT和NVRAM。由于需要在全局使用,因此在系統啟動時已默認初始化,在應用程序使用時,無需再重復初始化。若在某些特殊的應用場合不希望在系統啟動時自動初始化某些特定的資源,可設置宏來關閉。如果確定系統不使用GPIO資源或希望由應用程序自行完成初始化操作,則可以將該宏的值修改為0。
圖5 部分外設初始化使能/禁能
通用例程文件
AMetal中examples文件下的demo分為四類,分別放到board、components、soc、std這四個文件中的demo源程序是給用戶的一個使用范疇,同時頭文件包含了詳盡的注釋說明,操作步驟,實驗現象等。因此,大家在使用相關內容的時候可以先查看對應的demo文件,就可以快速上手相應的外設資源。
board文件下對應板級例程,調用驅動層和硬件層的例程,控制評估板的各個硬件外設;
components文件下對應組件例程,包含一些常用芯片(如MX25xx、EP24Cxx等)的例程和服務組件例程;
soc文件下對應硬件層例程,通過調用硬件層函數實現,不同系列的soc對應不同的相關硬件層例程;
std文件下對應驅動層例程,調用驅動層的函數和標準接口來實現的。
除board、soc外,其他文件中(components、std)的demo是通用的,不與具體的硬件綁定,可以應用在多個硬件平臺中,其正常運行時需要將入口函數的參數傳入即可。如下所示為通用demo的示例:
圖6 通用demo示例
board文件下的demo可以直接在相應的硬件評估板上運行,其實現往往直接調用通用demo的入口函數,并根據硬件板的實際情況,準備好通用demo的必要條件。如下所示為可以直接在ZLG116上運行的demo:
圖7 可以在硬件板直接運行的demo
以上就是AMetal驅動框架詳解之配置文件與例程文件的全部內容,主要為大家介紹配置文件和例程文件的使用,也便于后續可以熟練使用AMetal提供的示例文件。
-
芯片
+關注
關注
459文章
52145瀏覽量
435991 -
硬件
+關注
關注
11文章
3459瀏覽量
67181 -
驅動框架
+關注
關注
0文章
14瀏覽量
4138
發布評論請先 登錄
探討PROE的配置文件——系統配置文件config.pro
如何搭建工程讓MCU運行起來

SpringBoot配置文件application
linux修改網卡ip配置文件
ROS編寫參數配置文件示例程序

評論