日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月23日(星期三)

2018年07月23日 | Eclipse搭建stm32開發(fā)環(huán)境+jlink調(diào)試

發(fā)布者:徽宗古泉 來源: eefocus關(guān)鍵字:Eclipse搭建  stm32  開發(fā)環(huán)境  jlink調(diào)試 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

一、新建工程:

    點(diǎn)擊File->New->C++ project


 

然后我們會(huì)發(fā)現(xiàn)下圖的界面,在這個(gè)界面中有STM32等工程的現(xiàn)成選項(xiàng),右側(cè)還有該工程支持的編譯鏈,如Cross Arm gcc,根據(jù)這個(gè)我們就可以判斷前面的軟件安裝成功了。此時(shí)我們可以直接點(diǎn)擊新建一個(gè)基于STM32模版的工程,也可以創(chuàng)建一個(gè)空的工程,然后自己配置工程結(jié)構(gòu),就像我們使用MDK一樣。此處我們以創(chuàng)建空工程為例子。


點(diǎn)擊Empty project,輸入工程名和路徑,Next。


 


選擇編譯鏈,由于我們安裝的是GNU ARM的工具鏈,所以選擇對(duì)應(yīng)的,然后指定工具鏈的路徑。


  


創(chuàng)建好了之后,我們就可以看到下圖的效果了,可以看到,這個(gè)工程完完全全是一個(gè)空的?,F(xiàn)在我們向這個(gè)工程中添加文件,

就像我們之前在MDK環(huán)境下配置模版一樣,先創(chuàng)建四個(gè)文件夾


   

然后從官方庫(kù)文件中拷貝對(duì)應(yīng)文件到該工程對(duì)應(yīng)文件夾下。

需要注意的是,官方庫(kù)文件中有一些文件是與編譯環(huán)境相關(guān)的,官方提供的環(huán)境有一下幾種


 


我們通過比較后發(fā)現(xiàn),TrueSTUDIO和eclipse環(huán)境的工程文件格式是一樣的,所以確定選用TrueSTDUIO工程的文件


 


首先是啟動(dòng)文件


  


然后還有鏈接文

  


這兩個(gè)文件根據(jù)對(duì)應(yīng)芯片容量決定。

文件拷貝完了后,將鼠標(biāo)點(diǎn)到工程框中右鍵刷新,我們就可以看到工程結(jié)構(gòu)更新了,如下圖


 


正如在MDK環(huán)境下開發(fā)我們需要配置define項(xiàng),include包含項(xiàng)和debug項(xiàng)一樣,在eclipse也要做這些工作。

二、工程配置:


點(diǎn)擊在工程瀏覽器中選中該工程,然后點(diǎn)擊project->properties選擇項(xiàng),


  

就會(huì)彈出如下對(duì)話框,在這個(gè)對(duì)話框中主要在setting中配置,首先看看Tool setting,該選項(xiàng)有四塊,即匯編(Assembler)選項(xiàng),C編譯器選型,C++編譯器選項(xiàng),鏈接選項(xiàng),每一塊中preprocessor用來設(shè)置預(yù)編譯的,即設(shè)置define。includes用來設(shè)置路徑包含的,所以啟動(dòng)文件等匯編文件要加到第一個(gè)選項(xiàng)塊中,ld格式的鏈接文件要加到第四個(gè)塊中


  

上面設(shè)置好了后,由于創(chuàng)建工程時(shí)我們已經(jīng)設(shè)置了編譯器,所以這個(gè)地方應(yīng)該是正確的,如下圖


 

點(diǎn)擊應(yīng)用,OK。

三、開始編譯:


 


然而立馬就出現(xiàn)下面的問題。


 


找不到make文件,通過查資料我們可以知道GNU Toolchain中是不自帶make工具的,但是make工具其實(shí)都是一樣的,所以我們能否使用Eclipse自帶的make工具呢?


當(dāng)然可以:


同樣打開工程設(shè)置,點(diǎn)擊Tool Chain Editor,選擇Builder工具為CDT內(nèi)部Builder,


 

然后重新編譯,可以看到編譯進(jìn)度了,如果不行請(qǐng)先清楚編譯,再編譯一次。


 


然而又出錯(cuò)了。


 


