8. Hello World! – Hi Blinky!
您將在本章中學(xué)到以下內(nèi)容:
如何從頭開始為EK-RA6M4評估板創(chuàng)建項目。
如何在FSP配置器中更改靈活配置軟件包的設(shè)置。
如何編寫代碼以切換EK上的用戶LED。
如何下載和測試程序。
本章目錄:
使用項目配置器創(chuàng)建項目
使用FSP配置器設(shè)置運行環(huán)境
編寫前幾行代碼
編譯第一個項目
下載和調(diào)試第一個項目
8.3 編寫前幾行代碼
獲取所有自動生成的文件之后,接下來查看創(chuàng)建的內(nèi)容。IDE左側(cè)的“Project Explorer”(項目資源管理器)列出了當(dāng)前包含的所有內(nèi)容。Ra_gen文件夾保存通道號等配置集。Src目錄包含一個名為hal_entry.c的文件。這是稍后要編輯的文件。請注意,盡管在ra_gen文件夾中有一個名為main.c的文件,但用戶代碼必須轉(zhuǎn)到hal_entry.c中。否則,如果您在FSP配置器中進(jìn)行修改并重新創(chuàng)建項目內(nèi)容,則更改會丟失,因為每次單擊“Generate Project Content”(生成項目內(nèi)容)時,都將覆蓋該文件。
圖8-9:FSP配置器創(chuàng)建所需文件后的項目樹
該項目還包含幾個名稱中帶有“ra”或“fsp”的目錄,其中包含F(xiàn)SP的源文件、包含文件和配置文件。通常的規(guī)則是,不得修改這些文件夾(和子文件夾)的內(nèi)容。其中包含由配置器生成的文件,在此所做的任何更改都將在下次生成或刷新項目內(nèi)容時丟失。用戶可編輯的源文件是直接位于src文件夾或您添加的任何其他文件夾的根目錄中的文件。
接下來,為RA產(chǎn)品家族單片機(jī)編寫第一個真實源代碼。計劃是在EK-RA6M4評估板上的綠色LED2和紅色LED3之間每秒交替切換,因此您必須通過添加代碼來點亮和熄滅LED以及實現(xiàn)延時循環(huán)。如何實現(xiàn)?
實際上有兩種選擇:一種是通過接口函數(shù)來使用API,另一種是使用BSP實現(xiàn)函數(shù)。您認(rèn)為哪一種更好?如果您不確定答案,可以回顧第2章。
如果查看文件ra_gencommon_data.c中的代碼,則會發(fā)現(xiàn)I/O端口驅(qū)動程序?qū)嵗齡_ioport具有以下定義:
g_ioport_on_ioport是一個結(jié)構(gòu)體,用于聲明端口可能執(zhí)行的操作,將分配給g_ioport實例的API指針。將鼠標(biāo)懸停在該結(jié)構(gòu)體上,可以輕松查看其中的內(nèi)容,此結(jié)構(gòu)體顯示了其成員之一(.pinWrite)是指向引腳寫入函數(shù)的指針。
因此,要點亮LED,可以寫入:
但這意味著實際上需要知道LED2和LED3連接到哪些I/O端口,以及有多少個LED可用!為此,我們可以閱讀電路板的文檔或仔細(xì)檢查原理圖以找到正確的端口?;蛘撸部梢灾灰揽縁SP。創(chuàng)建類型為bsp_leds_t的結(jié)構(gòu)體(在board_leds.h中聲明)并為其分配在board_leds.c中定義的全局BSP結(jié)構(gòu)體g_bsp_leds即可解決問題。這兩個文件均位于項目的raoards a6m4_ek文件夾內(nèi)。因此,以下兩行代碼足以獲取有關(guān)評估板上LED的信息:
現(xiàn)在,可以使用LED結(jié)構(gòu)體來訪問電路板上的所有LED,并使用以下語句點亮綠色LED2(將端口設(shè)置為低電平將點亮LED,將端口設(shè)置為高電平則將熄滅LED):
此語句后需要有第二條語句,用于將其引腳設(shè)置為高電平以熄滅LED3。
最后,需要提供一段延時以使LED以用戶友好的方式切換。為此,可以再次調(diào)用BSP API:
R_BSP_SoftwareDelay函數(shù)的第一個參數(shù)是要延遲的單位數(shù),而第二個參數(shù)是指定的基本單位,在本例中為秒。其他選項包括毫秒和微秒。
完成這些操作后,接下來要做的是復(fù)制/粘貼三行代碼,并反轉(zhuǎn)第二組中LED的引腳電平。最后,由于我們想無限期地運行程序,因此必須圍繞代碼創(chuàng)建一個while(1)循環(huán)。
目前,還需要執(zhí)行的操作是將以下代碼行直接輸入到hal_entry.c文件中的函數(shù)簽名之后,替換/* TODO: add your own code here */行。對于由項目配置器和FSP配置器插入的其他代碼,請保持不變。單片機(jī)需要借助這些代碼來正常運行。
編寫代碼時,始終可以使用e2 studio的自動完成功能。只需按下
圖8-10:在變量或函數(shù)上按下
編寫程序時,另一個有用的工具是“Developer Assistance”(開發(fā)人員幫助),可以從“Project Explorer”(項目資源管理器)中訪問此工具。在使用FSP配置器配置了項目的軟件堆棧之后,此工具將為您快速了解應(yīng)用程序代碼提供支持。要訪問“Developer Assistance”(開發(fā)人員幫助),請先在“Project Explorer”(項目資源管理器)中展開項目,此工具隨即顯示。顯示工具后,進(jìn)一步展開樹,直到看到堆棧模塊及其API。選擇要使用的API,然后將對該API的調(diào)用拖放到源文件中。
現(xiàn)在輪到您進(jìn)行操作:請將上面的代碼行輸入到項目hal_entry.c文件中。為此,展開項目的src文件夾,然后雙擊上述文件。此操作會在編輯器中將其打開。如果您不想自己輸入所有內(nèi)容,也可以掃描下方二維碼進(jìn)入本手冊的網(wǎng)站下載完整的項目。
8.4 編譯第一個項目
輸入所有內(nèi)容后,便可隨時編譯程序。編譯有兩種不同的配置:調(diào)試和發(fā)布。調(diào)試配置將包含調(diào)試程序所需的所有信息,例如變量和函數(shù)名,并且還將關(guān)閉編譯器的某些優(yōu)化,例如循環(huán)展開。這會使調(diào)試更加容易,但會增大代碼大小、減慢代碼執(zhí)行速度。發(fā)布配置將從輸出文件中除去所有這些信息,并開啟完全優(yōu)化,從而減小代碼大小、加快代碼執(zhí)行速度,但是,您再也無法執(zhí)行查看變量等操作(除非您知道它們在存儲器中的地址)。
對于第一個測試,可以采用調(diào)試配置(也是默認(rèn)配置)。要編譯項目,單擊主菜單欄上的“build”(編譯)按鈕,編譯過程隨即開始。如果一切正常,編譯將以0個錯誤和0個警告結(jié)束。如果存在編譯時錯誤,則需要返回代碼,仔細(xì)檢查是否正確輸入了所有內(nèi)容。如果未正確輸入所有內(nèi)容,請相應(yīng)地更改代碼。為了讓您更輕松地定位錯誤,編譯器的反饋將直接插入編輯器窗口(如果可能)。
程序編譯成功后,會創(chuàng)建輸出文件MyBlinkyProject.elf,需要先將其下載到處理器,然后才能運行和調(diào)試該文件。
8.5 下載和調(diào)試第一個項目
下一步是在評估板(EK)上實際運行程序?,F(xiàn)在需要將評估板連接到Windows工作站:將電路板隨附的USB線纜的micro-B端插入系統(tǒng)控制和生態(tài)系統(tǒng)訪問區(qū)域右下角的USB調(diào)試端口J10,將另一端插入PC上的空閑端口。白色LED4(構(gòu)成文字“EK-RA6M4”中的連字符)應(yīng)點亮,表示電路板已通電。如果該評估板支持開箱即用,則預(yù)編程的演示會運行,表明一切都按預(yù)期運行。Windows操作系統(tǒng)可能會顯示一個對話框,指示正在安裝J-Link板上調(diào)試器的驅(qū)動程序,此過程應(yīng)自動完成。此外,還可能會出現(xiàn)一個窗口,詢問是否更新J-Link調(diào)試器。強(qiáng)烈建議允許進(jìn)行此更新。
如果USB端口旁邊的橙色調(diào)試LED5在短時間內(nèi)不停地閃爍,則表示工作站上的J-Link驅(qū)動程序可能有問題。如果發(fā)生這種情況,請參見第7.1節(jié)獲取可能的解決方案。
下載
要下載程序,必須先創(chuàng)建一個調(diào)試配置。單擊“Debug”(調(diào)試)符號旁邊的小箭頭,然后從下拉列表框中選擇“Debug Configurations”(調(diào)試配置)。
在出現(xiàn)的窗口中,突出顯示“Renesas GDB Hardware Debugging”(瑞薩GDB硬件調(diào)試)下的MyBlinkyProject Debug_Flat。由于項目配置器已經(jīng)進(jìn)行了所有必要的設(shè)置,因此無需在此對話框中進(jìn)行任何更改。只需單擊窗口右下角的“Debug”(調(diào)試)。此操作會啟動調(diào)試器,將代碼下載到EK上的RA6M4 MCU,并詢問您是否要切換到“Debug Perspective”(調(diào)試透視圖)。請選擇“Switch”(切換)。“Debug Perspective”(調(diào)試透視圖)將打開,并且程序計數(shù)器將設(shè)置為程序的入口點,即復(fù)位處理程序。此調(diào)試配置僅需要創(chuàng)建一次。下次只需單擊“Debug”(調(diào)試)符號便可啟動調(diào)試器。
圖8-11:選擇MyBlinkyProject Debug_flat后,無需在其他選項卡上進(jìn)行任何更改
運行
單擊“Resume”(恢復(fù))按鈕,下一個停止處將處于main()中調(diào)用hal_entry()的位置。再次單擊該按鈕,程序?qū)⒗^續(xù)執(zhí)行,并按預(yù)期的1秒時間間隔在評估板上的綠色和紅色LED之間切換。
觀察結(jié)果
如果一切正常,單擊主菜單欄上的“Suspend”(暫停)?按鈕。這將停止執(zhí)行程序但不會將其終止。在編輯器視圖中,激活文件hal_entry.c的選項卡,然后右鍵單擊包含對端口的寫操作的其中一行;在出現(xiàn)的菜單中,選擇“Run to line”(運行至指定行)。執(zhí)行將恢復(fù),程序?qū)⒃趩螕舻男刑幫V埂,F(xiàn)在來看一下右側(cè)包含變量的視圖。您將看到列出的Leds結(jié)構(gòu)體。將其展開,瀏覽和分析不同的字段。調(diào)試較大的項目時,此視圖會派上用場。
圖8-12:變量及其值可以在“Variables”(變量)視圖中進(jìn)行檢查
最后一步是單擊“Terminate”(終止)按鈕,結(jié)束調(diào)試會話,以停止程序的執(zhí)行。
您已經(jīng)掌握了RA產(chǎn)品家族單片機(jī)的第一個程序!
本章要點:
項目配置器將創(chuàng)建新項目所需的所有文件和設(shè)置。
FSP配置器允許編程人員基于圖形用戶界面輕松配置FSP和運行環(huán)境。
調(diào)試配置是調(diào)試項目的必需步驟。它會自動創(chuàng)建,只需要激活即可。
實現(xiàn)所需功能僅需要很少的代碼行。
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23770瀏覽量
671832 -
代碼
+關(guān)注
關(guān)注
30文章
4891瀏覽量
70367 -
FSP
+關(guān)注
關(guān)注
0文章
43瀏覽量
7374 -
配置器
+關(guān)注
關(guān)注
0文章
27瀏覽量
11808
原文標(biāo)題:瑞薩RA產(chǎn)品家族初學(xué)者指南-第8章(2)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何利用代碼編寫器編寫MSP430程序?qū)崿F(xiàn)LED閃爍

如何編寫控制LED燈的亮滅程序代碼
為什么用NUCLEO板上編寫的中斷代碼觸發(fā)LED會失敗呢
如何編寫Arm匯編代碼
使用RESET按鈕切換LED以實現(xiàn)快速用例

如何使用參數(shù)化編寫可重用的verilog代碼
在MicroROS開發(fā)板上編寫HelloWord代碼

FPGA的Verilog代碼編寫規(guī)范
怎樣在codeblocks上編寫程序
兩款LED線性恒流控制芯片:SM2212EK和SM2213EK的對比

評論