新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32開發(fā)環(huán)境(工具)之Keil MDK 介紹

STM32開發(fā)環(huán)境(工具)之Keil MDK 介紹

作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏

Include Paths:指定頭文件的查找路徑,可以添加多個(gè)。
這里我們所有的選擇保持默認(rèn)選擇就可以了。
3. Debug標(biāo)簽頁的設(shè)置

本文引用地址:http://butianyuan.cn/article/201611/322372.htm

左邊是對(duì)應(yīng)uVision3的模擬環(huán)境,右邊是針對(duì)仿真器,這里選擇右邊的ULINK Cortex Debugger仿真器為例進(jìn)行說明。
如果已經(jīng)將ULINK仿真器連接到你的電腦,點(diǎn)擊“Settings”你將進(jìn)入ARM Target Driver Setup 界面。


ULINK - JTAG/SWD Adapter:
Serial No:列出了當(dāng)前連接到主機(jī)的所有ULINK適配器的串號(hào),你可以通過列表選擇要使用的ULINK適配器。
ULINK Version,Device Family以及Firmware Version分別列出了當(dāng)前選擇的ULINK適配器的版本,設(shè)備家族和固件版本。
SWJ,Port:根據(jù)和開發(fā)板接口的類型選擇端口,有JTAG和SW兩種,勾選SWJ表示支持兩種方式。
Max Clock:指定和開發(fā)板的最高通信時(shí)鐘。
JTAG Device Chain:顯示當(dāng)前通過適配器連接上的開發(fā)板。
Automatic Detection:自動(dòng)監(jiān)測(cè),選擇系統(tǒng)將自動(dòng)檢測(cè)連接上的開發(fā)板,建議使用。
Manual Configuration:手動(dòng)配置,通過手動(dòng)設(shè)置ID CODE,Device Name和IR len等屬性來查找設(shè)備。
Debug:
Cache Options:
  Cache Code:通知調(diào)試器已經(jīng)下載的程序代碼不會(huì)改變,選中的話uVision將不會(huì)從目標(biāo)系統(tǒng)讀取程序代碼。
  Cache Memory:決定調(diào)試程序期間程序停止運(yùn)行的時(shí)候,是否更新存儲(chǔ)器顯示。
Download Options:
  Verify Code Download:比較目標(biāo)存儲(chǔ)器和調(diào)試器上的應(yīng)用程序的內(nèi)容。
  Download to Flash:將代碼下載到所有的存儲(chǔ)器區(qū)域,如果不選中,調(diào)試器不會(huì)把代碼下載到Flash Download Setup中制定的存儲(chǔ)器地址范圍。
Misc Options:
  Use Reset at Startup:選中的時(shí)候,調(diào)試器在開始調(diào)試的時(shí)候會(huì)發(fā)起一次CPU復(fù)位?!?br />Load Application at Startup:將Output標(biāo)簽中指定的可執(zhí)行文件導(dǎo)入到調(diào)試器的起始地址。
Run to Main:開始調(diào)試時(shí)執(zhí)行到Main函數(shù)入口暫停執(zhí)行。
Initialization File:指定一個(gè)包含一組調(diào)試命令的文件,這組命令是調(diào)試器開始工作或者調(diào)試函數(shù)在調(diào)試期間要使用的。
Restore Debug Session Settings:使用上一次調(diào)試過程對(duì)Breakpoints,Watchpoints,Memory Display和Toolbox(如果這些項(xiàng)被選中的話)。
Driver DLL – Parameter:由Device Database設(shè)置的目標(biāo)驅(qū)動(dòng)DLL,不要修改。
Dialog DLL – Parameter:由Device Database設(shè)置的對(duì)話框DLL,不要修改。
這里我們修改了兩個(gè)地方,選中了Use ULINK和Run to Main,對(duì)ULINK的設(shè)置進(jìn)行了一些調(diào)整,具體的設(shè)置圖5.11所示。
4. Utilities標(biāo)簽頁的設(shè)置


Configure Flash Menu Command
  Use Target Driver for Flash Programming:列表選擇和調(diào)試接口一致的驅(qū)動(dòng)。Init File的設(shè)置也和前面調(diào)試設(shè)置一致。點(diǎn)擊Settings將進(jìn)入Flash Download Setup界面。


Download Function:定義了Flash燒寫的時(shí)候進(jìn)行的操作。
  Erase Full Chip:前面三項(xiàng)要選一,燒寫程序之前擦除整個(gè)Flash存儲(chǔ)器。
  Erase Sectors:燒寫程序之前擦除程序要使用的扇區(qū)。
  Do not Erase:不進(jìn)行擦除操作
  Program:使用當(dāng)前uVision工程的程序燒寫ROM。
  Verify:驗(yàn)證Flash ROM的內(nèi)容和當(dāng)前工程中的程序一致。
  Reset and Run:在燒寫和驗(yàn)證完成之后復(fù)位開發(fā)板并且運(yùn)行程序。
RAM for Algorithm:指定用于燒寫程序的RAM區(qū)域,通常是微控制器上的一段片上空間。
  Start:起始地址。
  Size:大小。
可以通過點(diǎn)擊Add添加,點(diǎn)擊Add你將看到如下的選擇列表,可以根據(jù)你選用的芯片選擇合適的,也可以自己手動(dòng)添加。


  Use External Tool for Flash Programming:使用第三方的工具進(jìn)行Flash下載。
  Command:要使用的Flash燒寫工具的命令文件(通常是一個(gè).exe文件)。
  Arguments:傳遞給Flash燒寫工具的參數(shù)。
  Run Independent:當(dāng)選中的時(shí)候,uVision不等待Flash燒寫完成。不選中的時(shí)候uVision要等待Flash燒寫完成并且在輸出窗口顯示燒寫結(jié)果。
