|
一. 需要準(zhǔn)備的資料及環(huán)境:
1.STM32固件庫,我們使用的固件庫為STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下載
2.MDK開發(fā)環(huán)境(我們使用的版本為MDK4.7A)。
二. 新建工程
1.打開MDK ,然后選擇菜單 Project->Close Project,關(guān)掉已存在的工程!這樣整個(gè)MDK就是一個(gè)空的了,接下來我們將建立工程。
2.在建立工程之前,建議用戶在電腦的某個(gè)目錄下面建立一個(gè)文件夾,后面所建立的工程都可以放在這個(gè)文件夾下面,這里我們建立一個(gè)文件夾為: STM32_IAP.在該文件夾下再創(chuàng)建CORE、OBJ、STM32F10x_FWLib、USER等文件夾,USER用來保存工程,CORE用來存放核心文件和啟動(dòng),OBJ是用來存放編譯過程文件以及 hex 文件,STM32F10x_FWLib 文件夾用來存放ST 官方提供的庫函數(shù)源碼文 官方提供的庫函數(shù)源碼文 官方提供的庫函數(shù)源碼文 官方提供的庫函數(shù)源碼件。
3.點(diǎn)擊Keil的菜單:Project –>New Uvision Project ,然后將目錄定位到剛才建立的文件夾STM32_IAP之下,把工程文件保存到USER文件夾下面。工程命名為IAP-Bootloader ,點(diǎn)擊保存
4.接下來會(huì)出現(xiàn)一個(gè)選擇Device的界面,我們選擇STM32F103C8(如果是其他芯片,請(qǐng)選擇對(duì)應(yīng)的型號(hào))。
5.彈出對(duì)話框“ Copy STM32 Startup Code to project ….”,詢問是否添加啟動(dòng)代碼到工程中,選擇“否”,”,因?yàn)槭褂玫?ST 固件庫文件已經(jīng)包含了啟動(dòng)文件。
6.下面我們要將官方的固件庫包里的源碼文件復(fù)制到我們的工程目錄文件夾下面。
打開官方固件庫包,定位到我們之前準(zhǔn)備好的固件庫包的目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,將目錄下面的src,inc文件夾copy到我們剛才建立的STM32F10x_FWLib文件夾下面。src存放的是固件庫的.c文件,inc存放的是對(duì)應(yīng)的.h文件。
7.將固件庫包里面相關(guān)的啟動(dòng)文件復(fù)制到我們的工程目錄CORE之下。 打開官方固件庫包,定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下面,將文件core_cm3.c和文件core_cm3.h 復(fù)制到CORE下面去。然后定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,將里面所有的文件同樣復(fù)制到CORE下面
8.定位到目錄:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x,將里面的三個(gè)文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,復(fù)制到我們的USER目錄之下。然后將STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4個(gè)文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h復(fù)制到USER目錄下面。
9.前面的步驟,我們將需要的固件庫相關(guān)文件復(fù)制到工程目錄下面,下面我們將這些文件加入我們的工程中去。右鍵點(diǎn)擊Target1,選擇Manage Components
10.Project Targets一欄,我們將Target名字修改為IAP-Bootloader,然后在Groups一欄刪掉一個(gè),建立三個(gè)Groups:USER,CORE,FWLIB.點(diǎn)擊OK.可以看到我們的Target名字以及Groups情況。
11.往Group里面添加我們需要的文件。我們按照步驟10的方法, 右鍵點(diǎn)擊點(diǎn)擊IAP-Bootloader,選擇選擇Manage Components.然后選擇需要添加文件的Group,這里第一步我們選擇FWLIB,然后點(diǎn)擊右邊的Add Files,定位到我們剛才建立的目錄STM32F10x_FWLib/src下面,選擇需要的文件,然后點(diǎn)擊Add,然后Close.可以看到Files列表下面包含我們添加的文件。
12.用同樣的方法,將Groups定位到CORE和USER下面,添加需要的文件。這里我們的CORE下面需要添加的文件為core_cm3.c,startup_stm32f10x_md.s,USER目錄下面需要添加的文件為main.c,stm32f10x_it.c,system_stm32f10x.c.這樣我們需要添加的文件已經(jīng)添加到我們的工程中去了,最后點(diǎn)擊OK,回到工程主界面。
13.點(diǎn)擊魔術(shù)棒,出來一個(gè)菜單,然后點(diǎn)擊 c/c++選項(xiàng).然后點(diǎn)擊Include Paths右邊的按鈕。彈出一個(gè)添加path的對(duì)話框,然后我們將圖上面的3個(gè)目錄添加進(jìn)去。記住,keil只會(huì)在一級(jí)目錄查找,所以如果你的目錄下面還有子目錄,記得path一定要定位到最后一級(jí)子目錄。然后點(diǎn)擊OK.
14.配置一個(gè)全局的宏定義變量。按照步驟13,定位到c/c++界面,然后copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。這里解釋一下,如果你用的是大容量那么STM32F10X_MD修改為STM32F10X_HD,小容量修改為STM32F10X_LD。
15.配置Output選項(xiàng)。定位到Output界面,點(diǎn)擊Select Folder For Obiects...將目標(biāo)文件選擇到OBJ文件夾下。然后勾上下三個(gè)選項(xiàng)。其中Create HEX file是編譯生成hex文件,Browser Information是可以查看變量和函數(shù)定義
16..配置Debug選項(xiàng)。定位到Debug界面,選擇ST-Link Debugger(按實(shí)際用的工具選擇),勾選Use,點(diǎn)擊右邊的Setting選項(xiàng),在彈出的Cortex-MTarget Driver Setup窗口中選擇SW(按實(shí)際選擇),選擇確定。
17.配置Utilities選項(xiàng)。(1)定位到Utilities界面;(2)選擇ST-Link Debugger(按實(shí)際用的工具選擇);(3)點(diǎn)擊右邊的Setting選項(xiàng);(4)在彈出的Cortex-MTarget Driver Setup窗口按下圖紅框4選擇;(5)點(diǎn)擊下方ADD;(6)在彈出的Add Flash Programming Algorithm菜單中選擇STM32F10X Med-density Flash(按實(shí)際對(duì)應(yīng)芯片選擇);(7)選擇完后點(diǎn)擊Add;(8)選擇確定,回到上一菜單后再次選擇確定,回到主界面。
18.編寫簡(jiǎn)單main函數(shù),點(diǎn)擊進(jìn)行編譯,編譯完成后在OBJ文件夾中生成.hex文件
19.用ST Link將MCU與PC連接好后,點(diǎn)擊將.hex文件下載到MCU中。
仿真設(shè)置
0.png (84.73 KB, 下載次數(shù): 62)
下載附件
2022-3-31 14:26 上傳
在使用模擬器調(diào)試時(shí),出現(xiàn)以下錯(cuò)誤提示,導(dǎo)致不能連續(xù)運(yùn)行:
*** Error 65: Access violation at 0x40000004 : No 'write' permission
解決措施
將以下內(nèi)容保存為debug_Cortex-M_use_simulator.ini腳本文件,并根據(jù)CPU的外設(shè)地址更改map指令后面的參數(shù)。
配置選擇為初始化文件:
/* Usage: Project ==> Options for Target ==> Debug:
/====================================================================\
| (●) Use Simulator |
| |
+--------------------------------------------------------------------+
| |
| Initialization File: |
| +------------------------------------+ +-----+ +---------+ |
| | .\debug_Cortex-M_use_simulator.ini | | ... | | Edit... | |
| +------------------------------------+ +-----+ +---------+ |
| |
| |
| |
| |
\====================================================================/
*/
// S32K1xx Series Reference Manual, Chapter 3: Memory Map
map 0x40000000,0x40080000 read write // Peripheral
map 0x400FF000,0x40100000 read write // GPIO controller
map 0x50000000,0x50070000 read write
map 0xA0000000,0xA0080000 read write
|
-
-
STM32_IAP - 副本.7z
2022-3-31 14:40 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
643.89 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|