Segger Embedded Studio使用有什么技巧?
關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容
來(lái)源:技術(shù)讓夢(mèng)想更偉大
作者:李肖遙
使用SEGGER Embedded Studio(簡(jiǎn)稱SES)據(jù)說(shuō)是越來(lái)越多,畢竟,你們都收錢我免費(fèi)。最近我用dw1000上開(kāi)發(fā)一些定位通信項(xiàng)目,所以也開(kāi)始用了這個(gè)SES平臺(tái),但是由于很久沒(méi)搞這些了,一些簡(jiǎn)單的東西也拋擲腦后,為此我也好好總結(jié)學(xué)習(xí)了下。
SES是什么?
Embedded Studio是segger公司新開(kāi)發(fā)的嵌入式編譯器環(huán)境(IDE),可以用于管理,構(gòu)建,測(cè)試和部署嵌入式應(yīng)用程序,Nordic 的SDK往后的只更新項(xiàng)目工程到SES開(kāi)發(fā)環(huán)境,keil和IAR不再支持。

主要特征:
適用于嵌入式C/C ++編程的專業(yè)IDE解決方案
跨平臺(tái):可在Windows,macOS和Linux上運(yùn)行
包含Clang/LLVM和GCC C/C++編譯器
高度優(yōu)化的運(yùn)行時(shí)庫(kù),可實(shí)現(xiàn)最佳性能和最小代碼量
具有無(wú)縫J-Link集成的功能豐富的調(diào)試器
強(qiáng)大的項(xiàng)目管理器和源代碼編輯器
基于軟件包的項(xiàng)目生成器,適用于所有常見(jiàn)的微控制器
多線程構(gòu)建可最大程度地減少構(gòu)建時(shí)間
免費(fèi)用于任何非商業(yè)用途,例如教育和評(píng)估目的,沒(méi)有任何限制
下載地址
https://www.segger.com/downloads/embedded-studio

有哪些使用技巧
SES有許多使用技巧,本文總結(jié)了一些有用的小技巧,但最讓人爽的還是一個(gè)字:快。
自定義快捷鍵
點(diǎn)擊菜單項(xiàng),通過(guò)Tools –> Options –> Keyboard,實(shí)現(xiàn)自定義快捷鍵,我所改的幾個(gè)功能:
DebugDownloadActive(F8):下載當(dāng)前工程。
在Keil中,下載功能使用快捷鍵F8,與Build功能(F7)臨近,這里設(shè)置成相同快捷鍵。

EditGoToDeclaration(F11):跳轉(zhuǎn)到函數(shù)聲明。
跳轉(zhuǎn)到函數(shù)定義快捷鍵是Alt+G和F12,后者是隱藏快捷鍵,這里設(shè)置與F11相臨。

跳轉(zhuǎn)函數(shù)定義
在Tools –> Options –> Text Editor中,將Ctrl + Left Click Action設(shè)為Go To Definition,即可實(shí)現(xiàn)類似Source Insight中的“Ctrl+點(diǎn)擊”的方式跳轉(zhuǎn)函數(shù)定義。

移除工程中的Code/Data列
在項(xiàng)目文件瀏覽器中,顯示了各文件的Code/Data大小,這兩列寬度無(wú)法調(diào)小,只能橫移,但是占用過(guò)多會(huì)導(dǎo)致代碼瀏覽空間變小,稍微有些不適應(yīng),如下圖。

在工具欄的右邊角落里有個(gè)設(shè)置菜單,可以在菜單中隱藏這兩列,如下圖:

簡(jiǎn)化工程選項(xiàng)(Project Options)
工程中條目太多會(huì)影響我們找一些文件,比較浪費(fèi)時(shí)間,如果我們只顯示我們需要更改或者參考的條目,操作方法是打開(kāi)項(xiàng)目文件瀏覽器的菜單,做如下設(shè)置:

然后在項(xiàng)目文件瀏覽器中會(huì)自動(dòng)增加一個(gè)Project Options目錄,里面存放了我們修改過(guò)的選項(xiàng)。如果手動(dòng)修改了Project Options中的條目,被修改的條目會(huì)自動(dòng)添加到這里。不可以隨意刪除這些條目,刪除操作意味著將其值恢復(fù)為默認(rèn)值。最終效果如下:

