使用FreeMASTER工具,不需要在目標(biāo)工程中引用同F(xiàn)reeMASTER相關(guān)的源代碼,只須將需要實時顯示的變量,創(chuàng)建為全局變量即可,即在MCU的內(nèi)存中分配一個固定的地址。之后,F(xiàn)reeMASTER將通過SWD通信接口,讀取內(nèi)存中的值并實時顯示到PC機(jī)的界面上。
通過SWD接口訪問內(nèi)存,是調(diào)試Arm程序的基本方式之一,同常用的支持在線調(diào)試的調(diào)試器工作方式相同。
硬件平臺
本文使用恩智浦官方在中國市場推出的LPC54114-Lite開發(fā)板作為目標(biāo)設(shè)備。開發(fā)板如圖1所示。
圖1 LPC54114-Lite開發(fā)板
LPC54114-Lite開發(fā)板以LPC54114微控制器為主控核心,板載集成了開源的CMSIS-DAP調(diào)試器,僅用一根USB數(shù)據(jù)線,就可以實現(xiàn)供電、調(diào)試、串口通信的功能, 適合隨身攜帶和展示。
FreeMASTER支持多種連接MCU的通信協(xié)議,如圖2所示,其中包括了常用的JLink和CMSIS-DSP。比較驚喜的是,F(xiàn)reeMASTER竟然還支持OSBDM通信協(xié)議,這就意味著一些基于JM60板載調(diào)試器的Kinetis開發(fā)板也能用起來了,較新的Kinetis開發(fā)板使用基于K20主控的板載調(diào)試器,可以自由變身為CMSIS-DAP、JLink或OpenSDA(使用OSBDM通信協(xié)議)。
圖2FreeMASTER支持多種同MCU的通信協(xié)議
LPC54114-Lite開發(fā)板板載基于LPC11u35的調(diào)試器,內(nèi)置了CMSIS-DAP的固件,本文中將使用CMSIS-DAP作為樣例介紹FreeMASTER的用法,使用其它通信協(xié)議與CMSIS-DAP類似。
創(chuàng)建MCU樣例工程
當(dāng)使用調(diào)試接口作為FreeMASTER與MCU的通信接口,有個極為明顯的好處,就是不需要在用戶程序中寫任何關(guān)于FreeMASTER代碼,這就是所謂的“非侵入性”。用戶程序只要將需要FreeMASTER進(jìn)行圖形化的數(shù)據(jù)安排到全局變量里,讓編譯過程能夠為這些數(shù)據(jù)分配固定地址的內(nèi)存。最終FreeMASTER會通過調(diào)試接口,直接訪問MCU的內(nèi)存,從而得到可顯示的數(shù)據(jù)。
下面使用恩智浦的MCUXpresso SDK中,提供的lpc_adc_burst工程作為示例程序的基礎(chǔ),對這個工程進(jìn)行簡化和改造,實現(xiàn)讓ADC0硬件對通道0(溫度傳感器)和通道3(板載電位器)連續(xù)采樣。采樣結(jié)果被保存在全局變量數(shù)組gAdcSensingValue[]中,并通過FreeMASTER顯示到虛擬示波器界面上。
編譯生成"lpc_adc_burst.out"文件,如圖3所示。然后下載并運行。
圖3 在Keil中設(shè)置生成映像文件格式
注意,如果是以調(diào)試方式下載程序,切記要確保下載后再退出調(diào)試模式,然后通過開發(fā)板上的復(fù)位按鍵硬件復(fù)位。此時Keil要讓出對調(diào)試器的占用,在接下來的操作中要把調(diào)試通信總線交給FreeMASTER。
創(chuàng)建并配置FreeMASTER工程
FreeMASTER軟件在恩智浦官網(wǎng)的產(chǎn)品主頁是:https://www.nxp.com/support/developer-resources/software-development-tools/freemaster-run-time-debugging-tool:FREEMASTER。
創(chuàng)建FreeMASTER新工程
下載、安裝軟件后啟動FreeMASTER軟件,默認(rèn)創(chuàng)建了一個新工程。 右鍵選中左側(cè)樹形目錄中的工程名,選中“屬性”,在彈出對話框中編輯工程名,本例中改為“l(fā)pc54114-lite”,如圖4所示。
圖4 創(chuàng)建FreeMASTER新工程
此時一定要先保存工程,讓工程文件有個確定的文件地址,以便于后續(xù)關(guān)聯(lián)其它文件時可以使用相對路徑。
配置與MCU的通信協(xié)議并導(dǎo)入調(diào)試程序文件
配置新的FreeMASTER工程:
使用CMSIS-DAP通信協(xié)議,通過LPC54114-Lite板載的CMSIS-DSP調(diào)試器,與主控芯片LPC54114通信。
導(dǎo)入"lpc_adc_burst.out"文件,F(xiàn)reeMASTER會自動分析出變量名對應(yīng)的內(nèi)存地址。
操作見圖5所示:
圖5 配置與MCU的通信協(xié)議并導(dǎo)入調(diào)試程序文件
這里面有兩個要點:
指定調(diào)試程序的映像文件時最好用相對路徑,否則整個文件夾被復(fù)制到別的電腦上后會識別不出來原有電腦的路徑。
為了確保變量的地址映射被成功識別出來,可以單擊“View”查看解析出來的符號表,如圖6所示。
圖6FreeMASTER從映像文件中解析出的符號表
生成FreeMASTER變量表
FreeMASTER工程需要在內(nèi)部保存一個FreeMASTER變量的清單,為后續(xù)步驟提供操作對象。FreeMASTER變量是對目標(biāo)芯片上地址的封裝,同時在FreeMASTER內(nèi)部在電腦的內(nèi)存中建立了一個定期刷新的數(shù)據(jù)緩存,并自動更新緩存中變量的值。后續(xù)示波器顯示的變量,是直接從這個緩存中讀取的。創(chuàng)建變量表的操作如圖7所示。
圖7 生成FreeMASTER變量表
注意,只有在變量表中創(chuàng)建的變量才能被后續(xù)創(chuàng)建的虛擬示波器識別出來。
創(chuàng)建虛擬示波器頁面并設(shè)定顯示通道
右鍵選中工程名,在彈出菜單中選中“New Scope...”,創(chuàng)建新的示波器頁面。 在配置新示波器頁面中,為新示波器頁面命名并指定該示波器頁面的刷新周期,在“Setup”標(biāo)簽頁中指定顯示通道,為指定通道選擇變量,并可為指定通道命名。此處在一個示波器頁面中支持最多8個通道,并可分組顯示。操作界面如圖8所示。
圖8 創(chuàng)建新的示波器頁面并設(shè)定顯示通道
用戶可以在一個FreeMASTER工程下面創(chuàng)建多個示波器頁面。另外FreeMASTER還允許創(chuàng)建其它可視化數(shù)據(jù)的子模塊,用戶可以通過JavaScript和Html語言編寫網(wǎng)頁添加到其中。
啟動FreeMASTER工程
此時全部配置工作就已經(jīng)做好了,確保MCU端程序正在運行,并且電腦上沒有其它程序占用與MCU連接的調(diào)試總線,就可以啟動FreeMASTER開始采集和顯示數(shù)據(jù)了。
點擊FreeMASTER工程窗口工具欄中的“Start/Stop Communication(Ctrl+K)”圖標(biāo),之后就能看到示波器頁面上有曲線出來了。如圖9所示。
圖9 啟動FreeMASTER工程
圖中可以看到:
一條比較平穩(wěn)的紅色曲線,它顯示的是變量gAdcSensingValue[0]的值,也就是芯片內(nèi)部溫度傳感器的采樣值.
一條變化劇烈的綠色曲線,它顯示的是變量gAdcSensingValue[1]的值,也就是從板載電位器上取得帶采樣值,而此時,我正在用螺絲刀旋轉(zhuǎn)它以改變采樣值。
總結(jié)
本文基于恩智浦官方的LPC54114-Lite開發(fā)板,簡單介紹了數(shù)據(jù)可視化工具FreeMASTER軟件的用法。
FreeMASTER可以使用常用的CMSIS-DAP調(diào)試器作為通信媒介,使用通用的SWD接口通信,無需在應(yīng)用程序中進(jìn)行專門的通信協(xié)議移植工作,F(xiàn)reeMASTER軟件不需要“侵入”目標(biāo)程序,只要將待檢測變量創(chuàng)建為全局變量即可。使用FreeMASTER可以快速實現(xiàn)對MCU的數(shù)據(jù)可視化,方便調(diào)試。
另外,F(xiàn)reeMASTER具有非常豐富的功能和強大的可擴(kuò)展性,例如,可以自動記錄數(shù)據(jù)并導(dǎo)出到多種常用的數(shù)據(jù)文件格式,可以支持JavaScript和Html語言編程的網(wǎng)頁,定制顯示頁面。這些功能讀者在基于本文入門FreeMASTER軟件后繼續(xù)發(fā)掘。
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351195 -
數(shù)據(jù)可視化
+關(guān)注
關(guān)注
0文章
466瀏覽量
10259
原文標(biāo)題:在PC上對MCU程序中的數(shù)據(jù)進(jìn)行可視化,用過FreeMASTER嗎?
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論