国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SPL2LL轉換器實現標準庫代碼遷移為LL庫的方法與內容

電子工程師 ? 來源:嵌入式專欄 ? 作者:strongerHuang ? 2021-04-24 09:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

早期開發STM32,大部分工程師都是基于標準庫進行開發,如果要換成LL庫,且需要復用以前代碼,該怎么辦呢?

下面就來給大家分享一下使用【SPL2LL轉換器】實現標準庫代碼遷移為LL庫的方法,以及相關內容。

1關于LL庫

LL庫,即STM32Cube Low-Layer,也叫Cube LL、Cube底層庫等。

開發STM32通常有四種“庫”,可以閱讀之前分享的文章進一步了解。

早在2014年,ST推出了STM32CubeMX這款工具,同步推出了對應的STM32Cube HAL庫。

但是,HAL存在一些問題:代碼量大、執行效率低等缺點。

因此,在2017年,ST推出了STM32Cube LL庫,目的就是為了解決的HAL庫的缺點,讓開發STM32的工程師有更多的選擇。

之前有工程師總結了的代碼性能:

6FrIny.jpeg

針對上圖(Flash、 SRAM 占用量和執行代碼的效率這三項指標對比測試)簡單講幾點:

1.ROM代碼和RAM占用量最小的屬于直接操作寄存器WED,對于ROM資源較小的芯片具有優勢;