這個(gè)問題的大致意思是這兩個(gè)指令的調(diào)用格式不正確,但是由于這兩條指令是匯編指令,他的調(diào)用格式是由編譯器決定的,我們?cè)趺粗浪恼_的調(diào)用格式呢?我們先通過搜索找到這條指令調(diào)用的地方。


 



既然這條匯編指令的格式是由編譯器決定的,那么我們?cè)趺粗肋@條指令正確的格式呢?還記得之前創(chuàng)建工程時(shí)有現(xiàn)成的工程模版嗎?我們可以創(chuàng)建一個(gè)現(xiàn)成的工程模版,然后編譯發(fā)現(xiàn)這個(gè)現(xiàn)成的模版編譯是沒有問題。然后對(duì)比兩個(gè)工程中的這條指令格式,我們發(fā)現(xiàn)了一個(gè)驚人的差異,如下圖:


 



好了,問題找到了,在這兩條指令的=r中間加上一個(gè)&符號(hào)即可。兩條指令中都要加。然后再編譯

編譯通過,生成了可執(zhí)行文件elf和hex。


 


然而我們將編譯信息拉到右邊后可以發(fā)現(xiàn),編譯沒有問題,但是在鏈接時(shí)出現(xiàn)了問題。


 


即找不到Reset_Handler。怎么會(huì)找不到Reset_Handler呢,我們都知道Reset_Handler是在啟動(dòng)文件中定義了的,沒有找到除非啟動(dòng)文件沒有被編譯。

于是我們來看看編譯輸出的文件夾,即debug文件夾。


 

 


發(fā)現(xiàn)只有3個(gè)文件夾有輸出,啟動(dòng)文件確實(shí)沒有輸出,為什么呢?初步懷疑是Eclipse沒有識(shí)別啟動(dòng)文件。

那么我們就需要知道eclipse究竟能夠識(shí)別那些文件,我們打開窗體屬性看看,即window->preferences:


 


然后找到File Type,我們可以看到,軟件能夠識(shí)別的匯編文件拓展為*.S是大寫的S


 


而我們工程中的啟動(dòng)文件是小寫的s,所以沒有識(shí)別出來,我嘗試將小寫s格式添加進(jìn)去發(fā)現(xiàn)添加失敗,提示跟大寫S重復(fù),好吧,我們直接將啟動(dòng)文件改成大寫S吧。


 

然后再編譯,OK編譯成功,也沒有鏈接的錯(cuò)誤。


 
 

四、開始調(diào)試:


編譯完成后,我們就要進(jìn)行下載和調(diào)試了。首先進(jìn)行調(diào)試的配置。

Run->Debug Configurations。


 


我們可以看到GDB SEGGER Jlink Debugging選項(xiàng)下面是空的,雙擊這個(gè)選項(xiàng)



然后就新建了一個(gè)選項(xiàng)卡,設(shè)置debug的名稱,調(diào)試的工程和源文件


 

切換到Debugger選項(xiàng)卡,此處才是關(guān)鍵。
在設(shè)置之前,我們普及一下關(guān)于調(diào)試的基本知識(shí),這個(gè)只是不一定是標(biāo)準(zhǔn)的,只是我個(gè)人的一些理解。
我們都知道,調(diào)試實(shí)際就是我們的調(diào)試窗口與Jlink通訊,然后Jlink與開發(fā)板通訊,Jlink與開發(fā)板通訊是由Jlink GDBServerCL完成的,所以我們的調(diào)試窗口要與Jlink通訊,起始只需要與Jlink GDBServerCL通訊即可,那么是什么來代表這個(gè)調(diào)試窗口呢,那自然就是GNU工具鏈的GDB調(diào)試器了,所以我們整體的調(diào)試思路就清晰了,就是GNU GDB與Jlink GDBServerCL通訊,前者扮演客戶端的角色,后者扮演服務(wù)器的角色。

好了,再來看看這個(gè)配置窗口,服務(wù)器設(shè)置自然選擇Jlink GDBServerCL,而客戶端自然選擇GNU工具鏈中的GDB了,然后設(shè)置芯片型號(hào),鏈接模式,傳輸速度等。


 


為了保險(xiǎn),取消掉startup中的這連個(gè)選項(xiàng)


 


