<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    Eclipse + CDT + YAGARTO + J-Link,STM32開源開發環境搭建與調試

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    Eclipse+CDT+YAGARTO+J-Li;開源開發環境搭建與調試;作者:Chongqing;郵箱:ycq.no1@163.com;文檔版本:V1.0;發布日期:2014-08-04;前言;此文檔本著開源精神,基于LGPL協議發布;因網上開源的單片機、微控制器開發平臺信息很少,故;因用ARM公司的KeiluVision開發環境開;因Eclipse是一個


       

     

    Eclipse + CDT + YAGARTO + J-Link,STM32

    開源開發環境搭建與調試

    作者 :Chongqing

    郵箱 :ycq.no1@163.com

    文檔版本 :V1.0

    發布日期 :2014-08-04

     

     

    前言

    此文檔本著開源精神,基于LGPL協議發布。如有修訂及重新發布,請標明原始作者、郵箱、原始版本及修訂日期。

     

    因網上開源的單片機、微控制器開發平臺信息很少,故發布此文檔,以饗讀者。

     

    因用ARM公司的Keil uVision開發環境開發單片機、微控制器并發布商業產品涉及版權問題,需要支付不菲的授權使用費,這對中小型公司來說是筆不小的開銷。故尋找Keil uVision的替代方案。

    因Eclipse是一個開源的開發平臺,并且支持各種插件的開發,因此可以以Eclipse + CDT + YAGARTO + J-Link的方式搭建開源開發平臺。

    Eclipse是一個開源、免費、跨平臺、支持插件擴展的Java、C/C++等集成開發環境。Eclipse通過CDT可以比較好的支持C/C++的開發,讀者可以到Eclipse官網直接下載CDT版本的Eclipse。在Eclipse中添加GNU ARM Eclipse插件,與YAGARTO GNU ARM Toolchain和J-link仿真調試器結合,就可以比較好地支持STM32的開發與調試。

    但是Eclipse有其缺點。Eclipse做Java開發比較方便,代碼編輯與提示、代碼編譯都很方便,但是針對C/C++的代碼提示不方便。Eclipse臃腫,代碼編譯速度慢。Eclipse的GNU ARM 環境配置復雜,調試不便。在這里,本人還是推薦使用Em::Blocks。Em::Blocks小巧,不像Keil uVision那么大,也不像Eclipse那般臃腫。Em::Blocks安裝、配置相對Keil uVision更簡單方便,Eclipse的環境配置相對更復雜,更容易出錯。Em::Blocks的代碼編輯環境相當智能化,相對Keil uVision好很多,相比Eclipse也毫不遜色。Em::Blocks內嵌了GNU編譯器,代碼的編譯速度是Keil uVision和Eclipse不能比擬的。Em::Blocks內嵌對幾種JTAG仿真調試器的支持,調試時方便快捷,相比Keil uVision也毫不遜色。Eclipse的代碼提示、配置、編譯、調試的體驗很差,在此不贅述。Em::Blocks STM32開發環境的搭建在《EmBlocks + J-Link,STM32開源開發環境搭建與調試》這一文檔中有詳述。

     

     

    開發環境

     

    系統: Windows 7旗艦版。

     

    開發工具:

    1、

     

    2、 因為Eclipse是用Java開發的,所以需要Java的運行環境,只要下載安裝jre即可,這里我們下載安裝

    (包含jre), Windows x86,32_bit;

     

    3、 要使Eclipse支持ARM開發,需要下載安裝一個插件:(ilg.gnuarmeclipse.repository-1.8.1-201401111229.zip);

     

    因為我們下載的Eclipse IDE for C/C++ Developers中已經包含CDT插件,無需我們手動安裝,4、 CDT插件,

    如果你下載的是別的版本的Eclipse,需要你自己手動安裝CDT插件;

     

    5、 YAGARTO,GNU ARM toolchain:

    官網:,工具下載官網:

    下載安裝:(yagarto-tools-20121018-setup.exe) 和(yagarto-bu-2.23.1_gcc-4.7.2-c-c++_nl-1.20.0_gdb-7.5.1_eabi_20121222.exe),下載地址:

    6、 J-Link驅動工具包:Setup_JLinkARM_V434d.zip。

    ,版本:4.3.1,32_bit;

    安裝交叉編譯工具:

    1、 上面的工具都下載好以后,先安裝好Java SE Development Kit 7u51、YAGARTO-Tools-20121018(先于YAGARTO

    GNU ARM toolchain安裝)、YAGARTO GNU ARM toolchain和J-Link驅動工具包;

     

    2、 解壓Eclipse到指定目錄,進入目錄,打開eclipse.exe,配置好Eclipse工作目錄;

     

    3、 安裝GNU ARM Eclipse Plug-in插件,Eclipse?Help?Install New Softwares,點擊“Work with”右邊的“Add”,

    點擊彈出的框中“Name”右邊的“Local…”,加上解壓后的GNU ARM Eclipse Plug-in插件目錄,點OK,然后一步步下去,直到Eclipse重啟;

     

    Eclipse配置:

    1、Eclipse編碼格式配置:

    (1) Window?Preferences,左側導航樹到general?Workspace,右側“Text file encoding”,選擇“Other”,

    改為“UTF-8”;

    (2) Window?Preferences,左側導航樹到general?Content Types,右側“Content types”樹,點開“Text”,

    選中“C Source File”,在下面的Default encoding框中填上“UTF-8”,點擊右邊的“Update”;

    2、顯示行號:Window?Preferences?General?Editors?Text Editors,選中右側的“Show line numbers”復選框,另外把“Insert spaces for tabs”復選框選中,用空格代替tab,以便代碼用別的編譯器編譯時,出現代碼對齊問題;

     

    3、修改字體:Window?Preferences?General?Appearance?Colors and Fonts,在右側樹形列表中選擇C/C++?Editor?

    編輯文本字體即可;

     

    4、修改默認代碼格式:Window?Preferences?C/C++?Code Style?Formatter,單擊右側的“New”新建一個格式化配置,修改配置,然后保存即可。還可以通過“Export All”導出配置,重裝Eclipse時只要導入該配置即可;

     

    5、顯示空格和制表符:Window?References?General?Editors?Text Editors,選中右側“Show whitespace characters”,還可以點擊“configure visibility”來選擇要顯示的空白字符,這里可以取消“Carriage Return”和“Line Feed”的“Trailing”顯示;

     

    6、顯示最大列寬范圍:一般的代碼規范會要求代碼的最大列寬為80個字符,Eclipse提供最大列寬提示界線:Window?Preferences?General?Editors?Text Editors,右邊選中“Show print margin”;

     

    7、為防止在Eclipse外部修改工程目錄中的文件引起文件不同步導致“Resource ‘項目名’ is out of sync with file system.”的問題,解決辦法:Window?Preferences?General?Workspace,右邊選中“Refresh using native hooks or polling”和“Refresh on access”

     

    8、修改過的代碼不用保存直接編譯:Window?Preferences?General?Workspace,右邊選中“Save automatically before build”;

    ,點擊右邊的“Edit”,

    編譯配置:

    1、 Ctrl + n,創建新項目,選擇C/C++下的“C Project”,點“Next”,在彈出框中選擇

    和,添加上項目名稱,點“Next”,在

    彈出的框中設置處理器參數,因為我們的處理器是STM32F103VET6,所以Chip family改為

    ,Flash size改為512,RAM size改為64,“Next”、 “Next”、

    “Next”,到Cross GUN ARM Toolchain框,Toolchain name改為

    ,Toolchain path改為

    YAGARTO

    GNU ARM toolchain的路徑,如

    Explorer”中看到項目的結構; ,點OK后,就可以在Eclipse的“Project

     

    2、 右擊項目名?Properties,C/C++ Build?Tool Chain Editor,把右邊的Current builder改為

    3、 配置好后,把自己的.c文件放到項目根目錄的src目錄下,.h文件放到項目根目錄的include目錄下,選中

    Eclipse目錄樹,右鍵Refresh或者F5刷新,就可以看到剛才添加的文件了,點擊

    看到編譯生成hex文件了。

     

    4、 剛開始我們的代碼默認為Debug模式,若想修改為Release模式,右鍵項目名稱?Preperties,在彈出框的

    左側樹形目錄中選擇C/C++ Build?Tool Chain Editor,點擊右上角的“Manage Configurations”,在彈出的框中選中Release?點擊Set Active?點擊OK;然后Crtl + B,先生成Release版本的elf和hex文件;打開Debug Configurations?在彈出的框中,點擊

    頁下,點擊,在下自定義的配置,在右側的main標簽下面的框中,選擇Release版本的elf文件,點擊“OK”,完成; 或者Ctrl + B,就可以

    5、 如果已經有Eclipse項目,可以導入現存項目:File?Import或者右鍵Eclipse目錄樹?Import,在彈出的框

    中選General?

     

    到此,編譯配置完成

    ?next,Select root directory選擇項目根目錄,選中,點擊“Finish”完成;

    調試配置:

    1、 打開Debug Configurations?在彈出的框中,雙擊左邊樹形

     

    2、 在右邊的Main標簽頁下,C/C++ Application文本框下面,點擊,在彈出的框中已經默認為,生成新的配置;

    生成的elf文件和默認的Debug生成的elf文件,如果要改為Release生成的文件,以后再改;

     

    3、 在Debugger標簽頁下,GDB Command文本框,選擇安裝的YAGARTO編譯器的GDB調試工具,如:

    ,如果在安裝YAGARTO時,YAGARTO已經自動修改了環境變量,可

    以直接填入“arm-none-eabi-gdb.exe”;Port number改為2331;JTAG Device改為Generic TCP/IP(如果不行,改為J-Link);

     

    4、 在Startup標簽頁下,在Initialization Commands文本框中,輸入以下內容:

    monitor flash device = STM32F103VE

    monitor flash download = 1

    monitor flash breakpoints = 1

    monitor clrbp

    monitorendianlittle;monitorspeed5;monitorreset;monitorsleep100;monitorspeedauto;monitorwriteu320xE000ED0;注:其中,monitorflashdevice需;RunCommands文本框中填入以下內容:;monitorregr13=(0x0000000;mo


     

    monitor endian little

    monitor speed 5

    monitor reset

    monitor sleep 100

    monitor speed auto

    monitor writeu32 0xE000ED08 = 0x00000000

    注:其中,monitor flash device需要根據自己的STM32設備自行修改;

     

    Run Commands文本框中填入以下內容:

    monitor reg r13 = (0x00000000)

    monitor reg pc = (0x00000004)

    break main

    continue

    注:請不要勾選Runtime Option中的選項。

     

    然后點擊Apply,請確保GDB Server(如從開始菜單打開SEGGER J-Link GDB Server V4.34d)已經打開,并且連接正常,點擊Debug開始調試。

     

    到此,Eclipse + CDT + YAGARTO + J-Link,STM32開源開發環境搭建全部完成。

     

     

    幾種編譯環境的比較

    1、 Keil uVision + J-link

    Keil uVision是ARM公司提供的主要用于微控制器領域的集成開發環境。比較穩定可靠,對各種芯片都有比較好的支持。Keil uVision生成的目標代碼效率很高,匯編代碼緊湊,容易理解。缺點是Keil uVision需要不菲的授權費,對中小型公司來說不適合用其開發商業軟件;Keil uVision的項目構建與配置不是很方便;Keil uVision的代碼編輯不是很方便。

     

    2、 Eclipse + CDT + YAGARTO + J-link

    Eclipse作為開源的開放開發平臺,YAGARTO作為開源的GNU開發工具鏈,結合起來可以提供一個比較好的開源STM32開發環境。Eclipse的源代碼編輯環境非常友好,可以加快源代碼的編輯速度。Eclipse主要用來開發JAVA,可以通過CDT插件支持C/C++的開發,但是Eclipse臃腫、緩慢,對C/C++的開發支持不是很友好,C/C++源代碼編輯環境不如JAVA方便。在Eclipse中安裝GNU ARM Eclipse Plug-in插件、配置編譯與調試環境比較繁瑣,很容易出錯,在調試的時候,要先打開J-link GDB Server,再到調試界面進行調試,調試時CPU不能Reset,每次調試都要重新燒寫Flash,費時,同時頻繁燒寫Flash也減短Flash壽命。

    3、 Em::Blocks + J-link

    Em::Blocks集成開發環境基于Code::Blocks集成開發環境。Code::Blocks是一個開源、免費、跨平臺、支持插件擴展的C/C++集成開發環境。Code::Blocks支持多種應用的開發,并且小巧、穩定、可靠、快速,是一款功能非常強大的集成開發環境。Em::Blocks繼承了Code::Blocks的優點,只針對嵌入式平臺做開發,并針對嵌入式開發環境做了優化。Em::Blocks內嵌了GNU ARM編譯器,同時內嵌對J-link等JTAG仿真調試器的支持。在安裝Em::Blocks時不需要對GNU ARM和J-link做太多配置。編譯代碼非常快速。代碼編輯、代碼提示相對Keil uVision做得很出色,相比Eclipse也毫不遜色。創建工程非常方便,Em::Blocks根據創建工程時選擇的處理器自動添加固件庫代碼,只要添加上自己的項目代碼就可以。在調試時,Em::Blocks會自動調用J-link GDB Server,也可以Reset CPU,也可以在RAM中執行程序從而減少燒寫Flash。

     

    Em::Blocks相對Keil uVision開源、免費,同時工程管理方便,代碼編輯、提示都很優秀;Em::Blocks相對Eclipse小巧、快速,內嵌對GNU和J-link的支持,配置非常方便,調試自動調用J-link,可以Reset CPU,大大簡化在Eclipse下的操作。Em::Blocks是一款非常強大、對嵌入式開發支持非常友好的集成開發環境。

     

     

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全