天天看點

授人以漁:stm32資料查詢技巧

摘要:本章以stm32f103作為案例向大家講解arm公司和st公司的關系以及我們在對stm32開發時需要如何正确的查找手冊。

ARM公司和ST公司的關系

這裡要從一塊晶片的生産說起,比如我們要生成一款晶片,我們可以自己涉及核心,涉及好了之後就叫XXX架構晶片,但是一般情況下不會這麼做,因為設計核心十分複雜,我們可以向出售核心的公司購買核心來使用即可。

目前市面上主流的核心有ARM架構核心對應“精簡指令集”和x86架構核心對應“複雜指令集”。

為什麼架構決定了指令集?因為設計架構的本質就是搭建一些邏輯電路,這些電路決定了遇到特定的二進制資料(指令),就執行相應的操作。

這裡以ARM指令集為例,mov r0, r1 将r1寄存器中的資料讀到r0寄存器中,STM32晶片看到的就是一串長度為4位元組的二進制資料,核心中的“門電路”會将這串二進制資料解析并進行一連串的操作(将r1寄存器中的資料讀到r0寄存器中),是以核心的架構就決定了指令集,越複雜的核心支援的指令集就越多,并且一條指令能處理的事情就越多。

指令集是不是越複雜越好?其實并不是這樣,複雜指令集帶來了一些的問題:功耗太大、發熱量大、80%指令不常用等等問題,是以我們要根據晶片的用途來權衡采用什麼核心。

這裡說一個鲲鵬伺服器的案例:鲲鵬伺服器采用的就是基于ARM架構的CPU,這樣做的原因:

1、ARM指令集在鲲鵬所處的領域完全夠用,即使需要處理一個arm指令不支援的操作,隻需将多條指令一起指向就可以完成該操作。

2、x86架構的CPU随着核心内的門電路越來越多,因為工藝的問題和散熱的問題等,慢慢的達不到了“摩爾定律”,是以采用ARM架構的CPU并且用平行運算的“衆”核思想可以基于沿着“摩爾定律”走。

3、學術研究發現了複雜指令集中有80%的指令都不太常用,是以用精簡指令集不會造成浪費。

4、華為有ARMv8的永久授權。

ARM架構

Arm架構由ARM公司設計并提供授權,其對應指令集為“精簡指令集(RISC)”,我們的手機、智能電視等産品所采用的主要多半都是arm架構核心的。

X86架構

X86架構由Intel公司設計,具有代表的産品就是我們電腦中使用的i5、i7等等CPU,其對應指令集為複雜指令集,這意味着一條複雜指令集中的指令可以完成多條精簡指令集才能完成的操作,但是也面臨很多問題。

ARM公司

ARM公司是一家通過出售arm核心授權盈利的公司,自己從不生成晶片,他将核心的設計圖等等資料提供給購買了核心授權的公司,讓其自己去二次開發并生産晶片。下圖為arm公司設計的部分:

授人以漁:stm32資料查詢技巧

其中常見的有NVIC中斷控制器,核心包括了r0-r15寄存器、pc寄存器等等,是以我們要查詢上圖中給出的核心相關外設的資訊需要去查閱arm公司提供的參考手冊,例如《Arm cortex-M3參考手冊》。

ST公司

ST公司向arm公司購買了arm核心的授權,這裡舉個例子:stm32f103的cortex-m3核心就是一個授權,st公司将購買來的arm核心的設計進行二次開發。

下圖為st公司二次開發設計出來的部分:

授人以漁:stm32資料查詢技巧

紅框為ARM核心也就是arm公司設計的,其餘部分都是st公司二次開發設計出來的,最終被封裝到一個黑色的小盒子内并引出引腳供我們使用。常見的核心外部外設有定時器、GPIO控制器、序列槽等等,如果我們需要了解此類裝置就需要查閱st公司提供的參考手冊,例如《STM32F103參考手冊》。

如何查閱手冊

① 确定你要查詢的“外設”是核心中的還是核心外的,例如中斷控制器(NVIC)就是核心中的,“定時器”就是核心外的。

② 核心中的外設通過查閱ARM公司提供的參考手冊

③ 核心外的外設通過查閱ST公司提供的參考手冊

ARM公司資料下載下傳:

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0099c/index.html#

ST公司資料下載下傳:

https://www.st.com/content/st_com/en.html

如果需要下載下傳資料隻需自己注冊一個對應網站的賬号就可以免費下載下傳了,别再去花錢買資料啦。

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