亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        STM32開發(fā)庫介紹與比較

        2021-06-30 01:43:34蘇州大學(xué)工程學(xué)院鄒霄貝
        電子世界 2021年11期
        關(guān)鍵詞:外設(shè)固件中間件

        蘇州大學(xué)工程學(xué)院 鄒霄貝

        目前,意法半導(dǎo)體公司就STM32的開發(fā)提供了數(shù)種開發(fā)工具,它們各有其優(yōu)缺點和適用對象。本文將從使用方法、便攜性、工具的抽象程度以及它們的局限性等方面對STM32Snippets,標準外設(shè)庫以及基于STM32Cube的HAL APIs和Low-Layer APIs進行介紹,同時對它們的特點進行橫向的比較和分析。

        目前,STM32嵌入式的開發(fā)和使用主要依靠于STM32嵌入式軟件提供的各種開發(fā)庫及其配套的軟件,選擇合適的軟件會讓STM32的開發(fā)和使用事半功倍。而不同的開發(fā)庫的便攜性、抽象程度和適用的芯片系列等都各不相同,開發(fā)的需求與庫的選擇也息息相關(guān)。

        因此,本文對目前SMT32官方提供的STM32Snippets、標準外設(shè)庫、HAL APIs和Low-Layer APIs的內(nèi)容和特點進行了整合研究,并對其適用范圍進行了分析對比,從而獲得對開發(fā)庫的更全面的認識。

        1 STM32Snippets

        STM32Snippets是高度兼容的代碼示例的集合,可以直接應(yīng)用于文檔和軟件包,這些示例通過進行直接寄存器訪問來減少代碼量,從而STM32的MCU的性能最大化利用。

        由于STM32Snippets是操作于最底層的,因此需要開發(fā)者對寄存器進行直接操作,開發(fā)者需要對底層結(jié)構(gòu)和寄存器比較了解,同時需要對匯編程序有較深的理解。同時,因為STM32Snippets具有能進行寄存器級別的訪問和調(diào)試的特點,在提供的開發(fā)庫中它的優(yōu)化程度最高。

        但是,STM32Snippets僅使用于STM32系列,采取這種方式進行項目的開發(fā)很難實現(xiàn)不同系列之間的移植。同時,STM32并不涵蓋例如USB之類的外設(shè)的代碼段示例,如果要進行一些復(fù)雜的外設(shè)應(yīng)用,可能需要額外耗費很多的時間。此外,STM32Snippets僅可在STM32 L0和F0系列上使用。

        2 標準外設(shè)庫

        標準外設(shè)庫(即Standard Peripheral Libraries,簡稱SPL),是涵蓋STM32外設(shè)的C語言庫,標準外設(shè)庫將一些基本的寄存器操作封裝成庫函數(shù)使用,較HAL庫而言,依舊接近于寄存器操作。

        標準外設(shè)庫目前幾乎是使用者最多的庫,在STM32Cube發(fā)布前,幾乎所有的STM32用戶均使用標準外設(shè)庫。標準外設(shè)庫覆蓋了所有的外圍設(shè)備,極大地方便了項目的開發(fā),提高了編程效率。同時,標準固件庫還涵蓋許多復(fù)雜中間件的擴展,例如USB、TCPIP、Graphics等,進一步方便了使用者的開發(fā)。標準固件庫的結(jié)構(gòu)清晰,在調(diào)用上比較簡單,且各系列的標準固件庫差別不大,在不同固件庫間進行程序移植時也比較簡單。

        圖1所示為STM32F10xxx系列的文件基本架構(gòu),其他系列的文件架構(gòu)基本與STM32F10xxx系列一致。

        圖1 STM32F10xxx標準外設(shè)庫架構(gòu)

        但是,標準固件庫僅適用于特定的STM32系列,并且沒有通用的硬件抽象層應(yīng)用程序接口,并不是每一個系列間都有統(tǒng)一的中間件庫,在系列間的移植性較差。同時,在選擇標準固件庫時也要注意,標準固件庫不支持從STM32 L0,L4和F7開始的STM32系列。

        3 基于STM32Cube的開發(fā)庫(圖2)

        圖2 STM32Cube功能示意圖

        STM32Cube是一個功能齊全的軟件包,它包含直接基于STM32外設(shè)寄存器的應(yīng)用程序接口(API),因此在整個STM32內(nèi)部都具有高度可移植性。同樣,STM32Cube中包含和SPL外設(shè)相似的初始化API。

        STM32Cube還提供了STM32CubeMX這個可視化配置軟件,通過STM32CubeMX,用戶可以通過圖形向?qū)崿F(xiàn)生成初始化C代碼,引腳多路復(fù)用,時鐘樹設(shè)置,外圍設(shè)備配置和中間件設(shè)置等。STM32Cube軟件包中包含調(diào)用標準化的API的可移植性硬件抽象層庫(即HAL庫)、輕量高效的底層API(即LL庫)等內(nèi)容。

        3.1 HAL APIs

        HAL庫,即硬件抽象層,它涵蓋一整套中間件,可以實現(xiàn)系列間的代碼移植,同時,HAL庫也支持通過STM32CubeMX可視化操作生成代碼。

        HAL庫是基于一個非限制性的BSD許可協(xié)議而發(fā)布的開源代碼。ST制作的中間件堆棧帶有允許輕松重用的許可模式,只要是在ST公司的MCU芯片上使用,庫中的中間件(USB主機/設(shè)備庫,STemWin)協(xié)議棧即被允許隨便修改,并可以反復(fù)使用。

        相較于標準外設(shè)庫,HAL庫更加抽象化,可移植性更高,目前HAL庫已經(jīng)支持包括F7在內(nèi)的全部產(chǎn)品。但是,HAL庫較之其他開發(fā)庫占用了更多的軟件資源,執(zhí)行代碼的所需要的時間更長,優(yōu)化程度較低。

        3.2 Low-Layer APIs(圖3)

        圖3 STM32Cube結(jié)構(gòu)

        Low-Layer庫,簡稱為LL庫,也是包含在STM32Cube中的庫,就HAL庫而言,它更加底層,進行直接寄存器操作。它可以與STM32CubeMX配合使用以生成STM32L0/F0/F3/L4的初始化代碼。

        相較于HAL庫的低效率,在對低性能(M0)或者低功耗(L系列)的芯片編程時,LL庫可以作為HAL庫的一個很好的替代品進行使用?;贚L庫的驅(qū)動程序,涵蓋可指定參數(shù)的外圍設(shè)備初始化函數(shù),重置初始化數(shù)據(jù)結(jié)構(gòu)的函數(shù),內(nèi)聯(lián)函數(shù)可實現(xiàn)直接訪問原子寄存器。同時LL庫既可以獨立運行,又可以和HAL庫一起混合運行,更為優(yōu)化的同時也更加適應(yīng)多種情況。

        盡管HAL庫和LL庫可以同時使用,但是LL不能與同一外圍設(shè)備實例的HAL一起使用。不能同時使用兩個API在同一IP上運行并行進程,但允許順序使用。

        4 各庫比較

        根據(jù)官方提供的數(shù)據(jù),獲得如表1的各開發(fā)庫特征比較。

        表1 各開發(fā)庫特征比較

        由表1可知,每個開發(fā)庫都各有其長處和局限性。STM32Snippets作為代碼段示例,MPU和存儲器的使用效率很高,因此它的優(yōu)化程度很高,但是它的可移植性、簡易度等參數(shù)都很低,對開發(fā)者的總體要求很高。不同的開發(fā)庫的特點要求開發(fā)者根據(jù)使用的STM32類型、開發(fā)項目對效率、性能、可移植性的要求來選擇需要的庫,從而實現(xiàn)更高效的開發(fā)。

        結(jié)論:就目前STM32官方所提供的開發(fā)庫而言,STM32Snippets代碼效率極高但是對開發(fā)者對底層架構(gòu)和匯編語言的理解程度有較高的要求;標準固件庫硬件覆蓋完備,提供對寄存器操作的庫函數(shù),但是目前只有部分STM32系列提供了固件庫,不同系列之間的移植有一定困難;作為STM32公司大力推廣的HAL庫,覆蓋了全部的硬件外設(shè),可移植性極高,但是代碼優(yōu)化程度較低,占用軟件資源;LL庫接近底層,優(yōu)化程度高,但是不能在系列間移植,同時也需要開發(fā)者對寄存器有一定的了解。

        猜你喜歡
        外設(shè)固件中間件
        RFID中間件技術(shù)及其應(yīng)用研究
        電子制作(2018年14期)2018-08-21 01:38:10
        基于VanConnect中間件的設(shè)計與開發(fā)
        電子測試(2018年10期)2018-06-26 05:54:02
        基于固件的遠程身份認證
        提取ROM固件中的APP
        電腦愛好者(2015年7期)2015-04-09 08:54:02
        中間件在高速公路領(lǐng)域的應(yīng)用
        一種通過USB接口的可靠固件升級技術(shù)
        Microchip推出具備雙ADC外設(shè)的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
        奧林巴斯XZ—2新固件升級
        中國攝影(2014年1期)2014-02-24 01:50:23
        一種支持智能環(huán)境構(gòu)建的中間件
        貼身呵護 必不可少的PSP外設(shè)
        成av人片一区二区三区久久| 国产精品露脸张开双腿| 九九热在线视频观看这里只有精品| 久久久国产精品va麻豆| 在线看无码的免费网站| 人妻无码一区二区视频| 亚洲色欲色欲www在线播放| 久久精品一区二区免费播放| 国产亚洲精品A在线无码| 亚洲av永久无码精品成人| 精品国产一区二区三区毛片| 男女主共患难日久生情的古言| 成年丰满熟妇午夜免费视频| 内射欧美老妇wbb| 欧美巨大巨粗黑人性aaaaaa| 精品乱码久久久久久中文字幕| 亚洲AV无码国产精品色午夜软件| 偷拍与自偷拍亚洲精品| 女优av一区二区在线观看| 亚洲欧洲免费无码| 夫妇交换性三中文字幕| 亚洲精品字幕在线观看| 日韩一二三四精品免费| 亚洲国产成人精品久久成人| 尤物蜜桃视频一区二区三区| 激情综合五月开心婷婷| 日韩人妻无码一区二区三区久久| 97超级碰碰人妻中文字幕| 国产美女自拍国语对白| 中文字幕人乱码中文字幕乱码在线 | 亚洲高清乱码午夜电影网| 久久久久人妻一区精品色欧美| 真实国产乱视频国语| 日本一区二区三区在线| av一区二区在线免费观看| 国内精品久久久久影院薰衣草| 人人妻人人添人人爽日韩欧美| 国产美女久久久亚洲综合| 最近中文字幕精品在线| 亚洲日韩国产欧美一区二区三区| 91日本精品国产免|