2.執行效率最高的也屬于WED,但是代碼編輯、移植性和可讀寫都較差。(其實匯編語言比這還有優勢,一般沒有特殊要求,不建議使用該寄存器編程

3.三項指標中,除了WED之外,SPL和Cube LL相近(不相上下),也相比Cube HAL就有優勢。所以,SPL和Cube LL是四種之中最佳選擇的兩種。

4.SPL和Cube LL各有特點:SPL庫成熟,可讀性(特別針對初學者)很好,查找問題也方便;Cube LL可以使用STM32CubeMX圖形化工具直接生產初始化代碼和工程,在這方便也具有明顯優勢。

2為什么要用LL庫?

上面講述了關于LL庫,以及其他幾種庫的內容,你會發現,幾種庫開發STM32各有各的優勢。

1.對于RAM和Flash這種資源比較少的STM32,除了用標準外設庫之外,LL庫就是一個很好的選擇。

2.使用LL庫配置的代碼,相對自己參考寄存器手冊配置的代碼,LL庫API接口更規范,更具有移植性。

3.有些芯片,沒有標準外設庫,只有早期推出的STM32才有標準外設庫,包含F0、 F1、 F2、 F3、 F4、 L1:

M7BNZr.jpeg

新出來的(像F7、L4、G0等)這些芯片只能使用目前的HAL、LL庫,或者你自己參考手冊配置寄存器(不是特殊情況,我不建議自己配寄存器)。

3利用SPL2LL工具轉換代碼

SPL2LL,即標準外設庫轉LL庫的轉換器工具。

SPL2LL主要特點:

免費

顯示源代碼遷移狀態

生成C代碼,適用于IAR,Keil和GCC編譯器

支持Windows、Linux和MacOS操作系統

網址包含相關文檔和SPL2LL工具。

1.ActivePerl下載安裝 在使用SPL2LL工具之前,需要安裝【ActivePerl】這個工具,不然會提示錯誤:

Error : cannot find perl, please verify that you have perl (》5.24.1) installed and added to path

Then restart the application

YrIJNf.png

如果覺得下載麻煩,可以在我網盤:

https://pan.baidu.com/s/1_R21S93V9hzlJ8ZL1D4dKA

提取碼: cp37

(包含SPL2LL和ActivePerl工具)

2.安裝

SPL2LL工具不需要安裝,直接點開即可使用,但前提需要安裝【ActivePerl】工具。

【ActivePerl】安裝比較簡單,一路Next下去即可。

3YzqUz.png

aUBVna.png

ARBJ3m.png

QfIFZ3.png

3.使用SPL2LL

SPL2LL使用方法很簡單,選在源和目標的型號、路徑,然后執行即可。

IVza63.png

選擇好之后,點擊“Migrate”即可執行轉換。

AjMfuy.png

這里需要耐心等待,比較費時間,原理就是遍歷你源碼中標準庫,然后轉換成LL庫。

4.轉化代碼前后對比

RZz6Zr.png

你會發現,即使被屏蔽的代碼也進行了SPL轉LL。
編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 轉換器
    +關注

    關注

    27

    文章

    9418

    瀏覽量

    156337
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373415
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73960
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    立訊精密DP80LL系列線纜通過VESA官方認證

    1 月 14 日,立訊精密研發的的USB TYPE C TO fsDP 80LL Active Cable 3M產品,成功延續其技術領先優勢,穩居全球首批通過 VESA 官方認證的主動式 C
    的頭像 發表于 01-23 11:27 ?802次閱讀
    立訊精密DP80<b class='flag-5'>LL</b>系列線纜通過VESA官方認證

    1608 2.4G&5GHz 雙工 DPX1608LL80R2455A 技術解析

    1608 2.4G5GHz 雙工 DPX1608LL80R2455A 技術解析 在無線通信領域,雙工實現不同頻段信號分離與傳輸的關鍵器件。今天我們就來詳細解析一款 1608 2.
    的頭像 發表于 01-04 17:15 ?454次閱讀

    1608 2.4G&5GHz 雙工 DPX1608LL80R2455A 技術解析

    1608 2.4G5GHz 雙工 DPX1608LL80R2455A 技術解析 在無線通信領域,雙工實現不同頻段信號分離與合成的關鍵元件。今天我們就來詳細解析一款 1608 2.
    的頭像 發表于 12-18 16:55 ?434次閱讀

    探索Type 2LL:集Wi-Fi、藍牙和802.15.4于一體的三無線電模塊

    探索Type 2LL:集Wi-Fi、藍牙和802.15.4于一體的三無線電模塊 在當今的電子設備設計中,無線連接功能的集成度和性能至關重要。Murata的Type 2LL三無線電模塊就是這樣一款
    的頭像 發表于 12-16 15:40 ?995次閱讀

    標準C的區別

    主要的差異: 1.代碼(數據)量更小(對比上圖)。 2.缺少一些不常用標準庫函數,比如:文件 I/O 的庫函數。 3.微最大程度優化代碼
    發表于 12-09 07:49

    STM32已經用標準寫好的代碼,怎么導入RT THREAD?

    之前已經在裸機上實現了SAE J1939協議,因為要添加IOT 功能,現在想添加RT THREAD.因為之前寫裸機程序的時候用的是標準。而RT THREAD STUDIO自動生成的是HAL
    發表于 09-19 06:16

    怎么用LL命令讀取SPI?

    用cubemx構建工程,MDK開發,這個項目采用AD4020 20位2MSPS外置ADC,ADC轉換速率高達0.5us,而STM32H5用HAL的HAL_SPI_Receive(&
    發表于 09-09 08:17

    為什么要選擇采用TO-LL封裝的意法半導體SiC MOSFET

    采用TO-LL封裝的意法半導體SiC MOSFET將第3代STPOWER SiC技術的固有特性與TO-LL封裝出色的散熱和電流性能集于一身。這些設計元素共同實現了出色的開關性能、可靠性和熱管理功能,而附加的Kelvin源引線則可
    的頭像 發表于 06-09 09:57 ?962次閱讀

    基于STM32 HAL標準的esp8266接入機智云方案(二)

    ,我們還將討論如何移植HAL標準實現與機智云的兼容,幫助開發者更高效地完成項目的云平臺接入。代碼下載注意:此時手機app端的該設備
    的頭像 發表于 05-28 18:02 ?1402次閱讀
    基于STM32 HAL<b class='flag-5'>庫</b>與<b class='flag-5'>標準</b><b class='flag-5'>庫</b>的esp8266接入機智云方案(二)

    STM32已經用標準寫好的代碼,怎么導入RT THREAD?

    之前已經在裸機上實現了SAE J1939協議,因為要添加IOT 功能,現在想添加RT THREAD.因為之前寫裸機程序的時候用的是標準。而RT THREAD STUDIO自動生成的是HAL
    發表于 05-27 06:01

    PCB標準封裝文件

    PCB標準封裝文件
    發表于 05-22 17:43 ?10次下載

    18個常用的強化學習算法整理:從基礎方法到高級模型的理論技術與代碼實現

    本來轉自:DeepHubIMBA本文系統講解從基本強化學習方法到高級技術(如PPO、A3C、PlaNet等)的實現原理與編碼過程,旨在通過理論結合代碼的方式,構建對強化學習算法的全面理解。
    的頭像 發表于 04-23 13:22 ?1610次閱讀
    18個常用的強化學習算法整理:從基礎<b class='flag-5'>方法</b>到高級模型的理論技術與<b class='flag-5'>代碼</b><b class='flag-5'>實現</b>

    如何采集雷達流量計(SCJ-LL21)數據

    SCJ-LL21雷達流量計是一款集成雷達測速,雷達測量水位的一體化測流產品,利用電磁波的多普勒效應測量水體流速,利用調頻連續波(FMCW)技術測量水位;內部集成信號處理,專有的流速計算算法,可以
    的頭像 發表于 04-10 11:13 ?758次閱讀
    如何采集雷達流量計(SCJ-<b class='flag-5'>LL</b>21)數據

    如何將HAL轉為LL

    怎么將HAL轉為LL
    發表于 03-10 06:08

    請問STM32G431 flash和can為什么沒有LL

    STM32G431 flash和can為什么沒有LL
    發表于 03-07 06:48