|
開發(fā)板:
本文使用ALIENTEK出品的warship開發(fā)板,該開發(fā)板使用stm32f103zet6主控MCU。請使用USB線連接PC供電,并通過JTAG插座連接JLINK或者ULINK仿真器。
環(huán)境安裝:
1) JLINKV8/V9, 對應(yīng)windows驅(qū)動包為4.90. 或者使用STLINKV2(可安裝官方驅(qū)動)。
2) Coocox 出品的開發(fā)工具CoIDE_V2Beta和Flash燒錄工具CoFlash(1.4.9.0)。
3) 下載GNUARM編譯工具鏈“gcc-arm-none-eabi-4_8-2014q2-20140609-win32”,或者codesourcery的編譯工具鏈(2011.03-42)。
工程創(chuàng)建:
參考工程打包文件:工程創(chuàng)建:
參考工程打包文件:stm32f429Demo.zipstm32f429Demo.zip,請從如下地址下載:
http://pan.baidu.com/s/1o6ywAQA#path=/CooCox?
1) 打開CoIDE,指定編譯工具鏈(任何一個)。
2) 為STM32F103ZET6創(chuàng)建工程。
首先需要在Repository選項卡中選擇目標(biāo)MCU,這里是stm32f103zet6。
找到目標(biāo)MCU選中,然后在彈出菜單中選擇“newproject”。
然后為當(dāng)前工程命名,點擊“finish”結(jié)束。
3) 為工程添加鏈接庫支持。
在“repository”選項卡中依次添加“C_library”(標(biāo)準(zhǔn)C庫),“cmsis_core”(DSP庫)以及“STM32F10x_HD_STDLIB”(MCU外設(shè)庫)。當(dāng)然,如果不需要DSP庫,可以不選。
完成后,可以看到工程選項卡中,已經(jīng)出現(xiàn)了這三個庫。
4) 在main.c中,基于外設(shè)庫改寫main函數(shù)。
#include
//定義GPIO結(jié)構(gòu)體
GPIO_InitTypeDefGPIO_InitStructure;
int main(void)
{
//使能GPIO時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
//GPIO結(jié)構(gòu)體配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
//GPIO初始化
GPIO_Init(GPIOB, &GPIO_InitStructure);
//點亮小燈
GPIO_SetBits(GPIOB, GPIO_Pin_5);
//無限循環(huán)
while(1)
{
}
}
5) 編譯工程。
?完成編譯后,在“console”窗口,可以看到成功的提示。
編譯生成的可下載鏡像為”stm32f103zet6Demo.elf”。
6) 開始調(diào)試。
經(jīng)本人實驗,JLINKV8/V9和ULINKV2都可以進行調(diào)試。但是只有ULINKV2可以進行獨立的燒寫。
要進行在線調(diào)試和燒錄,必須進行相關(guān)配置-在configuration選項卡中。1) 開始調(diào)試。
經(jīng)本人實驗,JLINKV8/V9和ULINKV2都可以進行調(diào)試。但是只有ULINKV2可以進行獨立的燒寫。
要進行在線調(diào)試和燒錄,必須進行相關(guān)配置-在configuration選項卡中。
對于硬件調(diào)試工具的設(shè)置,主要是在“Debugger”子項中進行配置。默認為ST-LINK,如下圖所示。
對于Port選擇框,根據(jù)實際情況選擇是”SWD”還是”JTAG”硬件接口。對于warship目標(biāo)板來說,應(yīng)該選JTAG接口。
當(dāng)然,鑒于目前使用的JLINK仿真器,應(yīng)該進行修改。修改后如下圖所示。
這里需要注意的是,“GDBServer cmdlinetool”選擇框中,應(yīng)該指向當(dāng)前系統(tǒng)中JLINK驅(qū)動工具包安裝目錄下的“JLinkGDBServerCL.exe”。
?
上邊的設(shè)置完成后,就可以開始調(diào)試-點擊”startDebug”按鈕(快捷快為ctl+f5)。
程序進入main函數(shù)后,會自動停在第一個有效語句處。
接下來,就可以進行單步或者其他方法調(diào)試了。當(dāng)然,右側(cè)的”peripherial”窗口可以觀察MCU寄存器的當(dāng)前值。而”debug”窗口中,也顯示了當(dāng)前的調(diào)用棧。讀者也可以用”Variable”窗口觀察局部變量取值。
7) 固件下載。
目前CoIDE中,只支持通過STLINKV2直接進行flash擦寫和燒錄。而對于JLINKV8/V9,就只能通過”debug”方式間接完成燒錄了。
在STLINKV2連接的情況下,以下兩個按鈕(download和erase)是激活的。
|
|