好了,點(diǎn)擊Debug開始調(diào)試,我們就可以看到我們的軟件進(jìn)入了調(diào)試模式,并且停留在了main函數(shù)的第一個(gè)有效行上面。


  


調(diào)試界面基本都是一樣的,watch窗口也能調(diào)出來。設(shè)置斷點(diǎn),全速運(yùn)行都行。

如果想結(jié)束調(diào)試,只需要點(diǎn)擊上方的紅色方塊即可,此時(shí)Jlink的GDB會(huì)自動(dòng)關(guān)閉,然后點(diǎn)擊右側(cè)的C/C++選項(xiàng)卡即可回到工程的編輯視圖了。


 


OK,整個(gè)教程到此結(jié)束

上傳一個(gè)LED閃爍的例子:

https://yunpan.cn/OcvADIXx2ZEzSH  訪問密碼 5c12

 Demo3.zip (3.95 MB) 


再來介紹一個(gè)可能會(huì)引發(fā)編譯錯(cuò)誤的問題


通過上面的內(nèi)容,我們能夠知道,eclipse的工程文件跟磁盤上面的文件是同步的,比如,在我們工程的目錄所在文件夾中存在這樣一個(gè)文件/lib/inc/a.c,那么通過reflash后,在我的工程中也必定會(huì)加入/lib/inc/a.c這樣的文件,而不會(huì)MDK那樣需要手動(dòng)添加。
那么問題來了,如果在這個(gè)工程中我寫了一個(gè)測(cè)試代碼,保存為test.c,該文件也存放在工程目錄中,但是由于他是一個(gè)測(cè)試代碼,實(shí)際使用是并不需要,如果我們?cè)趀clipse中點(diǎn)擊remove可能就直接從磁盤上刪除了,此時(shí),我們就需要給這個(gè)工程添加一個(gè)過濾器,將test.c過濾掉。

打開工程設(shè)置


 


找到這個(gè)地方


 


正如圖中所說明的那樣,第一級(jí)的文件夾表示這個(gè)文件夾會(huì)添加到工程中進(jìn)行編譯,第二級(jí)代表這個(gè)文件夾的過濾七,被過濾的文件或文件夾不會(huì)被編譯的

現(xiàn)在添加一個(gè)過濾規(guī)則


  


然后回到工程看看效果

 


我們可以發(fā)現(xiàn)被過濾掉的文件上面有一個(gè)劃線,表面該文件不會(huì)被編譯的。


關(guān)鍵字:Eclipse搭建  stm32  開發(fā)環(huán)境  jlink調(diào)試 引用地址:Eclipse搭建stm32開發(fā)環(huán)境+jlink調(diào)試

上一篇:JLINK給STM32下載的兩種模式--jtag & sw連線及配置
下一篇:STM32 用jlink下載失敗 環(huán)境配置

推薦閱讀

與人類的命運(yùn),再一次因?yàn)樽灾魑淦鞫煌粕狭溯浾擄L(fēng)口。 周三,來自數(shù)百家公司的2000多名科學(xué)家,其中許多是機(jī)器人和人工智能領(lǐng)域的著名的研究人員和工程師,聯(lián)名簽署宣言,誓言絕不將他們的技能用于開發(fā)自主殺人機(jī)器。 這場(chǎng)宣誓行動(dòng)由總部位于波士頓的非盈利組織未來生命研究所(Future of Life InsTItu)發(fā)起,來自36個(gè)國(guó)家的多達(dá)160個(gè)人工智能相...
環(huán)境:win10-MDK:5.15-固件庫(kù):3.5.01.先說對(duì)初學(xué)者來講的解決辦法刪除main.c中的所有定義和函數(shù)。只寫上main(){},其他的什么都不用加。并在最后另起一行。(不另起一行會(huì)提示“without a newline”的警告。)不知道和Linux里用GCC編譯程序的no newline是不是一個(gè)原因。因?yàn)槲募詈蟊硎具B接下一行,而如果文件最后一行行尾有,被包含的下一個(gè)源文件會(huì)...
是德科技宣布已加入愛立信工業(yè)4.0合作伙伴計(jì)劃,為工業(yè)5G網(wǎng)絡(luò)的規(guī)劃、部署和運(yùn)營(yíng)提供具有測(cè)試和測(cè)量解決方案的價(jià)值。是德科技網(wǎng)絡(luò)接入部門副總裁兼總經(jīng)理Giampaolo Tardioli表示:“是德科技廣泛的5G解決方案產(chǎn)品組合使廣泛的生態(tài)系統(tǒng)能夠有效地測(cè)試和驗(yàn)證基礎(chǔ)架構(gòu)和子組件,并實(shí)現(xiàn)第四次工業(yè)革命。我們先進(jìn)的硬件和軟件工具有助于將數(shù)字平臺(tái)與現(xiàn)實(shí)世界聯(lián)...
重磅新品!研華EI-52邊緣智能系統(tǒng)搭載Intel第11代處理器,助您開啟5G和AI應(yīng)用時(shí)代2021年 ,中國(guó)?臺(tái)北–全球嵌入式產(chǎn)品及方案供應(yīng)商研華科技榮幸地宣布推出新品 EI-52高性能邊緣智能系統(tǒng)。此款產(chǎn)品設(shè)計(jì)緊湊,搭載第 11 代Intel Core i5/i3/Celeron處理器,采用即插即用系統(tǒng)設(shè)計(jì),為邊緣到云端互連和 5G & AI 解決方案而設(shè)計(jì)。 它包括硬件和軟件...

