1. 程式人生 > >STM32F429 >> 3. STM32 韌體庫

STM32F429 >> 3. STM32 韌體庫

在這裡插入圖片描述
CMSIS 標準中最主要的為 CMSIS 核心層,它包括了:

  1. 核心函式層:其中包含用於訪問核心暫存器的名稱、地址定義;
  2. 裝置外設訪問層:提供了片上的核外外設的地址和中斷定義。

庫目錄,檔案簡介

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 檔案中:

  1. Libraries:資料夾下是驅動庫的原始碼及啟動檔案。
  2. Project :資料夾下是用驅動庫寫的例子和工程模板。
  3. Utilities:包含了基於 ST 官方實驗板的例程,以及第三方軟體庫,如 emwin 圖形軟體
    庫、fatfs 檔案系統。
  4. MCD-ST Liberty…:庫檔案的 License 說明。
  5. Release_Note.html::庫的版本更新說明。
  6. stm32f4xx_dsp_stdperiph…: 庫幫助文件,這是一個已經編譯好的 HTML 檔案,主要
    講述如何使用驅動庫來編寫自己的應用程式。

在使用庫開發時,我們需要把 libraries 目錄下的庫函式檔案新增到工程中,並查閱庫
幫助文件來了解 ST 提供的庫函式,這個文件說明了每一個庫函式的使用方法。

進入Libraries 資料夾:

關於核心與外設的庫檔案分別存放在 CMSIS 和STM32F4xx_StdPeriph_Driver 資料夾中

CMSIS 資料夾:

其中 Device 與 Include 中的檔案是我們使用得最多的。
Include:


在 Include 資料夾中包含了 的是位於 CMSIS 標準的核內裝置函式層的 Cortex-M 核通用
的標頭檔案,它們的作用是為那些採用 Cortex-M 核設計 SOC 的晶片商設計的晶片外設提供
一個進入核心的介面,定義了一些核心相關的暫存器(類似我們前面寫的 stm32f4xx.h 檔案,
但定義的是核心部分的暫存器)。

我們寫 STM32F4 的工程,必須用到其中的四個檔案:core_cm4.h、core_cmFunc.h、
corecmInstr.h、core_cmSimd.h

Device 資料夾:
在 Device 資料夾下的是具體晶片直接相關的檔案,包含啟動檔案、晶片外設暫存器定
義、系統時鐘初始化功能的一些檔案。

  1. system_stm32f4xx.c
    這個檔案包含了 STM32 晶片上電後初始化系統時鐘、擴充套件外部儲存器用的函式,例如
    我們前兩章提到供啟動檔案呼叫的“SystemInit”函式,用於上電後初始化時鐘,該函式的
    定義就儲存在 system_stm32f4xx.c 檔案。STM32F429 系列的晶片,呼叫庫的這個
    SystemInit 函式後,系統時鐘被初始化為 180MHz,如有需要可以修改這個檔案的內容,設
    置成自己所需的時鐘頻率。

  2. 啟動檔案
    在這個目錄下,還有很多資料夾,如“ARM”、“gcc_ride7”、“iar”等,這些檔案在這個目錄下,還有很多資料夾,如“ARM”、“gcc_ride7”、“iar”等,這些檔案
    夾下包含了對應編譯平臺的彙編啟動檔案,在實際使用時要根據編譯平臺來選擇。我們使
    用的 MDK 啟動檔案在“ARM”資料夾中。其中的“strartup_stm32f429_439xx.s”即為
    STM32F429 晶片的啟動檔案。

  3. stm32f4xx.h
    stm32f4xx.h 這個檔案非常重要,是一個 STM32 晶片底層相關的檔案。它是我們前兩
    章自己定義的“stm32f4xx.h”檔案的完整版,包含了 STM32 中所有的外設暫存器地址和結
    構體型別定義,在使用到 STM32 標準庫的地方都要包含這個標頭檔案。

STM32F10x_StdPeriph_Driver 資料夾:
STM32F4xx_StdPeriph_Driver 資料夾下有 inc(include 的縮寫)跟 src(source 的簡寫)
這兩個資料夾,這裡的檔案屬於 CMSIS 之外的的、晶片片上外設部分。
src 裡面是每個裝置外設的驅動源程式,inc 則是相對應的外設標頭檔案。src 及 inc 資料夾是 ST 標準庫的主要內容。
在 src 和 inc 資料夾裡的就是 ST 公司針對每個 STM32 外設而編寫的庫函式檔案,每個
外設對應一個 .c 和 .h 字尾的檔案。

misc.c 檔案,這個檔案提供了外設對核心中的
NVIC(中斷向量控制器)的訪問函式,在配置中斷時,我們必須把這個檔案新增到工程中。

stm32f4xx_it.c、 stm32f4xx_conf.h 檔案:
在這個檔案目錄下,存放了官方的一個庫工程模板,我們在用庫建立一個完整的工程
時,還需要新增這個目錄下的 stm32f4xx_it.c、stm32f4xx_it.h、stm32f4xx_conf.h 這三個文
件。

  1. stm32f4xx_it.c:這個檔案是專門用來編寫中斷服務函式的。
  2. stm32f4xx_conf.h:這個檔案被包含進 stm32f4xx.h 檔案。
  3. stm32f4xx_conf.h 這個檔案還可配置是否使用“斷言”編譯選項。

庫各檔案間關係:
在這裡插入圖片描述
在實際的使用庫開發工程的過程中,我們把位於 CMSIS 層的檔案包含進工程,除了特殊系統時鐘需要修改 system_stm32f4xx.c,其它檔案絲毫不用修改。

幫助文件

  1. STM32F4xx 參考手冊:這個檔案全方位介紹了 STM32 晶片的各種片上外設,它把 STM32 的時鐘、儲存器架構、及各種外設、暫存器都描述得清清楚楚。當我們對 STM32 的外設感到困惑時,可查閱這個文件。
  2. 《STM32F4xx 規格書》:本文件相當於 STM32 的 datasheet,包含了 STM32 晶片所有的引腳功能說明及儲存器架構、晶片外設架構說明。後面我們使用 STM32 其它外設時,常常需要查詢這個手冊,瞭解外設對應到 STM32 的哪個 GPIO 引腳。
  3. 《Cortex™-M4 核心參考手冊》:主要講解 STM32 核心暫存器相關的說明,例如系統定時器、中斷等暫存器。這部分的內容是《STM32F4xx 參考手冊》沒涉及到的核心部分的補充。相對來說,本文件雖然介紹了核心暫存器,但不如以下兩個文件詳細,要了解核心時,可作為以下兩個手冊的配合資料使用。
  4. 《Cortex-M3 權威指南》《cortex_m4_Technical Reference Manual》:這兩個手冊是由 ARM 公司提供的,它詳細講解了 Cortex 核心的架構和特性,要深入
    瞭解 Cortex-M 核心,這是首選,經典中的經典,其中 Cortex-M3 版本有中文版,方便學習。因為 Cortex-M4 核心與 Cortex-M3 核心大部分相同,可用它來學習,而Cortex-M4 新增的特性,則必須參考《cortex_m4_Technical Reference Manual》文件了,目前只有英文版。
  5. 《stm32f4xx_dsp_stdperiph_lib_um.chm》:這個就是本章提到的庫的幫助文件,在使用庫函式時,我們最好通過查閱此檔案來了解標準庫提供了哪些外設、函式原型或庫函式的呼叫的方法。也可以直接閱讀原始碼裡面的函式的函式說明。

庫幫助文件《stm32f4xx_dsp_stdperiph_lib_um.chm》