前段時間一直在折騰linux系統上STM32的開發,網上一頓搜,費勁九牛二虎之力終於把環境搭好了(現在都有點忘了,后面再折騰環境搭建一定要寫個教程,今天先不寫了).
自從環境搭好之后,就基本拋棄MDK了,用了幾個月,感覺Eclipse實在比MDK好用一百倍,用它寫代碼簡直就是一種享受,下面趁着還熟,記錄一下工程建立步驟:
先來張整體效果圖:

第一步:File-new,新建project,選擇C Project,如下圖:

第二步:選擇工程模板(STM32F10X C/C++Project),填寫工程名:PowerTest_V0.0.4,如下圖:

第三步:根據芯片類型填寫Flash和RAM空間大小,如下圖:

第四步:不用做任何修改,如下圖:

第五步:不要選擇Debug項,只選擇Release即可(Debug項一直編譯不通過,默認的工程模板都不行),如下圖:

第六步:選擇交叉編譯工具arm-none-eabi-gcc

第七步:至此工程建立完畢,是默認自帶的一個閃燈程序,可以編譯成功,如下;

第八步:將默認的閃燈程序替換成自己的代碼,直接在磁盤中將原來的代碼刪掉,

替換為:

同樣的頭文件也做相應替換,另外原來的模板中庫文件並未包含stm32f10x_systick源文件及頭文件,需要單獨添加,如下:

替換之后,回到工程,此時工程中的代碼文件應該會自然更換,如未更換,則可右鍵工程名,點擊Refresh手動刷新.
第九步:此時再點擊編譯,一定會有很多錯誤,原因就是很多頭文件被默認過濾掉了,打開工程屬性對話框,修改過濾器,具體步驟為:右鍵點擊工程名,點擊Property,選擇Paths and Symbols,繼續選擇Source Location,點擊Edit Filter,如下:

選擇自己需要的頭文件,從過濾器中刪除,如下圖(常規串口或定時器類的頭文件肯定必須刪除過濾):

第十步:工程默認是編譯成Hex文件的,如果要編譯成Bin文件,則在Settting中修改即可,如下:

第十一步:重新編譯,可編譯成功,生成Bin文件,如下:

第十二步:有時候需要修改Flash地址,則在mem.ld文件中可直接修改,如下:

第十三步:此時生成的Bin文件,便可直接燒錄到板卡芯片中

第十四步:有人會問了,該如何燒錄呢,其實跟在Windows系統中一樣,可以用Jlink,安裝Jlink驅動(具體自行百度),便可自由燒錄了,可用命令行操作,如下:
Jlink燒錄bin文件
1進入bin文件目標;
2打開/opt/SEGGER/JLink/JLinkExe,進入Jlink操作模式;
3連接板卡connect
4選擇芯片類型:STM32F103RB
5選擇接口類型 J) JTAG S)SWD 選S
6速度,默認即可
7連接成功,開始燒錄
8 loadbin xxx.bin 0x08000000
9 h
10 r
11 g
那么能不能也像MDK中一樣,直接在工程中燒錄呢,當然可以,Eclipse其實也是帶有Debug操作功能的,操作步驟如下:
點擊工具欄中Run Common按鈕,下拉打開External Tools Configurations,配置Jlink路徑及燒錄參數,如下圖:

命令中有一個文件需要自己在磁盤上創建,如下:

download.jlink文件中具體內容如下:

注意文件路勁及文件名要與工程名一致,否則下載找不文件.
至此便可直接點擊工具欄中Run Common中選項進行下載了.
第十五步:愉快編碼開始了!!!