編譯器的一些不適應(yīng)的地方
最近誤把這個(gè)編譯輸出的框搞掉了,拖拉都是不行的,后面問(wèn)了熟悉的朋友才發(fā)現(xiàn)問(wèn)題。
鼠標(biāo)必須放在下圖紅色方框內(nèi)才行

按等號(hào)對(duì)齊
寫代碼時(shí)候經(jīng)常遇到這樣情況:
fpoll_head.type = POLL;
fpoll_head.sendID = myID;
fpoll_head.recID = myID+1;
fpoll_head.len = PAYLOAD_LEN_MAX;
希望這些賦值操作按等號(hào)對(duì)齊,實(shí)現(xiàn)如下效果:
fpoll_head.type = POLL;
fpoll_head.sendID = myID;
fpoll_head.recID = myID+1;
fpoll_head.len = PAYLOAD_LEN_MAX;

選中這幾行,調(diào)用菜單項(xiàng):Edit –> Column Tidy功能,即可自動(dòng)按照等號(hào)對(duì)齊。
隱藏?zé)o效代碼
工程中經(jīng)常用#if 0宏開(kāi)關(guān)讓代碼失效,可以設(shè)置無(wú)效代碼的透明度,獲得更好的視覺(jué)體驗(yàn),如下設(shè)置5%,就可以得到下面效果

編輯工程文件
SES的工程文件(*.emProject)實(shí)際上是一個(gè)XML文件,某些場(chǎng)景下可以直接編輯它。點(diǎn)擊Project --> Open Solution in Editor,即可打開(kāi)emProject文件。

自定義宏標(biāo)簽
SES支持常規(guī)的TODO, FIXME宏標(biāo)簽,還支持自定義宏標(biāo)簽,這一點(diǎn)在調(diào)試代碼的時(shí)候,尤其有用。

如圖在代碼注釋中以FIXME開(kāi)頭,即可高亮顯示。

串口終端
SES內(nèi)置了一個(gè)簡(jiǎn)易的串口打印窗口,在調(diào)試時(shí)候不用再開(kāi)第三方串口工具。

在Properties里面設(shè)置串口波特率、串口號(hào)等,最后輸出串口顯示如下圖:

預(yù)編譯代碼
代碼中有的宏代碼經(jīng)過(guò)層層嵌套和拼接操作,無(wú)法直觀的獲知宏背后的原型函數(shù)和參數(shù),SES可以輸出預(yù)編譯后的文件,在當(dāng)前源文件中,如下圖操作

可以打開(kāi)一個(gè)名為xxx_PP.c的文件,如圖,該文件即源文件被預(yù)處理后的文件,在追蹤代碼時(shí)候很有用。
工具欄大圖標(biāo)
現(xiàn)在顯示器分辨率越來(lái)越高,小圖標(biāo)看著吃力。SES的工具欄圖標(biāo)可以設(shè)置為大圖標(biāo),護(hù)眼。在Tools --> Options --> Environment --> Show Large Icon In Toolbars設(shè)置為Yes。

浮點(diǎn)型
ses也支持浮點(diǎn)型打印,具體設(shè)置如下。

包
SES里面帶有很多包,需要自己下載,在tools-->Package Mangner里面可以直接安裝,很齊全。

小結(jié)
Embedded Studio是用于微控制器的功能強(qiáng)大的C/C ++ IDE(集成開(kāi)發(fā)環(huán)境)。嵌入式開(kāi)發(fā)中不同的平臺(tái)有不同的開(kāi)發(fā)環(huán)境,這個(gè)真太多了,也有很多我們常用的工具軟件,每當(dāng)接觸一個(gè)新的東西的時(shí)候就是有點(diǎn)不知下手,但是大部分的功能套路我們是知道的,這樣也有利于我們?nèi)ラ_(kāi)發(fā),免得踩了軟件環(huán)境的坑。
嵌入式編程專輯 Linux 學(xué)習(xí)專輯 C/C++編程專輯 Qt進(jìn)階學(xué)習(xí)專輯
關(guān)注我的微信公眾號(hào),回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
點(diǎn)擊“閱讀原文”查看更多分享。
