找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6105|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STMF10x庫文件介紹(core_cm3.c、core_cm3.c system_stm32f10x.h、system_stm32f10x.c)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:102668 發(fā)表于 2016-1-11 05:04 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
     用過stm32f10x有一段時間了,但是對其庫文件一直沒有一個清晰的了解,上午心血來潮,就想整理一下。
    首先什么是stm32庫,庫在c51單片機(jī)中應(yīng)該是看不到,因?yàn)閏51單片機(jī)都是直接操作寄存器來控制芯片,比如中斷,定時器,GPIO等等,配置的時候,需要一遍又一遍的看數(shù)據(jù)手冊,查看寄存器表,看看需要配置寄存器的哪些位,是配置0還是1。51單片機(jī)資源少,直接配置寄存器所以看起來并不是那么麻煩,但是stm32f10x的資源相比普通51單片機(jī)多較多,直接配置寄存器會變得很繁瑣。這時候就出現(xiàn)了庫。
    庫是架設(shè)(位于)在寄存器和用戶驅(qū)動程序之間的代碼,向上給用戶提供配置底層寄存器的接口,?向下得到用戶的配置信息后,對底層寄存器進(jìn)行配置。因?yàn)閹斓拇嬖,用戶不需要直接按位配置底層寄存器了,只需配置庫提供的函?shù)接口,對寄存器的操作,交給庫函數(shù)來完成。
    STM32的3.5版庫可以直接從官網(wǎng)獲得?,進(jìn)入庫目錄STM32F10x_StdPeriph_Lib_V3.5.0,其中有Libraries文件夾,里面包含驅(qū)動庫的源碼和啟動文件;其他比如Project文件夾中是一些例程;還有HTML文檔,是庫幫助文檔,主要是告訴用戶如何使用驅(qū)動庫來編寫自己的應(yīng)用程序。

STM32F10x_StdPeriph_Lib_V3.5.0


       雙擊打開Libraries文件夾,可以看到里面有倆個文件夾,CMSIS和STM32F10x_StdPeriph_Driver.先來說說什么是CMSIS,考慮一下,應(yīng)該是個簡寫,其全稱是cortexmicrocontroller software interfacestandard,是ARM與芯片廠商建立的一種標(biāo)準(zhǔn),CMSIS標(biāo)準(zhǔn)中包含內(nèi)核函數(shù)層和設(shè)備外設(shè)訪問層,內(nèi)核函數(shù)層包含內(nèi)核寄存器的名稱、地址定義,主要有ARM公司提供;設(shè)備外設(shè)訪問層,提供了核外外設(shè)或者片上外設(shè)的地址和中斷定義,主要有芯片廠商提供。

CoreSupport文件夾


    先說說CMSIS文件夾,CMSIS->CM3,可以看到CoreSupport和DeviceSupport倆個文件,倆個文件分別指的是內(nèi)核函數(shù)層和核外外設(shè)訪問層。點(diǎn)開CoreSupport文件夾可以看到core_cm3.h和core_cm3.h文件,core_cm3.c文件包含進(jìn)入M3內(nèi)核的接口,內(nèi)核寄存器等等,core_cm3.c和啟動文件一樣,有ARM公司提供,都是底層文件。

DeviceSupport->ST->??STM32F10x文件夾


  進(jìn)入DeviceSupport->ST->??STM32F10x文件夾,可以看到:包含stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h文件以及startup文件夾。先談?wù)剆tartup文件夾吧,里面是一系列的系統(tǒng)啟動文件,都是由會變語言編寫的?,啟動文件的是處理器上電復(fù)位后最先運(yùn)行的一段匯編程序,其作用是初始化堆棧指針SP、初始化程序計數(shù)器PC、設(shè)置堆、棧的大小、設(shè)置異常向量的入口地址,配置外部的SRAM,設(shè)置C庫的入口分支為_main.所以啟動文件作用很重要。
  此外,stm32f10x.h文件是一個非常底層的文件?,它的作用是定義了寄存器的地址和使用的結(jié)構(gòu)體封裝,處理器廠商都會對內(nèi)存的操作封裝成一個宏,即我們所說的寄存器,這些都是定義在stm32f10x.h文件中。?system_stm32f10x.c是由st公司提供的,該文件的功能是設(shè)置系統(tǒng)的時鐘和總線時鐘,system_stm32f10x.h是systsm_sym32f10x.c的頭文件,system_stm32f10x.c會用到鎖相環(huán)(PLL,因?yàn)檫@個文件就是配置時鐘嘛),所以必然要用到寄存器,所以需要包括stm32f10x.h文件。?
  最后說說?STM32F10x_StdPeriph_Driver文件夾,?這里是設(shè)備外設(shè)部分函數(shù)庫,里面的src文件夾是是設(shè)備外設(shè)的驅(qū)動程序,inc是對應(yīng)的頭文件。用到什么設(shè)備外設(shè),就添加相應(yīng)的設(shè)備外設(shè)文件進(jìn)去。

inc文件夾



src文件夾



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:302429 發(fā)表于 2018-4-25 10:20 | 只看該作者
總結(jié)的很好,可以再詳細(xì)一點(diǎn)。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表