[問題] 關於ARM系列MCU的函式庫

看板ASM (組合語言)作者時間5年前 (2018/08/07 14:42), 編輯推噓0(0021)
留言21則, 4人參與, 5年前最新討論串1/1
最近在學習使用ARM系列的MCU,我使用的是STM32系列的開發板,發現光是最基本的I/O 操作,就有直接操作暫存器、使用CMSIS函式庫、使用HAL函式庫等三種方式能做到。 目前理解是CMSIS是針對暫存器操作的抽象化實作,只要是Cortex M系列的MCU都通用, 可以很方便的在不同的IC間互相移植,並且減輕更換IC所造成的學習時間成本。 HAL感覺跟CMSIS有點接近,但只針對STM32系列有效。 目前用CubeMX產生出來的樣板專案好像是採用HAL,但實務上大家比較常看到哪一種呢? 另外還有兩個問題是個人滿好奇的,也許未來學習的過程就會得到解答,但如果各位先 進願意提前給我指點我會很感激: 看介紹CMSIS理念上的確是個很棒的東西,但是各家MCU周邊硬體百百款,CMSIS真的有辦 法包的下所有的周邊嗎? 另外就是CMSIS是ARM所主導的,所以理所當然只為ARM的Cortex M系列所用,但是根據以 往經驗,當面臨到換IC的情境下,沒辦法保證未來採用的一定是ARM系列的IC,也許會因 為各種考量換成其他架構的MCU。那麼用CMSIS或是HAL這類的函式庫對專案的可移植性或 可維護性是真的有幫助的嗎?畢竟要是真的換MCU架構了還是得全部打掉重來。 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.45.16 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1533624145.A.9C4.html

08/08 00:38, 5年前 , 1F
考慮移植性來說,直接操作暫存器是最糟的選項
08/08 00:38, 1F

08/08 00:38, 5年前 , 2F
新的MCU如果沒有抽象層,頂多自己做一個
08/08 00:38, 2F

08/08 00:39, 5年前 , 3F
總之就是要把"硬體相依"與"硬體無關"的程式碼完全分開
08/08 00:39, 3F

08/08 09:22, 5年前 , 4F
請問下James為什麼直接操作暫存器會最糟阿...
08/08 09:22, 4F

08/08 09:23, 5年前 , 5F
主要應用層的程式,跟MCU功能設定完全分離,不論用甚麼
08/08 09:23, 5F

08/08 09:24, 5年前 , 6F
架構應該都好換,除非是使用到MCU特殊功能
08/08 09:24, 6F

08/08 09:28, 5年前 , 7F
像我用ST的HAL就用的超不習慣,設定GPIO很麻煩...
08/08 09:28, 7F

08/08 10:10, 5年前 , 8F
ypyp你的意思是自己實作類似CMSIS或HAL的函式庫,把
08/08 10:10, 8F

08/08 10:11, 5年前 , 9F
底層操作跟程式邏輯分開嗎?
08/08 10:11, 9F

08/08 14:35, 5年前 , 10F
應用跟mcu底層是本來就要分開的,不論在CMSIS或HAL,但
08/08 14:35, 10F

08/08 14:35, 5年前 , 11F
是我會依自己習慣去改,像ST的HAL就包超多.c跟.h,看了
08/08 14:35, 11F

08/08 14:35, 5年前 , 12F
就煩,要k這種架構寫出來的code也很煩,我都把他移掉,
08/08 14:35, 12F

08/08 14:35, 5年前 , 13F
改成自己的東西,好處是很淺顯易懂,壞處是要花時間,
08/08 14:35, 13F

08/08 14:35, 5年前 , 14F
而且不是大眾平台,別人要用會不方便,我其實也在找看
08/08 14:35, 14F

08/08 14:35, 5年前 , 15F
有沒有別的比較好的方法
08/08 14:35, 15F

08/08 16:16, 5年前 , 16F
看來大家都在想一樣的事呢XD
08/08 16:16, 16F

08/10 01:37, 5年前 , 17F
寫習慣就好,ST、新唐、Microchip的Crotex-M都有在用
08/10 01:37, 17F

08/10 01:38, 5年前 , 18F
沒甚麼差,轉換也不過一天的事情。頂多USB、Ethernet
08/10 01:38, 18F

08/10 01:39, 5年前 , 19F
這類比較麻煩的周邊要花點時間處理。
08/10 01:39, 19F

08/10 01:40, 5年前 , 20F
反正看顧客要甚麼就用甚麼方案....自己選的話就用ST
08/10 01:40, 20F

08/10 01:40, 5年前 , 21F
的,CubeMx初始化可以省不少時間。
08/10 01:40, 21F
文章代碼(AID): #1RQJzHd4 (ASM)
文章代碼(AID): #1RQJzHd4 (ASM)