女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    8930

    瀏覽量

    150587
  • STM32
    +關注

    關注

    2288

    文章

    10999

    瀏覽量

    362030
  • 代碼
    +關注

    關注

    30

    文章

    4886

    瀏覽量

    70206
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    PCB標準封裝文件

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

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

    本來轉自:DeepHubIMBA本文系統講解從基本強化學習方法到高級技術(如PPO、A3C、PlaNet等)的實現原理與編碼過程,旨在通過理論結合代碼的方式,構建對強化學習算法的全面理解。
    的頭像 發表于 04-23 13:22 ?239次閱讀
    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 ?214次閱讀
    如何采集雷達流量計(SCJ-<b class='flag-5'>LL</b>21)數據

    HAL標準你會選擇哪種

    HAL標準你會選擇哪種
    發表于 03-10 06:25

    如何將HAL轉為LL

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

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

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

    AKI跨語言調用神助攻C/C++代碼遷移至HarmonyOS NEXT

    )開發框架。它極大地簡化了JS與C/C++之間的跨語言訪問,開發者提供了一種邊界性編程體驗友好的解決方案。通過AKI,開發者可以使用讓代碼更易讀的語法糖,實現JS與C/C++之間的無障礙跨語言互調
    發表于 01-02 17:08

    ODX診斷數據轉換工具 - DDC

    問卷直接轉換標準的ODX(2.2.0)數據,顯著提高工作效率。還可將多個不同控制的ODX文件打包成整車級別的PDX文件,用于管控車型診斷數據
    的頭像 發表于 12-31 11:22 ?443次閱讀
    ODX診斷數據<b class='flag-5'>庫</b><b class='flag-5'>轉換</b>工具 - DDC

    ADS129x采用三電極,RL LL的共模電壓如何提供?

    采用三電極,(RL LL和RLD),那么RL LL的共模電壓如何提供?我收集到如下2方法: 1.10M電阻上拉到RLD輸出 2.2個10M分壓到(AVDD+AVSS)/
    發表于 12-23 07:46

    聯想Z360 QD-ll7a獨立顯卡主板電路

    聯想Z360 QD-ll7a 獨立顯卡主板
    發表于 12-20 14:45 ?2次下載

    HAL在Arduino平臺上的使用

    ,適合于快速原型開發和教育。HAL(硬件抽象層)是一種在Arduino平臺上使用的軟件,它提供了一種標準化的方式來訪問硬件功能,使得開發者可以編寫更通用、更可移植的代碼。 1. 什
    的頭像 發表于 12-02 14:04 ?1371次閱讀

    HAL標準的區別 HAL與CMSIS的關系

    基本的輸入輸出、數學運算、字符串處理等功能。這些函數是獨立于硬件平臺的,可以在不同的操作系統和硬件平臺上運行。標準的主要目的是提供一組通用的、可移植的函數,使得開發者可以專注于業務邏輯的實現,而不需要關心底層硬件的具體細節。
    的頭像 發表于 12-02 14:02 ?2846次閱讀

    KeyStone ll設備的硬件設計指南

    電子發燒友網站提供《KeyStone ll設備的硬件設計指南.pdf》資料免費下載
    發表于 10-12 14:27 ?0次下載
    KeyStone <b class='flag-5'>ll</b>設備的硬件設計指南

    根據標準正降壓轉換器設計負升壓轉換器

    電子發燒友網站提供《根據標準正降壓轉換器設計負升壓轉換器.pdf》資料免費下載
    發表于 08-26 10:01 ?0次下載
    根據<b class='flag-5'>標準</b>正降壓<b class='flag-5'>轉換器</b>設計負升壓<b class='flag-5'>轉換器</b>

    STM32G030在上電第一次調用LL_RTC_DeInit(RTC) 會在LL_RTC_EnterInitMode()里進入超時等待,為什么?

    1, 在上電第一次調用 LL_RTC_DeInit(RTC) 會在 LL_RTC_EnterInitMode()里進入超時等待 2, 但是增加LL_RCC_EnableRTC();在調
    發表于 05-31 06:28