在HelloWorld里面修改了Flash Download Setup,具體的設(shè)置如上圖所示。到此工程設(shè)置就結(jié)束了。

5.1.2.3 打開工程
通過菜單“Project”->“Open Project”來打開一個(gè)現(xiàn)有工程,這時(shí)將彈出一個(gè)打開文件對(duì)話框讓我們選擇要打開的工程文件。
選擇你要打開的工程的路徑,然后點(diǎn)擊“Open”打開工程。我們還可以和打開其他文件一樣,找到一個(gè)后綴為“uv2”的uVision3工程文件,直接雙擊,Windows會(huì)自動(dòng)調(diào)用uVision3打開這個(gè)文件,前提是你電腦已經(jīng)安裝了uVision3并且和“uv2”文件建立了關(guān)聯(lián)。

5.1.3 編寫源程序
選擇菜單“File”->“New”或者點(diǎn)擊工具欄的新建文件按鈕,即可在項(xiàng)目窗口的右側(cè)打開一個(gè)新的文本編輯窗口,在該窗口可以輸入程序代碼。
需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編輯器編寫,而且Keil的編輯器對(duì)漢字的支持不好,建議使用UltraEdit之類的編輯軟件進(jìn)行源程序的輸入。
每一個(gè)程序至少有一個(gè)原型為int main(void)的主函數(shù),這是程序的入口地址,程序?qū)倪@里開始運(yùn)行。此外,我們還需要對(duì)開發(fā)板做一些時(shí)鐘和中斷方面的初始化工作,這些工作將在函數(shù)RCC_Configuration和NVIC_Configuration中完成。源文件的代碼清單如下所示。

  1. #include"stm32f10x_lib.h"
  2. GPIO_InitTypeDefGPIO_InitStructure;
  3. voidDelay(vu32nCount);
  4. /*******************************************************************************FunctionName:main
  5. *Description:主程序
  6. *Input:None
  7. *Output:None
  8. *Return:None
  9. ******************************************************************************/
  10. intmain(void)
  11. {
  12. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  13. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
  14. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  15. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  16. GPIO_Init(GPIOB,&GPIO_InitStructure);
  17. while(1)
  18. {
  19. GPIO_WriteBit(GPIOB,GPIO_Pin_9,
  20. (BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_9)));
  21. Delay(1000000);
  22. }
  23. }
  24. voidDelay(vu32nCount)
  25. {
  26. for(;nCount!=0;nCount--);
  27. }


代碼編輯完成之后,我們可以保存源文件,選擇菜單“File”->“Save”或者點(diǎn)擊工具欄的保存文件按鈕,可以用來保存源文件。
這時(shí)會(huì)出現(xiàn)一個(gè)保存文件的文件對(duì)話框,選擇你要保存的路徑,輸入文件名HelloWorld.c。注意一定要輸入擴(kuò)展名,如果是c程序文件擴(kuò)展名為.c,如果是匯編文件擴(kuò)展名為.s,習(xí)慣.asm的也可以存儲(chǔ)為.asm。注解說明文件可以保存為.txt的擴(kuò)展名。
源文件編輯完成之后我們還需要將源文件加入到工程中,工程建好之后,在工程窗口的文件頁中,將會(huì)出現(xiàn)“Target 1”,前面有個(gè)“+”號(hào),點(diǎn)擊“+”號(hào)展開,可以看到下一層的“Source Group 1”,我們需要向這個(gè)里面加入源文件,點(diǎn)擊“Source Group 1”使其反白顯示,然后,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)一個(gè)下拉菜單,如下圖如示。


選中其中的“Add file to Group ‘Source Group 1’”,出現(xiàn)一個(gè)對(duì)話框,要求尋找源文件,如下圖所示。


注意,該對(duì)話框下面的“文件類型”默認(rèn)為C source file(*.c),我們可以通過調(diào)整這個(gè)來選擇過濾我們想要格式的文件,從而幫助我們快速查找文件。如果是匯編文件,就選擇“asm source file”;如果是目標(biāo)文件,選擇“Object file”;如果是庫文件,選擇“Library file”。最后點(diǎn)擊“Add”,也可以雙擊要添加的文件進(jìn)行加入。注意:點(diǎn)擊“Add”之后,窗口不會(huì)消失,如果要添加多個(gè)文件,可以不斷添加,添加完畢此時(shí)再點(diǎn)擊“Close”關(guān)閉該窗口。初學(xué)者時(shí)常誤認(rèn)為操作沒有成功而再次雙擊同一文件或者再次點(diǎn)擊“Add”,這時(shí)會(huì)出現(xiàn)如下的對(duì)話框。


在這里我們把剛新建的HelloWorld.c添加進(jìn)去,文件添加進(jìn)去之后,我們點(diǎn)擊“Source Group 1”前面的“+”號(hào),就會(huì)發(fā)現(xiàn)我們剛剛添加的文件HelloWrold.c已在其中了,雙擊文件名,即在代碼區(qū)打開該源程序文件。
除了添加文件,我們還可以添加新的Group,操作和添加文件類似,出現(xiàn)下拉菜單之后我們選擇“New Group”,這時(shí)就會(huì)在工程窗口看到新加的Group。對(duì)Group和添加文件的操作我們還可以通過點(diǎn)擊工具欄上的彩色品字按鈕進(jìn)入“Components,Environment and Books”窗口,如下圖所示。



評(píng)論


技術(shù)專區(qū)

關(guān)閉