色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32Cube CubeIDE工程里的程序結構

冬至子 ? 來源:聊點嵌入式 ? 作者:聊點嵌入式 ? 2023-11-06 14:54 ? 次閱讀

今天,我們就來分析一下上次生成的CubeIDE點燈工程的源碼,看看跟我們拿來“逆向”的開發板例程源碼有什么異同。

1. 工程視圖下源碼文件夾

圖片

上圖中,Binaries和Includes文件夾我們不用去理它們,硬盤工程目錄下并沒有這兩個文件夾,是在編譯后產生的。另外3個文件夾是工程目錄里實際上有的,其中Debug文件夾是在Debug工程配置下編譯生成的,如果選擇Release工程配置并編譯,則會生成一個Release文件夾。

下面主要講一下Core和Drivers文件夾以及工程根目錄下的幾個文件。

其中Core文件夾是用戶代碼的存放地,包括源文件和頭文件。當然,你想重新建個文件夾放自己的代碼也是沒問題的。Core文件夾全打開后見下圖。頭文件和源文件是分開存放的,這跟硬盤上工程目錄是一致的。

Keil MDK就不一樣了,不會根據硬盤上工程目錄下的文件位置去自動生成工程目錄,需要手動去添加,哪怕你后期往工程目錄里添加文件,也照樣要在Keil里添加才出現在工程里。Eclipse就智能多了,自動識別硬盤上工程目錄里的文件,自動添加。

圖片

上圖中Inc目錄里前兩個頭文件就不說了,stm32f7xx_hal_conf.h的作用是要不要包含各種外設的頭文件,如果你手動添加了一個外設,就算把HAL庫里的外設驅動加進來了,也要在這個頭文件里打開這個外設功能。

當然,也可以直接在用戶代碼里包含新添加的外設頭文件,但是不推薦這樣做。另外要注冊自己的中斷回調函數,也在這個頭文件里開啟相應的開關,這個回調函數的事情以后也可以說一說。

stm32f7xx_it.h里放的都是中斷服務函數的申明,包括異常和中斷。

源文件里stm32f7xx_hal_msp.c里放的是與MCU相關的初始化代碼,msp也即MCU Specific Package,一般外設的msp代碼都放在外設對應的源文件中,stm32f7xx_hal_msp.c基本上沒什么東西。在CubeMX生成代碼時也可以選擇把外設的msp代碼都放在stm32f7xx_hal_msp.c中。

stm32f7xx_it.c里放的都是中斷服務函數,建議用戶中斷都放在這里,然后在相應的中斷函數里調用自己寫的中斷服務函數或是HAL庫提供的中斷服務函數。

syscalls.c里是系統調用的一些函數,可以改寫。例如想用printf函數通過串口發送消息,則可以把串口發送代碼添加進_write()函數里。

sysmem.c里有一個用來分配系統堆空間的函數。我們設置工程的時候只需要確定堆的大小即可,默認堆大小是512字節,如果在用戶代碼中不用malloc分配內存就不用改,完全夠用。

系統內存在運行時,內存空間是按下圖這樣分配的。其中newlib heap那一段就是堆空間。未使用的RAM空間在bbs段與堆之間。

圖片

system_stm32f7xx.c里包含系統初始化,時鐘初始化函數。其中系統初始化函數是系統啟動后,進入main函數之前執行的。

Startup文件夾下只有一個MCU對應的啟動文件,以后可以具體分析一下這個啟動文件,看一看系統啟動后要執行哪些操作,然后才進入main函數。

Drivers文件夾展開后如下圖。

圖片

基本上沒什么好說的,一個是ARM提供的CMSIS標準軟件接口,另一個是必要的HAL庫函數。

2. 工程根目錄下的文件分析

圖片

上圖中,第一個ioc文件不必多說,CubeMX生成的文件,后續可以改,重新生成代碼。第二個launch文件是我們上次配置工程運行選項時生成的,要下載代碼或調試代碼都得有這個文件。如果用的是Release工程配置,則會生成一個Release.launch。

后邊兩個文件是鏈接文件,gcc里需要鏈接文件告訴編譯器,各段要分別鏈接到什么地址上。其中FLASH.ld是我們常用的,生成的代碼要下載到FLASH中運行。RAM.ld會把代碼鏈接進RAM,調試的時候可以用,斷電后內容就消失了。

更改鏈接文件的方法如下:

圖片

好了,今天就講這么多,基本上CubeIDE工程里所有源文件的作用都講到了,具體怎么實現的還需要自己去看源代碼。接下來有時間講講啟動代碼。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1368

    瀏覽量

    114746
  • STM32
    +關注

    關注

    2270

    文章

    10904

    瀏覽量

    356302
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11573
  • STM32F7
    +關注

    關注

    1

    文章

    48

    瀏覽量

    8981
  • HAL庫
    +關注

    關注

    1

    文章

    121

    瀏覽量

    6285
