1 如何新建乙個ARM工程

2021-07-01 20:25:30 字數 2324 閱讀 8190

準備工作

建立工程資料夾,在其下面新增output,source這兩個資料夾(如下):

ps:所有資料夾

(包括工程的路徑上的資料夾

)名字一定要是要英文,這是因為中文在某些情況下會出現未知編譯錯誤。

移動標準庫檔案中的標頭檔案和對應子檔案**到source資料夾,我使用的是stm32f10x_stdperiph_lib_v3.5.0,後續的庫可能有其它改動,這就需要你自己按照這個思路去處理,解壓stm32f10x_stdperiph_lib,找到...\\stm32f10x_stdperiph_lib\stm32f10x_stdperiph_lib_v3.5.0\libraries資料夾下的

並複製到...\\工程資料夾(當前工程,英文)\\source資料夾下,其中cmsis是cortex的微控制器軟體介面標準,它提供了stm32的啟動檔案,外設定義,以及器件的定義。而stm32f10x_stdperiph_driver提供的就是庫函式用來實現對晶元的操作。

source資料夾內容如下:

到此,整個工程的準備工作就做好了,下面就開始用mdk建立工程。

使用mdk建立工程

1.新建arm mdk工程,我選擇的是晶元stm32f107vs,與開發板晶元保持一致,位置在當前工程檔案下。工程建立中,新增對應晶元但不要新增啟動**,手動複製安裝目錄\\keil\arm\startup\st資料夾下的stm32f10x.s(啟動檔案,以後會詳解)到當前工程資料夾,並新增到當前工程下的start_up中。

3.在工程中新增資料夾drive,並把用到的驅動檔案,也就是...\source\stm32f10x_ stdperiph_driver\src下需要使用的驅動檔案新增到drive資料夾裡,如下:

同時給user/driver兩個資料夾都新增inc查詢支援,用於標頭檔案查詢。

注:重要,不然

mdk是無法識別你包含的標頭檔案

具體步驟如下:

2.在對話方塊下方的includepathe處新增:當前工程資料夾\source\stm32f10x_stdperiph_driver\inc提供標頭檔案支援(後序還要新增新的支援),user和drive兩個資料夾都要新增。

編譯和更正

上面的都完成後,再main函式裡新增**,標頭檔案為#include"stm32f10x.h",編譯。

這時會出現

取消掉#defineuse_stdperiph_driver這句話的注釋,如上圖即可。此外,#include」stm32f10x_conf.h」定義在#include"stm32f10x.h"的末尾,

下面就來講stm32f10x_conf.h這個標頭檔案。

裡面包含了所有你需要用到的外設標頭檔案,你需要用什麼就取消對應得注釋即可,記得一定要取消注釋,不然你用到被注釋檔案裡的庫函式是不會被識別的。

此外如果出現

表明你沒有申明當前選擇的stm晶元隸屬於的型別,在stm32f10x.h找到如下的**段,下方會有英文注釋告訴你如何選擇,取消掉你所用板子型號對應型別的注釋即可,取消後的如下。

解決以上問題,第乙個程式就可以執行起來了。

庫函式的使用作為嵌入式的開發的基礎必須熟練掌握,它一定程度上脫離了硬體的桎梏,方便了理解,但是直接暫存器操作也有自己的優勢,**量少,程式效率稍高(當然直接使用彙編的暫存器操作效率是最高的),這兩種各有優劣,但初學狀態下,以庫函式程式設計為主(簡單易上手),同時理解相關暫存器控制的含義,在學習嵌入式開發的過程中意義重大。

如何新建乙個ARM彙編工程檔案

1.建立乙個資料夾用來存放彙編工程檔案 2.開啟keil軟體,選擇新建工程並命名 3.選擇晶元的廠商samsung和裝置型號s3c2410a,點選ok,進入下一步。4.這裡選擇否,不複製這個檔案 5.新建乙個空白並命名,注意字尾為.s 6.將demo.s檔案新增進source group 1,注意檔...

新建乙個安卓工程

2.設定工程資訊 project name 工程名 package name 包名 minimum required sdk 最低sdk ver target required sdk 最高 sdk ver compile with 編譯sdk ver 3.配置工程 create custom la...

VS新建乙個模板工程

新建乙個模板工程的好處 1 就不用每次都走一邊新建嚮導了,新建工程一步到位。2 可以往專案中每次都的輸入的 如一些宣告注釋 效果圖 具體步驟 1 自己先新建乙個屬於自己的工程。2 選擇 選單欄 檔案 匯出模板 3 選擇專案模板,點選下一步 之後模板會被自動存放到c users songheng do...