今天分享幾點內容:
1.介紹ST推出的三種庫;
2.直接操作寄存器及三種ST庫的代碼性能對比;
3.STM32CubeMX直接生成Cube LL庫函數(shù)的方法;
4.STM32標準外設庫SPL轉換成Cube LL的方法;
1介紹ST推出的三種庫
1.標準外設庫:Standard Peripheral Libraries,簡寫SPL.
2.Cube硬件抽象層庫:STM32Cube Hardware Abstraction Layer,簡寫Cube HAL.
3.Cube底層庫:STM32Cube Low-Layer,簡寫Cube LL.
開發(fā)STM32常見的除了直接讀寫(操作)寄存器之外,就是使用ST推出的庫函數(shù)進行開發(fā)。
這三種庫中最早推出的是標準外設庫SPL,所以在推出STM32Cube HAL之前的大部分攻城獅都喜歡使用標準外設庫對STM32進行開發(fā)。
隨著STM32Cube HAL的推出,很多攻城獅(包括以前的,和新初學的)就開始著手轉入使用STM32Cube HAL進行開發(fā),原因在于可以使用STM32CubeMX這套圖形化的工程直接生成初始化代碼和相應工程文件,極大地方便和節(jié)省了攻城獅的時間。
但是,使用STM32Cube HAL開發(fā),很多攻城獅發(fā)現(xiàn)一個問題,使用STM32Cube HAL開發(fā)生成的代碼量比標準外設庫的要大,而且執(zhí)行的效率也不夠高。所以,ST團隊就著手開發(fā)了一套技能滿足標準外設庫優(yōu)點,又能滿足STM32Cube HAL優(yōu)點的庫,那就是STM32Cube LL。
STM32Cube LL是2017年推出的,目前還處于研發(fā)初期。因此,網上有許多開發(fā)者發(fā)現(xiàn)了一些問題,不過相信隨著時間的推移,這些bug都會得到解決。
2直接操作寄存器及三種ST庫的代碼性能對比
Cube LL庫的推出,就是因為發(fā)現(xiàn)了【標準外設庫】及【Cube HAL庫】存在的不足才推出。
因此,本節(jié)讓大家了解一下直接操作寄存器、標準外設庫SPL、Cube HAL庫和Cube LL庫這四種方法的代碼性能對比。

這個測試結果來自ST社區(qū),在網上搜索Cube LL都能找到,結果已經很明顯對比出來這四種方式的差異(不要說你看不來這個結果哦)。
針對上圖(GPIO翻轉、TIM PWM 輸出、ADC DMA 數(shù)據(jù)采集和DMA M2M四組數(shù)據(jù),分別對Flash 占用量、 SRAM 占用量和執(zhí)行代碼的效率這三項指標對比測試),我這里簡單講幾點:
1.ROM代碼和RAM占用量最小的屬于直接操作寄存器WED,對于ROM資源較小的芯片具有優(yōu)勢;
2.執(zhí)行效率最高的也屬于WED,但是代碼編輯、移植性和可讀寫都較差。一般不建議使用該方式(其實匯編語言比這還有優(yōu)勢)
3.三項指標中,除了WED之外,SPL和Cube LL相近(不相上下),也相比Cube HAL就有優(yōu)勢。所以,SPL和Cube LL是四種之中最佳選擇的兩種。
4.SPL和Cube LL各有特點:SPL庫成熟,可讀性(特別針對初學者)很好,查找問題也方便;Cube LL可以使用STM32CubeMX圖形化工具直接生產初始化代碼和工程,在這方便也具有明顯優(yōu)勢。
3STM32CubeMX直接生成Cube LL庫函數(shù)的方法
這一節(jié)內容簡述一下,主要就是你要學會使用STM32CubeMX這個圖形化工具。
我們可以使用STM32CubeMX這個工具生產Cube HAL和Cube LL兩種不同庫的代碼工程,就是需要通過配置,選擇不同的庫。
在你相關配置都就緒,準備生成代碼工程之前Project -> Settings ->Advanced Settings選擇LL即可(默認是HAL)。

零基礎的朋友可以參看下面文字:
1.STM32CubeMX介紹、下載與安裝
2.STM32CubeMX使用方法及功能介紹
3.STM32CubeMX新建工程+基本IO配置過程
4STM32標準外設庫SPL轉換成Cube LL的方法
這ST為了使更多攻城獅使用Cube LL庫,專門做了一個兼容個轉換工具,就是【SPL2LL_Converter】,它可以將你之前標準庫的代碼轉換成Cube LL庫的代碼,方法比較簡單。
SPL2LL-Converter網址:
https://www.stmicroelectronics.com.cn/zh/development-tools/spl2ll-converter.html
在上面網址就可找到相關文檔和下載轉換工具。但需要提前安裝一個叫【ActivePerl】的工具。
activeperl下載地址:
https://www.activestate.com/activeperl/downloads

嫌麻煩的朋友可以到我的百度網盤下載:
http://pan.baidu.com/s/1dFMFwHF
提示:微信公眾號不支持外鏈接(復制鏈接到瀏覽器下載),網盤后期有可能失效。
轉換的操作比較簡單,打開轉換工具,找到需要轉換的源代碼文件夾,設置轉換后文件夾,點擊“Migrate”即可開始。

-
寄存器
+關注
關注
31文章
5608瀏覽量
129931 -
STM32
+關注
關注
2309文章
11161瀏覽量
373355 -
spl
+關注
關注
0文章
22瀏覽量
16749 -
標準外設庫
+關注
關注
0文章
16瀏覽量
3776
發(fā)布評論請先 登錄
pdf轉換成word文檔格式亂了
pdf如何轉換成pptx
國產MCU開始卷開發(fā)工具了?McuStudio是對STM32Cube的拙劣模仿還是真香逆襲?
對UART0輸入到串口的char型數(shù)據(jù)轉換成16進制的寄存器常用int型相關處理
STM32 學習達標標準:4 個維度,判斷你是否真正合格
.elf 轉換成.img 后,如何知道SPI flash 中的變量地址呢?
fn_u-boot-spl.bin和u-boot-spl.bin區(qū)別是什么?請問如何從u-boot-spl.bin生成fn_u-boot-spl.bin?
【米爾-STM32MP257開發(fā)板試用體驗】——測試米爾-STM32MP257開發(fā)板外設功能
GP9301B將0V到10V的模擬電壓輸入,線性轉換成0%-100%占空比PWM信號輸出
基于STM32 HAL庫與標準庫的esp8266接入機智云方案(二)
STM32標準外設庫SPL轉換成 Cube LL
評論