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