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