STM32開發(fā)環(huán)境(工具)之Keil MDK 介紹
Include Paths:指定頭文件的查找路徑,可以添加多個。
這里我們所有的選擇保持默認選擇就可以了。
3. Debug標簽頁的設置
左邊是對應uVision3的模擬環(huán)境,右邊是針對仿真器,這里選擇右邊的ULINK Cortex Debugger仿真器為例進行說明。
如果已經(jīng)將ULINK仿真器連接到你的電腦,點擊“Settings”你將進入ARM Target Driver Setup 界面。
ULINK - JTAG/SWD Adapter:
Serial No:列出了當前連接到主機的所有ULINK適配器的串號,你可以通過列表選擇要使用的ULINK適配器。
ULINK Version,Device Family以及Firmware Version分別列出了當前選擇的ULINK適配器的版本,設備家族和固件版本。
SWJ,Port:根據(jù)和開發(fā)板接口的類型選擇端口,有JTAG和SW兩種,勾選SWJ表示支持兩種方式。
Max Clock:指定和開發(fā)板的最高通信時鐘。
JTAG Device Chain:顯示當前通過適配器連接上的開發(fā)板。
Automatic Detection:自動監(jiān)測,選擇系統(tǒng)將自動檢測連接上的開發(fā)板,建議使用。
Manual Configuration:手動配置,通過手動設置ID CODE,Device Name和IR len等屬性來查找設備。
Debug:
Cache Options:
Cache Code:通知調(diào)試器已經(jīng)下載的程序代碼不會改變,選中的話uVision將不會從目標系統(tǒng)讀取程序代碼。
Cache Memory:決定調(diào)試程序期間程序停止運行的時候,是否更新存儲器顯示。
Download Options:
Verify Code Download:比較目標存儲器和調(diào)試器上的應用程序的內(nèi)容。
Download to Flash:將代碼下載到所有的存儲器區(qū)域,如果不選中,調(diào)試器不會把代碼下載到Flash Download Setup中制定的存儲器地址范圍。
Misc Options:
Use Reset at Startup:選中的時候,調(diào)試器在開始調(diào)試的時候會發(fā)起一次CPU復位?!?br />Load Application at Startup:將Output標簽中指定的可執(zhí)行文件導入到調(diào)試器的起始地址。
Run to Main:開始調(diào)試時執(zhí)行到Main函數(shù)入口暫停執(zhí)行。
Initialization File:指定一個包含一組調(diào)試命令的文件,這組命令是調(diào)試器開始工作或者調(diào)試函數(shù)在調(diào)試期間要使用的。
Restore Debug Session Settings:使用上一次調(diào)試過程對Breakpoints,Watchpoints,Memory Display和Toolbox(如果這些項被選中的話)。
Driver DLL – Parameter:由Device Database設置的目標驅(qū)動DLL,不要修改。
Dialog DLL – Parameter:由Device Database設置的對話框DLL,不要修改。
這里我們修改了兩個地方,選中了Use ULINK和Run to Main,對ULINK的設置進行了一些調(diào)整,具體的設置圖5.11所示。
4. Utilities標簽頁的設置
Configure Flash Menu Command
Use Target Driver for Flash Programming:列表選擇和調(diào)試接口一致的驅(qū)動。Init File的設置也和前面調(diào)試設置一致。點擊Settings將進入Flash Download Setup界面。
Download Function:定義了Flash燒寫的時候進行的操作。
Erase Full Chip:前面三項要選一,燒寫程序之前擦除整個Flash存儲器。
Erase Sectors:燒寫程序之前擦除程序要使用的扇區(qū)。
Do not Erase:不進行擦除操作
Program:使用當前uVision工程的程序燒寫ROM。
Verify:驗證Flash ROM的內(nèi)容和當前工程中的程序一致。
Reset and Run:在燒寫和驗證完成之后復位開發(fā)板并且運行程序。
RAM for Algorithm:指定用于燒寫程序的RAM區(qū)域,通常是微控制器上的一段片上空間。
Start:起始地址。
Size:大小。
可以通過點擊Add添加,點擊Add你將看到如下的選擇列表,可以根據(jù)你選用的芯片選擇合適的,也可以自己手動添加。
Use External Tool for Flash Programming:使用第三方的工具進行Flash下載。
Command:要使用的Flash燒寫工具的命令文件(通常是一個.exe文件)。
Arguments:傳遞給Flash燒寫工具的參數(shù)。
Run Independent:當選中的時候,uVision不等待Flash燒寫完成。不選中的時候uVision要等待Flash燒寫完成并且在輸出窗口顯示燒寫結(jié)果。
在HelloWorld里面修改了Flash Download Setup,具體的設置如上圖所示。到此工程設置就結(jié)束了。
5.1.2.3 打開工程
通過菜單“Project”->“Open Project”來打開一個現(xiàn)有工程,這時將彈出一個打開文件對話框讓我們選擇要打開的工程文件。
選擇你要打開的工程的路徑,然后點擊“Open”打開工程。我們還可以和打開其他文件一樣,找到一個后綴為“uv2”的uVision3工程文件,直接雙擊,Windows會自動調(diào)用uVision3打開這個文件,前提是你電腦已經(jīng)安裝了uVision3并且和“uv2”文件建立了關聯(lián)。
5.1.3 編寫源程序
選擇菜單“File”->“New”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編輯窗口,在該窗口可以輸入程序代碼。
需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編輯器編寫,而且Keil的編輯器對漢字的支持不好,建議使用UltraEdit之類的編輯軟件進行源程序的輸入。
每一個程序至少有一個原型為int main(void)的主函數(shù),這是程序的入口地址,程序?qū)倪@里開始運行。此外,我們還需要對開發(fā)板做一些時鐘和中斷方面的初始化工作,這些工作將在函數(shù)RCC_Configuration和NVIC_Configuration中完成。源文件的代碼清單如下所示。
- #include"stm32f10x_lib.h"
- GPIO_InitTypeDefGPIO_InitStructure;
- voidDelay(vu32nCount);
- /*******************************************************************************FunctionName:main
- *Description:主程序
- *Input:None
- *Output:None
- *Return:None
- ******************************************************************************/
- intmain(void)
- {
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_Init(GPIOB,&GPIO_InitStructure);
- while(1)
- {
- GPIO_WriteBit(GPIOB,GPIO_Pin_9,
- (BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_9)));
- Delay(1000000);
- }
- }
- voidDelay(vu32nCount)
- {
- for(;nCount!=0;nCount--);
- }
代碼編輯完成之后,我們可以保存源文件,選擇菜單“File”->“Save”或者點擊工具欄的保存文件按鈕,可以用來保存源文件。
這時會出現(xiàn)一個保存文件的文件對話框,選擇你要保存的路徑,輸入文件名HelloWorld.c。注意一定要輸入擴展名,如果是c程序文件擴展名為.c,如果是匯編文件擴展名為.s,習慣.asm的也可以存儲為.asm。注解說明文件可以保存為.txt的擴展名。
源文件編輯完成之后我們還需要將源文件加入到工程中,工程建好之后,在工程窗口的文件頁中,將會出現(xiàn)“Target 1”,前面有個“+”號,點擊“+”號展開,可以看到下一層的“Source Group 1”,我們需要向這個里面加入源文件,點擊“Source Group 1”使其反白顯示,然后,點擊鼠標右鍵,出現(xiàn)一個下拉菜單,如下圖如示。
選中其中的“Add file to Group ‘Source Group 1’”,出現(xiàn)一個對話框,要求尋找源文件,如下圖所示。
注意,該對話框下面的“文件類型”默認為C source file(*.c),我們可以通過調(diào)整這個來選擇過濾我們想要格式的文件,從而幫助我們快速查找文件。如果是匯編文件,就選擇“asm source file”;如果是目標文件,選擇“Object file”;如果是庫文件,選擇“Library file”。最后點擊“Add”,也可以雙擊要添加的文件進行加入。注意:點擊“Add”之后,窗口不會消失,如果要添加多個文件,可以不斷添加,添加完畢此時再點擊“Close”關閉該窗口。初學者時常誤認為操作沒有成功而再次雙擊同一文件或者再次點擊“Add”,這時會出現(xiàn)如下的對話框。
在這里我們把剛新建的HelloWorld.c添加進去,文件添加進去之后,我們點擊“Source Group 1”前面的“+”號,就會發(fā)現(xiàn)我們剛剛添加的文件HelloWrold.c已在其中了,雙擊文件名,即在代碼區(qū)打開該源程序文件。
除了添加文件,我們還可以添加新的Group,操作和添加文件類似,出現(xiàn)下拉菜單之后我們選擇“New Group”,這時就會在工程窗口看到新加的Group。對Group和添加文件的操作我們還可以通過點擊工具欄上的彩色品字按鈕進入“Components,Environment and Books”窗口,如下圖所示。
評論