收藏 人收藏

    評論

    相關推薦

    如何使用STM32CubeIDE創建一個基于STM32Cube庫的項目?

    如何使用STM32CubeIDE創建一個基于STM32Cube庫的項目?
    發表于 11-26 06:01

    如何安裝STM32Cube套件?

    該套件似乎由 STM32CubeMX、STM32CubeIDESTM32CubeProgrammer、STM32CubeMonitor、STM32
    發表于 01-16 06:09

    STM32Cube知識大全

    本文檔內容包含了STM32Cube知識大全,不同知識點的圖解,希望對大家有所幫助。
    發表于 09-12 19:18 ?26次下載
    <b class='flag-5'>STM32Cube</b>知識大全

    STM32Cube學習之一:點燈

    STM32Cube學習之一:點燈
    發表于 12-12 15:30 ?20次下載

    介紹STM32Cube的特點及應用

    2014年STM32 Roadshow:STM32Cube簡介
    的頭像 發表于 07-05 00:26 ?5128次閱讀

    使用STM32Cube輕松開發STM32

    STM32CubeSTM32開發更輕松
    的頭像 發表于 07-03 04:30 ?5683次閱讀

    STM32Cube到底包含哪些工具 ?

    STM32Cube到底包含哪些工具?
    的頭像 發表于 03-04 10:16 ?8478次閱讀

    STM32Cube介紹

    STM32Cube介紹
    發表于 12-08 15:51 ?19次下載
    <b class='flag-5'>STM32Cube</b>介紹

    精雕細琢見真章《STM32Cube高效開發教程》

    CubeMX和STM32CubeIDE作為開發軟件,系統性地介紹STM32的HAL庫開發技術的書。《STM32Cube高效開發教程》分為《基礎篇》和《高級篇》兩本,《高級篇》大約在10月份才能正式印刷出來。總結一下,本書具有
    發表于 12-31 19:28 ?341次下載
    精雕細琢見真章《<b class='flag-5'>STM32Cube</b>高效開發教程》

    DB3215 基于STM32 Amazon STM32Cube數據手冊

    DB3215 基于STM32 Amazon STM32Cube數據手冊
    發表于 11-23 08:27 ?1次下載
    DB3215 基于<b class='flag-5'>STM32</b> Amazon <b class='flag-5'>STM32Cube</b>數據手冊

    STM32Cube培訓指南

    電子發燒友網站提供《STM32Cube培訓指南.pdf》資料免費下載
    發表于 07-31 15:02 ?2次下載
    <b class='flag-5'>STM32Cube</b>培訓指南

    STM32Cube在線培訓

    電子發燒友網站提供《STM32Cube在線培訓.pdf》資料免費下載
    發表于 08-01 14:23 ?3次下載
    <b class='flag-5'>STM32Cube</b>在線培訓

    始使用X-CUBE-SBSFU STM32Cube擴展包

    電子發燒友網站提供《始使用X-CUBE-SBSFU STM32Cube擴展包.pdf》資料免費下載
    發表于 08-01 09:22 ?0次下載
    始使用X-<b class='flag-5'>CUBE</b>-SBSFU <b class='flag-5'>STM32Cube</b>擴展包

    STM32標準外設庫遷移至STM32Cube底層庫

    本應用筆記介紹了從現有使用STM32 SPL開發的基于STM32的應用程序遷移到使用STM32Cube LL驅動程序的任何其他類型的微控制器
    發表于 08-31 10:25 ?0次下載

    STM32Cube LL庫的巧妙之處

    STM32Cube LL庫的巧妙之處
    的頭像 發表于 09-27 16:26 ?1418次閱讀
    <b class='flag-5'>STM32Cube</b> LL庫的巧妙之處
    主站蜘蛛池模板: 99re2.久久热最新地址| 亚洲国产在线99视频| 亚洲国产在线综合018| www.伊人| 嗯啊…跟校草在教室里做h| 野花日本高清在线观看免费吗| 国产精品视频第一区二区三区| 日日噜噜夜夜躁躁狠狠| 超碰免费视频公开观看| 人淫阁| 99热久久这里只有精品视频| 久青草国产观看在线视频| 在线观看亚洲AV无码每日更新| 久久操韩国自偷拍| 一本道手机无码在线看| 久久精品天天中文字幕| 中国老女人xxhd69| 理论片在线观看片免费| 自拍视频亚洲综合在线精品| 老鸭窝毛片| 99精品中文字幕在线观看| 欧美日韩综合一区| 大陆女人内谢69XXXORG| 网友自拍成人在线视频| 黑色丝袜在线观看| 又爽又黄又粗又大免费视频 | 色愁愁久久久| 国产伦精品一区二区三区精品| 亚洲春色AV无码专区456| 九九99国产香蕉视频| 99re久久这里只有精品| 日本一本在线播放| 国产午夜精品理论片久久影视| 亚洲欧洲无码AV在线观看你懂的| 久久精品一本到99热| adc网址在线观看| 十七岁日本免费完整版BD| 狠狠操伊人| 99久久国产综合精品| 首页_亚洲AV色老汉影院| 国内国外精品影片无人区|