一、新建工程:
點(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ì)被編譯的。
上一篇:JLINK給STM32下載的兩種模式--jtag & sw連線及配置
下一篇:STM32 用jlink下載失敗 環(huán)境配置
推薦閱讀
史海拾趣
為了進(jìn)一步拓展業(yè)務(wù),DLI于1955年加入了知名的都福集團(tuán)(Dover Corporation)。通過這一合作,DLI獲得了更多的資金支持和市場(chǎng)資源,加速了公司的發(fā)展步伐。同時(shí),都福集團(tuán)也為DLI提供了更廣闊的發(fā)展平臺(tái),使其能夠接觸到更多的行業(yè)前沿技術(shù)和市場(chǎng)信息。
DCCOM公司自創(chuàng)立之初,就注重技術(shù)創(chuàng)新和研發(fā)投入。在成立初期,公司研發(fā)團(tuán)隊(duì)成功開發(fā)出一種具有高性能和低功耗特點(diǎn)的電子元件,這一創(chuàng)新技術(shù)迅速贏得了市場(chǎng)的認(rèn)可。隨著技術(shù)的不斷迭代和升級(jí),DCCOM逐漸在電子元件市場(chǎng)上占據(jù)了一席之地。
在半導(dǎo)體領(lǐng)域,技術(shù)創(chuàng)新是企業(yè)持續(xù)發(fā)展的關(guān)鍵。谷峰公司深知這一點(diǎn),不斷加大研發(fā)投入,致力于新技術(shù)的研發(fā)與應(yīng)用。其中,SGT(Super Junction Technology)技術(shù)的成功研發(fā),是谷峰發(fā)展歷程中的一個(gè)重要里程碑。SGT技術(shù)以其低內(nèi)阻、高效率的特點(diǎn),成為高頻應(yīng)用的理想選擇,極大地提升了谷峰產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。此外,谷峰還推出了多款高性能的碳化硅MOSFET產(chǎn)品,進(jìn)一步鞏固了其在功率半導(dǎo)體領(lǐng)域的領(lǐng)先地位。
隨著電子行業(yè)的競(jìng)爭(zhēng)日益激烈,Ambersil公司意識(shí)到,要想在市場(chǎng)中立足,必須注重產(chǎn)品質(zhì)量。公司加大了對(duì)生產(chǎn)線的投入,引進(jìn)了先進(jìn)的生產(chǎn)設(shè)備和技術(shù),嚴(yán)格把控產(chǎn)品質(zhì)量。同時(shí),公司還建立了完善的售后服務(wù)體系,及時(shí)解決客戶在使用過程中遇到的問題。這些舉措使得Ambersil公司的產(chǎn)品在市場(chǎng)上贏得了良好的口碑。
隨著公司業(yè)務(wù)的不斷發(fā)展和產(chǎn)品線的豐富,AIM開始積極拓展市場(chǎng),尋求更廣闊的發(fā)展空間。公司積極參與國(guó)際電子展會(huì)和交流活動(dòng),與全球各地的客戶和合作伙伴建立了緊密的合作關(guān)系。通過與國(guó)際知名企業(yè)的合作,AIM的產(chǎn)品和技術(shù)得以在全球范圍內(nèi)推廣和應(yīng)用,進(jìn)一步提升了公司的知名度和影響力。
為了確保產(chǎn)品質(zhì)量和滿足客戶需求,F(xiàn)air Rite引入了嚴(yán)格的質(zhì)量管理體系,并通過了ISO/TS 16949認(rèn)證。此外,公司還積極拓展國(guó)際市場(chǎng),在美國(guó)、中國(guó)等地建立了生產(chǎn)基地和銷售網(wǎng)絡(luò)。通過全球布局和本土化策略,F(xiàn)air Rite為全球客戶提供高品質(zhì)、高性能的電子元器件。
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. ...… 查看全部問答∨ |
|
在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?!? 查看全部問答∨ |
|
【求助】ARM控制SED1330LCD320*240出現(xiàn)這種現(xiàn)象是什么原因? 正?,F(xiàn)象應(yīng)該是:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■填滿一行 實(shí)際的現(xiàn)象是: ■ ■■■■■■■■■ ■■■■■■■■■■■■■■ ■■■■隨機(jī)的消失幾個(gè)出現(xià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文件 ...… 查看全部問答∨ |
【賽題大匯總】(5.23更新)2011全國(guó)各省市、高?!半娮釉O(shè)計(jì)”選拔賽、校內(nèi)賽題目匯總 本帖最后由 paulhyde 于 2014-9-15 02:58 編輯 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 蜂巢能源2025年試產(chǎn)半固態(tài)電池,2027年大批量供貨
- 激光雷達(dá)進(jìn)化論:RoboSense如何持續(xù)領(lǐng)跑?
- 法雷奧-全景顯示技術(shù) Panovision | 申報(bào)2025第七屆金輯獎(jiǎng)中國(guó)汽車新供應(yīng)鏈百?gòu)?qiáng)
- 公安部:目前我國(guó)市售汽車搭載的“智駕”系統(tǒng),都不具備“自動(dòng)駕駛”功能
- 德賽西威-旗艦級(jí)AI智能座艙域控制器 | 申報(bào)2025第七屆金輯獎(jiǎng)中國(guó)汽車新供應(yīng)鏈百?gòu)?qiáng)
- Mobileye推出駕駛員監(jiān)測(cè)系統(tǒng)(DMS)技術(shù) ,實(shí)現(xiàn)人與車輛協(xié)同駕駛
- 第三屆安富利汽車生態(tài)圈峰會(huì)盛大啟幕,雙城聯(lián)動(dòng)激發(fā)智慧出行產(chǎn)業(yè)新動(dòng)能
- Vicor Corporation 2025年第二季度財(cái)報(bào):專利訴訟和解推動(dòng)強(qiáng)勁增長(zhǎng)
- 智能底盤2.0競(jìng)賽,這家外資巨頭按下加速鍵
- GaN技術(shù)如何應(yīng)用到人形機(jī)器人執(zhí)行關(guān)節(jié)?
- TI 高精度實(shí)驗(yàn)室信號(hào)鏈精品課大作戰(zhàn)——你學(xué)習(xí)我送禮!
- TI 嵌入式處理器最新產(chǎn)品發(fā)布會(huì) 全程在線直播 4月16日精彩為您呈現(xiàn)!預(yù)報(bào)名、看直播、享好禮
- 【TI 嵌入式研討會(huì)集錦】小站添加了很多新內(nèi)容,歡迎提貨!
- 《帶您了解ADI數(shù)字健康生物傳感器系列》有獎(jiǎng)直播
- 解鎖【W(wǎng)5500-EVB-Pico】,探秘以太網(wǎng)底層,得捷Follow me第4期來襲!
- 免費(fèi)下載Vishay最新汽車解決方案
- 答題贏京東卡|《安森美和安富利物聯(lián)網(wǎng)創(chuàng)新設(shè)計(jì)大賽作品集》
- 有獎(jiǎng)?wù){(diào)查:ST MEMS 傳感器論壇用戶問卷調(diào)查,參與有驚喜
- 答題贏好禮:ADI MEMS工業(yè)監(jiān)測(cè)助力機(jī)器大健康發(fā)展
- iOS 14泄密:5.4英寸iPhone 12應(yīng)該沒跑!
- 聯(lián)發(fā)科技發(fā)布了最新5G芯片天璣720
- 谷歌安卓11 Beta 2.5推出,解決Pixel4/XL屏閃爍問題
- 日媒:因疫情緣故 5G版iPhone或在11月才發(fā)布
- 我國(guó)集成電路飛速發(fā)展,上半年已產(chǎn)出1000多億塊
- 給家里換智能鎖之前 先要確認(rèn)這四點(diǎn)
- 美國(guó)會(huì)要求蘋果英特爾等公司說明為何推遲公開芯片漏洞
- 聯(lián)發(fā)科慌了!三星計(jì)劃向其它手機(jī)廠商出售Exynos處理器
- AMD財(cái)報(bào)優(yōu)于預(yù)期 警告芯片漏洞、減稅、數(shù)字貨幣前景影響
- 去年家電等進(jìn)口消費(fèi)類 商品抽查不合格率達(dá)28.3%
- 基于MSP430F552912864上顯示dht的數(shù)據(jù),遇到了些問題
- 求助,keil4打開arm的工程就回卡住
- SHT31測(cè)評(píng)+第二次打樣的擴(kuò)展板
- WinCE 5.0的問題
- PIC16F1823程序例子ADC+UART
- 用單片機(jī)開發(fā)板編出簡(jiǎn)易計(jì)算機(jī)
- STM32的I/O邏輯電平和其他IC的邏輯電平連接問題?
- 6lowpan無線網(wǎng)絡(luò)平臺(tái)相關(guān)調(diào)研
- invalid data received
- 請(qǐng)問什么地方有嵌入式LINUX的介紹?(音頻或視頻)