一屠橄、新建本地工程文件夾
為了工程目錄更加清晰栈妆,我們在本地電腦上新建一個“工程模板”文件夾扛吞,在它之下再新建 6 個文件夾,具體如下:
名稱 | 作用 |
---|---|
Doc | 用來存放程序說明的文件酷鸦,由寫程序的人添加 |
Libraries | 存放的是庫文件 |
Listing | 存放編譯器編譯時候產(chǎn)生的 C/匯編/鏈接的列表清單 |
Output | 存放編譯產(chǎn)生的調(diào)試信息饰躲、hex 文件、預(yù)覽信息臼隔、封裝庫等 |
Project | 用來存放工程 |
User | 用戶編寫的驅(qū)動文件 |
在本地新建好文件夾后嘹裂,把準(zhǔn)備好的庫文件添加到相應(yīng)的文件夾下:
名稱 | 作用 |
---|---|
Doc | 工程說明.txt |
Libraries | CMSIS:里面放著跟 CM3 內(nèi)核有關(guān)的庫文件 GD32F10x_standard_peripheral:GD32 標(biāo)準(zhǔn)外設(shè)庫文件 |
Listing | 暫時為空 |
Output | 暫時為空 |
Project | 暫時為空 |
User | gd32f10x_libopt.h:用來配置庫的頭文件 gd32f10x_it.h gd32f10x_it.c:中斷相關(guān)的函數(shù)都在這個文件編寫,暫時為空 main.c:main 函數(shù)文件 |
二躬翁、新建工程
打開 KEIL5焦蘑,新建一個工程,工程名根據(jù)喜好命名盒发,我這里取 Template(中文是模版
的意思)例嘱,保存在 Project\RVMDK(uv5)文件夾下狡逢。
2.1 選擇CPU型號
根據(jù)你開發(fā)板使用的 CPU 具體的型號來選擇。如果這里沒有出現(xiàn)你想要的 CPU 型號拼卵,或者一個型號都沒有奢浑,那么肯定是你的 KEIL5 沒有添加 device 庫,查看 GD32F103學(xué)習(xí)筆記(1)——搭建環(huán)境腋腮、編譯燒寫
2.2 在線添加庫文件
等下我們手動添加庫文件雀彼,這里我們點擊關(guān)掉。
2.3 添加組文件夾
在新建的工程中添加 5 個組文件夾即寡,用來存放各種不同的文件徊哑,文件從本地建好的工程文件夾下獲取,雙擊組文件夾就會出現(xiàn)添加文件的路徑聪富,然后選擇文件即可莺丑。
名稱 | 存放文件 |
---|---|
Startup | startup_gd32f10x_hd.s(根據(jù)芯片F(xiàn)lash容量選擇) |
CMSIS | system_gd32f10x.c |
Peripherals | GD32F10x_standard_peripheral\Source 文件夾下的全部 C 文件,即固件庫 |
User | 用戶編寫的文件: main.c:main 函數(shù)文件墩蔓,暫時為空 gd32f10x_it.c:跟中斷有關(guān)的函數(shù)都放這個文件梢莽,暫時為空 |
Doc | 工程說明.txt:程序說明文件,用于說明程序的功能和注意事項等 |
2.4 添加文件
CMSIS 中添加從官方下載的固件庫中
GD32F10x_Firmware_Library_V2.2.2\Firmware\CMSIS\GD\GD32F10x\Source的system_gd32f10x.c
文件Peripherals 中添加從官方下載的固件庫中
GD32F10x_Firmware_Library_V2.2.2\Firmware\GD32F10x_standard_peripheral\Source的全部C文件
Startup 中添加從官方下載的固件庫中
GD32F10x_Firmware_Library_V2.2.2\Firmware\CMSIS\GD\GD32F10x\Source\ARM的根據(jù)芯片容量選擇對應(yīng)的啟動文件(這里我用的是GD32F103RCT6選擇startup_gd32f10x_hd.s
)User 中添加
main.c
和從官方下載的固件庫中GD32F10x_Firmware_Library_V2.2.2\Template的gd32f10x_it.c
奸披、gd32f10x_it.h
昏名、gd32f10x_libopt.h
文件
2.5 配置魔術(shù)棒選項卡
- Target 中選中微庫“Use MicroLib”,為的是在日后編寫串口驅(qū)動的時候可以使用 printf 函數(shù)阵面。
- 在 Output 選項卡中把輸出文件夾定位到我們工程目錄下的“Output”文件夾轻局,如果想
在編譯的過程中生成 hex 文件,那么那 Create HEX File 選項勾上膜钓。
- 在 Listing 選項卡中把輸出文件夾定位到我們工程目錄下的“Listing”文件夾嗽交。
-
在 C/C++選項卡中添加處理宏及編譯器編譯的時候查找的頭文件路徑。如果頭文件路徑添加有誤颂斜,則編譯的時候會報錯找不到頭文件。
在這個選項中添加宏拾枣,就相當(dāng)于我們在文件中使用“#define”語句定義宏一樣沃疮。在編
譯器中添加宏的好處就是,只要用了這個模版梅肤,就不用源文件中修改代碼司蔬。- GD32F10X_HD 宏:為了告訴 GD32 標(biāo)準(zhǔn)庫,我們使用的芯片類型是 GD32
型號是大容量的姨蝴,使 GD32 標(biāo)準(zhǔn)庫根據(jù)我們選定的芯片型號來配置俊啼。 - USE_STDPERIPH_DRIVER 宏:為了讓 gd32f10x.h 包含 gd32f10x_libopt.h 這個頭文件。
- GD32F10X_HD 宏:為了告訴 GD32 標(biāo)準(zhǔn)庫,我們使用的芯片類型是 GD32
2.6 仿真器配置
2.6.1 J-Link燒錄
單擊 Options for Targe左医,再選擇 Debug 邊上是 Use 框是
J-LINK 說明選擇正確授帕,再單擊 Settings同木,會跳出有 IDCODE 顯示,說明已經(jīng)找到芯片內(nèi)核跛十,如果沒有顯示彤路,排查如圖箭頭所指的 Port 是否選為 SW,還有 J-LINK 驅(qū)動是否正確芥映,一般以上排查都能解決問題洲尊,最終有 IDCODE 顯示,說明板子硬件連接奈偏,工程配置都正確坞嘀,可以進(jìn)行下一步下載。
如果用的是JLink V8惊来,很可能會遇到無法正常燒寫的問題丽涩,參考 解決方法:調(diào)試NRF52832工程時JLink提示錯誤信息read:@0x02000004
2.6.2 ST-Link燒錄
- 安裝 ST-Link 下載器的驅(qū)動
百度網(wǎng)盤:https://pan.baidu.com/s/1ZoXKAqjec9Bc6oN6_MNJyA?pwd=9181 提取碼:9181
下載解壓后雙擊 stlink_winusb_install 進(jìn)行安裝。 - 選擇 ST-Link 下載
單擊 Options for Targe唁盏,再選擇 Debug 邊上是 Use 框是
ST-LINK 說明選擇正確内狸,再單擊 Settings,會跳出有 IDCODE 顯示厘擂,說明已經(jīng)找到芯片內(nèi)核昆淡,板子硬件連接,工程配置都正確刽严,可以進(jìn)行下載昂灵。
2.6.3 CMSIS-DAP燒錄
單擊 Options for Targe,再選擇 Debug 邊上是 Use 框是
CMSIS-DAP 說明選擇正確舞萄,再單擊 Settings眨补,會跳出有 IDCODE 顯示,說明已經(jīng)找到芯片內(nèi)核倒脓,箭頭所指的 Port 選為 SW撑螺,速度選擇 5MHz,板子硬件連接崎弃,工程配置都正確甘晤,可以進(jìn)行下一步下載。
2.7 選擇 CPU 型號
這一步的配置也不是配置一次之后完事饲做,常常會因為各種原因需要重新選擇线婚,當(dāng)你下載的時候,提示說找不到 Device 的時候盆均,請確保該配置是否正確塞弊。有時候下載程序之后,不會自動運行,要手動復(fù)位的時候游沿,也回來看看這里的“Reset and Run”配置是否失效饰抒。GD32F103RCT6 用的 FLASH 大小是 512K,所以這里選擇 512K 的容量奏候,如果使用的是其他型號的循集,要根據(jù)實際情況選擇。
2.8 修改main.c
#include "gd32f10x.h"
int main(void)
{
while(1)
{
}
}
點擊編譯蔗草,顯示如下:
一個新的工程模版新建完畢咒彤。
三、工程模板
百度網(wǎng)盤:https://pan.baidu.com/s/1eDirHaScNw6CcRRBf5y7Hg?pwd=fag0
提取碼:fag0
? 由 Leung 寫于 2022 年 4 月 11 日