史海拾趣

問答坊 | AI 解惑

收集的分立器件知識(shí)材料

本人收集的各種分立器件的基礎(chǔ)知識(shí),供大家參考?。 ?

查看全部問答∨

6.2--DIY進(jìn)展匯報(bào)--PCB畫好了

兩天時(shí)間,PCB就把線給布好了,而且很不錯(cuò),感謝網(wǎng)友DS,現(xiàn)在就是認(rèn)真核對(duì)電路,防止出錯(cuò)! 請(qǐng)大家?guī)兔ψ屑?xì)檢查該板子的原理圖,昨天我就檢查出來兩個(gè)很明顯的錯(cuò)誤。 學(xué)習(xí)的朋友也加油弄懂電路的原理,有問題大家多多討論。 原理圖鏈接:https://bbs. ...…

查看全部問答∨

PCI32 IP CORE調(diào)試

在Xilinx PCI IPcore生成的user design里會(huì)在translate的時(shí)候出錯(cuò), 錯(cuò)誤內(nèi)容:ucf中找不到相關(guān)的IP核的實(shí)例。 修改:synthesis-Properties-advanced-keep hierarchy-soft/yes 即可通過Implement?!?

查看全部問答∨

WinCE打開工程失敗

{FB373486-0E6E-4BB6-8BF2-1F92EACA1468}…

查看全部問答∨

【求助】ARM控制SED1330LCD320*240出現(xiàn)這種現(xiàn)象是什么原因?

正?,F(xiàn)象應(yīng)該是:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■填滿一行 實(shí)際的現(xiàn)象是:  ■  ■■■■■■■■■    ■■■■■■■■■■■■■■  ■■■■隨機(jī)的消失幾個(gè)出現(xiàn)到 ...…

查看全部問答∨

大家誰(shuí)對(duì)現(xiàn)在(凱思昊鵬)比較熟悉

大家?guī)蛶兔旐敼魈烊ツ抢锩嬖?。?

查看全部問答∨

請(qǐng)大家給點(diǎn)建議

我之前一直從事window上應(yīng)用程序的開發(fā),現(xiàn)在打算往底層發(fā)展一點(diǎn),學(xué)習(xí)一下driver的開發(fā),因?yàn)楝F(xiàn)在一直在做windows的東西,所以想從windows的driver開始學(xué)起,請(qǐng)問大家 1 學(xué)習(xí)windows的驅(qū)動(dòng)開發(fā)前景(錢途^^)如何? 2 我想開始先看Programming t ...…

查看全部問答∨

我的問題有點(diǎn)特殊,關(guān)于framebuffer驅(qū)動(dòng)

大家好,由于種種原因,公司現(xiàn)在用的系統(tǒng)內(nèi)核還是linux2.0的內(nèi)核(...大家不要bs),現(xiàn)在打算把microwin移植到lcd上面,這意味著我要先寫fb驅(qū)動(dòng)。   現(xiàn)在的問題在于:配置的時(shí)候把fb選擇之后內(nèi)核無法編譯通過。大部分原因在于console.c文件 ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved