找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10733|回復(fù): 3
收起左側(cè)

CoIDE建立STM32F103ZET6工程

[復(fù)制鏈接]
ID:82083 發(fā)表于 2015-6-9 00:09 | 顯示全部樓層 |閱讀模式
開發(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)是激活的。





回復(fù)

使用道具 舉報

ID:206748 發(fā)表于 2017-6-1 16:07 | 顯示全部樓層
ULINKV2  用這個 編譯器    里面沒有相應(yīng)的型號? 你是選的哪個?
回復(fù)

使用道具 舉報

ID:247659 發(fā)表于 2017-11-10 21:32 | 顯示全部樓層
startup_stm32f10x_hd_vl.s 這個文件怎么感覺是將程序 COPY
回復(fù)

使用道具 舉報

ID:247659 發(fā)表于 2017-11-10 21:36 | 顯示全部樓層
startup_stm32f10x_hd_vl.s這個程序感覺是將程序源碼COPY到RAM中去執(zhí)行。我在單步調(diào)試中遇到很奇怪的問題,在完全不該死機的地方死機,僅僅是初始化程序中自編函數(shù)。其它的無法解釋,我的程序已經(jīng)50多K,如果COPY到RAM中,stm32f103rct的片子也就64KRAM.加上我定義的大量數(shù)組結(jié)構(gòu),根本不夠用。不知我理解的對不對,請問這個.S函數(shù)有沒有其它選擇?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表