總網頁瀏覽量

2019年11月22日 星期五

現代計算機系統核心硬體常見平台的分類與簡介概述


歡迎透過合法的方式分享此文內容,若要轉載/轉貼,請明確貼出此原始連結並標示作者基本資訊請勿抄襲及非法轉貼(例如擷取內文但並未註明出處)

之前有寫過之前兩篇關於MCU觀念的介紹文章:
(1) 8051 MCU好教材分享 & 錯誤觀念闢除
(2) Arduino到底是什麼? MCU又是什麼?

這邊延續相關的方向,按照目前個人長年觀察現代常見的計算機平台做一些分類,並進行簡單描述介紹:

1. 微控制器MCU(又稱單晶片微電腦),例如8051、Arduino uno/nano/fio上面的Atmage328 或STM32等等,通常用在控制和裝置應用類的產品,通常負責硬體控制和少量資料運算的處理任務,但現在也有處理較多資料的MCU出現(例如適合做有GUI的裝置產品的MCU)

2. 小SoC,類似MCU但是外加了針對應用而需要俱備的硬體單元,例如TI公司的低功耗藍芽晶片CC2540或Zigbee WSN晶片CC2530

3.大SoC,又稱應用處理器,大型系統晶片,通常用在網路多媒體應用類產品,現代許多SoC會有多核心的主CPU、GPU、多媒體編解碼器和基本周邊硬體單元,軟體方面通常會跑一個大OS的嵌入式版本做為主要系統軟體。像是開發板類的樹莓派、Pandaboard、Beaglebone black,或已經是完整產品類的智慧型手機、數位電視或機上盒上面的主晶片即為此類
這邊舉些實例(包含上面說的一些常見板子上面的主晶片)來看,全志科技Allwinner H6就算一顆這裡所指的大SoC,或者像是Beaglebone black上面的TI AMS335X或Pandaboard上面的OMAP4460或者Raspberry Pi上面的BCM283X這些SoC都屬於這類

4. PC常用的MPU(當然也不一定只有用在PC),早期的晶片例如x86指令集架構的8086/286/386等。近代的i5、i7 這種晶片(也不一定是只有純CPU, 或許有加入一些額外的硬體單元,但主要大多的內容就是CPU單元的內容,周邊裝置的數量基本上不會像是MCU或SoC那樣有一堆周邊)

5.其他交叉於上述介紹類別的性質或者上述沒很完整描述到的種類,例如一些含有CPU的可程式化的控制器(如觸控控制器、馬達控制器,其實類似上述小SoC或者可說是特定應用所設計的MCU擴增版)


而這些平台中的CPU的種類部分(類別4本身性質就是CPU所以就不說了)

也要注意一下: MCU與SoC這類的平台有時也被稱之為「嵌入式微處理器」(Embedded Microprocessor),例如Atmel/Microchip公司的SAM9G20或者ST公司的STM32MP1(ST的MPU系列是屬於這裡所說的Embedded Microprocessor),但這些並不是傳統的「微處理器」或「微處理機」。因為時代的演進促進平台的多元化,容易使人混淆,導致這些名詞之間不論是在許多書籍或網路資料中都常被混淆解釋,當然這些名詞的定義也有過少數爭議)。

2和3和5類的平台通常是based on 8051的CPU core(8 bits)或ARM Cortex-Mx(32bits)系列的CPU做為其主要CPU(當然也有其他額外的,例如AVR),這類CPU很多都不具有MMU(記憶體管理單元),當然也有極少數是具備MMU的。以頻率來說這類平台通常在數MHz到數十MHz等級(也有上百的)

而4的平台, 近年來多數通常是based on ARM Cortex-Ax系列的CPU做為其主要CPU,當然也有其他類別的CPU(例如MIPS),這類CPU很多都具有MMU。頻率通常在數百MHz到GHz等級


那以運行於這些平台上的軟韌體來說

例如1、2及5的範例類的平台很常只有Non-OS SW/FW或者只有RTOS或者跑小SoC常是跑網路協定堆疊軟體(也會有類似小OS的框架,例如TI出的for ZigBee WSN的Z-Stack)

第4類如果用在PC上就不用說了。而種類3的平台在產品用途上通常會跑Embedded Linux/Android,也可能跑RTOS

【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

2019年11月6日 星期三

【使用STM32CubeIDE進行STM32 MCU軟韌體開發】STM32CubeIDE之簡介與安裝流程


STM32CubeMX是一款於數年前由ST官方所推出的圖形化介面工具軟體

關於該工具軟體的主要功能,簡單來說,其功能為可讓使用者透過此圖形化的配置,進而由工具自動產生對應款式的STM32 MCU的硬體初始化程式碼(例如UART的初始化),其官方影片如連結

有了上述這個工具其實可大大減化STM32 MCU開發者的負擔,不必如同過去苦苦花許多時間去依依查詢MCU的硬體細節資料

而本篇文章要介紹的STM32CubeIDE則是更進一步整合了STM32CubeMX、ECLIPSE™/CDT framework 及GCC編譯工具鏈(toolchain)、GDB等工具的一款STM32 MCU軟韌體開發專用的整合開發環境(IDE, Integrated Development Environment)軟體

甚至在該IDE的編輯器裡面有一些強大的程式撰寫輔助功能,例如自動補齊(auto-completion)功能,可觀看下方官方網頁簡介影片裡面的demo進行了解。這邊簡單來介紹一下該功能: 假設程式開發者希望在main function裡面呼叫HAL_GPIO_TogglePin函式,在編輯器上面打了"HAL_GPIO_T",此時按下Alt+/ 斜線 (注意,官方影片裡面是寫Ctrl+Spacebar,這邊不太一樣),STM32CubeIDE編輯器就會自動將該函式給補齊到基本的格式"HAL_GPIO_TogglePin(GPIOx, GPIO_Pin)",有點類似Linux系統裡面的指令自動補齊功能。

STM32CubeIDE軟體下載官方網站與連結 (該網頁下方也有簡介影片)


而STM32CubeIDE的安裝流程簡單介紹如下:

(1)到ST官方網站去下載STM32CubeIDE安裝檔案,可選擇自己要使用的作業系統


看完並接受條約的話就按下ACCEPT繼續下一步


若不想要註冊帳號,則須要填寫email,ST官方系統會自動寄email到你填入的信箱地址


在email收信後得到下載附有連結的信,按下信中的Download now按鈕以進行下載




   (2) 安裝檔下載完成後,執行安裝檔案







選擇安裝路徑
注意,只能使用英文路徑,若選擇中文路徑則會有無法安裝的問題



安裝路徑選擇完之後,會出現燒錄器/debugger裝置的驅動程式安裝選項,原則上都勾選全部安裝即可,然後就按下Install開始進行安裝



安裝過程中會出現視窗詢問是否安裝一些裝置驅動程式,基本上都選擇"安裝"即可


安裝完成,按下Finish(可自由選擇是否建立桌面捷徑)



而關於該IDE進一步的使用方式介紹,若內容評估後覺得合適以靜態文章介紹,則將會再行分享



【若需要家教模式之嵌入式系統技術輔導 可來信洽談合作方式: iws6645@gmail.com】