CPK-RA6M4評(píng)估板入門指南
開發(fā)環(huán)境
e2 studio:2021-04版
FSP:v3.1.0
目錄
-
首次使用瑞薩CPK-RA6M4評(píng)估板
-
下載并測(cè)試示例
-
Hello World! – Hi Blinky!
-
使用實(shí)時(shí)操作系統(tǒng)
-
《CPK-RA6M4評(píng)估板入門》的文件列表
3. Hello World! – Hi Blinky!
本章內(nèi)容基于《瑞薩RA MCU基礎(chǔ)知識(shí)》中的章節(jié)8. Hello World! – Hi Blinky! 所作。
3.2 使用FSP配置器設(shè)置運(yùn)行環(huán)境
FSP配置器啟動(dòng)后,將為您提供項(xiàng)目的只讀摘要和所選軟件組件的簡(jiǎn)短概述。此外,它還提供了快捷方式,可方便地訪問視頻網(wǎng)站上的瑞薩RA頻道、瑞薩官網(wǎng)上的瑞薩設(shè)計(jì)與支持頁面(可在其中訪問文檔、知識(shí)庫(kù)和Renesas Rulz論壇)以及硬盤上的FSP用戶手冊(cè)。

圖3-8:e2 studio內(nèi)部的“FSP Configuration”(FSP配置)透視圖
在以下名為BSP的選項(xiàng)卡中,可以查看和編輯設(shè)置的多個(gè)方面,例如電路板和器件選擇。在此選項(xiàng)卡的屬性視圖中,可以為板級(jí)支持包進(jìn)行其他設(shè)置,例如,主堆棧的大小或MCU的某些安全功能。在之后的“Clocks”(時(shí)鐘)選項(xiàng)卡中,可以為您的項(xiàng)目分配初始時(shí)鐘配置。任何潛在的問題都將以紅色突出顯示,將鼠標(biāo)懸停在突出顯示的位置上將出現(xiàn)有關(guān)沖突或設(shè)置不完整的說明。
第四個(gè)選項(xiàng)卡“Pins”(引腳)涵蓋了RA MCU的引腳分配。可以根據(jù)端口或外設(shè)列出引腳。如果設(shè)置不兼容或缺失,則配置器右側(cè)的“Package View”(封裝視圖)會(huì)顯示器件的封裝,突出顯示所配置的引腳并標(biāo)記錯(cuò)誤。“Problems”(問題)視圖以及“Pin Conflicts”(引腳沖突)視圖中也會(huì)顯示這些內(nèi)容。這樣,便可將可能的錯(cuò)誤減少到最低限度。
接下來是“Interrupts”(中斷)選項(xiàng)卡。可以在此處指定用戶定義的(即非FSP)驅(qū)動(dòng)程序如何使用單片機(jī)的中斷控制器單元(ICU),以及將哪個(gè)中斷服務(wù)程序(ISR)與ICE事件(中斷)相關(guān)聯(lián)。此外,還可以在此處查看分配的所有ICU事件的完整列表,包括由在配置器的“Stacks”(棧)視圖中創(chuàng)建的FSP模塊實(shí)例生成的ICU事件。
“Event Links”(事件鏈接)選項(xiàng)卡具有類似作用。可以在此處指定驅(qū)動(dòng)程序如何在RA項(xiàng)目中使用事件鏈接控制器(ELC),并且可以聲明此類驅(qū)動(dòng)程序可能通過一組外設(shè)功能產(chǎn)生一組ELC事件或使用一組ELC事件。
需要花費(fèi)大部分時(shí)間的頁面為“Stacks”(棧)頁面,可以在其中創(chuàng)建RTOS線程和內(nèi)核對(duì)象,以及FSP軟件棧。可以添加不同的對(duì)象和模塊,并且可以在“Properties”(屬性)視圖中修改其屬性。所有這些對(duì)象和模塊都將自動(dòng)插入,直到降至需要用戶干預(yù)的程度為止。在這種情況下,一旦鼠標(biāo)懸停在模塊上,便會(huì)將需要注意的模塊標(biāo)記為紅色,同時(shí)給出必要設(shè)置或問題的說明。如果問題解決,模塊將恢復(fù)為標(biāo)準(zhǔn)顏色。
“Stacks”(棧)視圖本身以圖形方式顯示各種棧,可讓您輕松跟蹤不同的模塊。在我們的示例中,僅顯示了一個(gè)具有一個(gè)模塊的線程:在r_ioport上使用g_ioport I/O端口驅(qū)動(dòng)程序的HAL/通用線程。它是由項(xiàng)目配置器自動(dòng)插入的,允許我們僅用幾行代碼便可編寫讓LED閃爍的程序。
最后一個(gè)選項(xiàng)卡的名稱是“Components”(組件),其中顯示了不同的FSP模塊并可對(duì)模塊進(jìn)行選擇。它還列出了可用的RA CMSIS軟件組件。不過,最好通過“Stacks”(棧)頁面在當(dāng)前項(xiàng)目中添加或刪除模塊,因?yàn)檫€可以在其中進(jìn)行配置。
對(duì)于我們的項(xiàng)目,無需在FSP配置器中進(jìn)行任何更改,因?yàn)轫?xiàng)目配置器已經(jīng)為我們進(jìn)行了所有必要的設(shè)置。最后,需要?jiǎng)?chuàng)建基于當(dāng)前配置的附加源代碼。單擊FSP配置器右上角的“Generate Project Content”(生成項(xiàng)目?jī)?nèi)容)按鈕。此操作將從FSP中提取所需文件,將其調(diào)整為在配置器中進(jìn)行的設(shè)置,然后將其添加到項(xiàng)目中。
3.3 編寫前幾行代碼
獲取所有自動(dòng)生成的文件之后,接下來查看創(chuàng)建的內(nèi)容。IDE左側(cè)的“Project Explorer”(項(xiàng)目資源管理器)列出了當(dāng)前包含的所有內(nèi)容。ra_gen文件夾保存通道號(hào)等配置集。src目錄包含一個(gè)名為hal_entry.c的文件。這是稍后要編輯的文件。請(qǐng)注意,盡管在ra_gen文件夾中有一個(gè)名為main.c的文件,但用戶代碼必須轉(zhuǎn)到hal_entry.c中。否則,如果您在FSP配置器中進(jìn)行修改并重新創(chuàng)建項(xiàng)目?jī)?nèi)容,則更改會(huì)丟失,因?yàn)槊看螁螕?em>“Generate Project Content”(生成項(xiàng)目?jī)?nèi)容)時(shí),都將覆蓋該文件。

圖3-9:FSP配置器創(chuàng)建所需文件后的項(xiàng)目樹
該項(xiàng)目還包含幾個(gè)名稱中帶有“ra”或“fsp”的目錄,其中包含F(xiàn)SP的源文件、包含文件和配置文件。通常的規(guī)則是,不得修改這些文件夾(和子文件夾)的內(nèi)容。其中包含由配置器生成的文件,在此所做的任何更改都將在下次生成或刷新項(xiàng)目?jī)?nèi)容時(shí)丟失。用戶可編輯的源文件是直接位于src文件夾或您添加的任何其他文件夾的根目錄中的文件。
接下來,為RA產(chǎn)品家族單片機(jī)編寫第一個(gè)真實(shí)源代碼。計(jì)劃是在CPK-RA6M4評(píng)估板上的用戶LED(紅色)閃爍。因此您必須通過添加代碼來點(diǎn)亮和熄滅LED以及實(shí)現(xiàn)延時(shí)循環(huán)。如何實(shí)現(xiàn)?
實(shí)際上有兩種選擇:一種是通過接口函數(shù)來使用API,另一種是使用BSP實(shí)現(xiàn)函數(shù)。
如果查看文件ra_gencommon_data.c中的代碼,則會(huì)發(fā)現(xiàn)I/O端口驅(qū)動(dòng)程序?qū)嵗?strong>g_ioport具有以下定義:

g_ioport_on_ioport是一個(gè)結(jié)構(gòu)體,用于聲明端口可能執(zhí)行的操作,將分配給g_ioport實(shí)例的API指針。將鼠標(biāo)懸停在該結(jié)構(gòu)體上,可以輕松查看其中的內(nèi)容,此結(jié)構(gòu)體顯示了其成員之一 (.pinWrite) 是指向引腳寫入函數(shù)的指針。
因此,要點(diǎn)亮LED,可以寫入:

但這意味著實(shí)際上需要知道用戶LED連接到哪些I/O端口,以及有多少個(gè)用戶LED可用。為此,我們可以閱讀電路板的文檔或仔細(xì)檢查原理圖以找到正確的端口。或者,也可以只依靠FSP。創(chuàng)建類型為bsp_leds_t的結(jié)構(gòu)體(在board_leds.h中聲明)并為其分配在board_leds.c中定義的全局BSP結(jié)構(gòu)體g_bsp_leds即可解決問題。這兩個(gè)文件均位于項(xiàng)目的raoard a6m4_cpk文件夾內(nèi)。因此,以下兩行代碼足以獲取有關(guān)評(píng)估板上LED的信息:

現(xiàn)在,可以使用LED結(jié)構(gòu)體來訪問電路板上的所有LED,并使用以下語句點(diǎn)亮紅色LED(將端口設(shè)置為低電平將點(diǎn)亮LED,將端口設(shè)置為高電平則將熄滅LED):

此語句后需要有第二條語句,用于將其引腳設(shè)置為高電平以熄滅用戶LED。
最后,需要提供一段延時(shí)以使LED以用戶友好的方式切換。為此,可以再次調(diào)用BSP API:

R_BSP_SoftwareDelay函數(shù)的第一個(gè)參數(shù)是要延遲的單位數(shù),而第二個(gè)參數(shù)是指定的基本單位,在本例中為秒。其他選項(xiàng)包括毫秒和微秒。
最后,由于我們想無限期地運(yùn)行程序,因此必須圍繞代碼創(chuàng)建一個(gè)while(1)循環(huán)。
目前,還需要執(zhí)行的操作是將以下代碼行直接輸入到hal_entry.c文件中的函數(shù)簽名之后,替換/* TODO: add your own code here */ 行。對(duì)于由項(xiàng)目配置器和FSP配置器插入的其他代碼,請(qǐng)保持不變。單片機(jī)需要借助這些代碼來正常運(yùn)行。

編寫代碼時(shí),始終可以使用e2 studio的自動(dòng)完成功能。只需按下

圖3-10:在變量或函數(shù)上按下-將激活e2 studio的代碼補(bǔ)全功能
編寫程序時(shí),另一個(gè)有用的工具是“Developer Assistance”(開發(fā)人員幫助),可以從“Project Explorer”(項(xiàng)目資源管理器)中訪問此工具。在使用FSP配置器配置了項(xiàng)目的軟件堆棧之后,此工具將為您快速了解應(yīng)用程序代碼提供支持。要訪問“Developer Assistance”(開發(fā)人員幫助),請(qǐng)先在“Project Explorer”(項(xiàng)目資源管理器)中展開項(xiàng)目,此工具隨即顯示。顯示工具后,進(jìn)一步展開樹,直到看到堆棧模塊及其API。選擇要使用的API,然后將對(duì)該API的調(diào)用拖放到源文件中。
現(xiàn)在輪到您進(jìn)行操作:請(qǐng)將上面的代碼行輸入到項(xiàng)目的hal_entry.c文件中。為此,展開項(xiàng)目的src文件夾,然后雙擊上述文件。此操作會(huì)在編輯器中將其打開。如果您不想自己輸入所有內(nèi)容,也可以識(shí)別下方二維碼進(jìn)入本手冊(cè)的網(wǎng)站下載完整的項(xiàng)目。
3.4 編譯第一個(gè)項(xiàng)目
輸入所有內(nèi)容后,便可隨時(shí)編譯程序。編譯有兩種不同的配置:調(diào)試和發(fā)布。調(diào)試配置將包含調(diào)試程序所需的所有信息,例如變量和函數(shù)名,并且還將關(guān)閉編譯器的某些優(yōu)化,例如循環(huán)展開。這會(huì)使調(diào)試更加容易,但會(huì)增大代碼大小、減慢代碼執(zhí)行速度。發(fā)布配置將從輸出文件中除去所有這些信息,并開啟完全優(yōu)化,從而減小代碼大小、加快代碼執(zhí)行速度,但是,您再也無法執(zhí)行查看變量等操作(除非您知道它們?cè)诖鎯?chǔ)器中的地址)。
對(duì)于第一個(gè)測(cè)試,可以采用調(diào)試配置(也是默認(rèn)配置)。要編譯項(xiàng)目,單擊主菜單欄上的“build”(編譯)按鈕,編譯過程隨即開始。如果一切正常,編譯將以0個(gè)錯(cuò)誤和0個(gè)警告結(jié)束。如果存在編譯時(shí)錯(cuò)誤,則需要返回代碼,仔細(xì)檢查是否正確輸入了所有內(nèi)容。如果未正確輸入所有內(nèi)容,請(qǐng)相應(yīng)地更改代碼。為了讓您更輕松地定位錯(cuò)誤,編譯器的反饋將直接插入編輯器窗口(如果可能)。
程序編譯成功后,會(huì)創(chuàng)建輸出文件CPK_RA6M4_ExampleProject.elf,需要先將其下載到處理器,然后才能運(yùn)行和調(diào)試該文件。
3.5 下載和調(diào)試第一個(gè)項(xiàng)目
下一步是在評(píng)估板(CPK)上實(shí)際運(yùn)行程序。現(xiàn)在需要將評(píng)估板連接到Windows工作站:將電路板隨附的USB線纜的micro-B端插入系統(tǒng)控制和生態(tài)系統(tǒng)訪問區(qū)域右下角的USB調(diào)試端口J11,將另一端插入PC上的空閑端口。LED1應(yīng)點(diǎn)亮,表示電路板已通電。如果該評(píng)估板支持開箱即用,則預(yù)編程的演示會(huì)運(yùn)行,表明一切都按預(yù)期運(yùn)行。Windows操作系統(tǒng)可能會(huì)顯示一個(gè)對(duì)話框,指示正在安裝J-Link板上調(diào)試器的驅(qū)動(dòng)程序,此過程應(yīng)自動(dòng)完成。此外,還可能會(huì)出現(xiàn)一個(gè)窗口,詢問是否更新J-Link調(diào)試器。強(qiáng)烈建議允許進(jìn)行此更新。
下載
要下載程序,必須先創(chuàng)建一個(gè)調(diào)試配置。單擊“Debug”(調(diào)試)符號(hào)
在出現(xiàn)的窗口中,突出顯示“Renesas GDB Hardware Debugging”(瑞薩GDB硬件調(diào)試)下的CPK_RA6M4_BlinkyProject Debug_Flat。由于項(xiàng)目配置器已經(jīng)進(jìn)行了所有必要的設(shè)置,因此無需在此對(duì)話框中進(jìn)行任何更改。只需單擊窗口右下角的“Debug”(調(diào)試)。此操作會(huì)啟動(dòng)調(diào)試器,將代碼下載到CPK上的RA6M4 MCU,并詢問您是否要切換到“Debug Perspective”(調(diào)試透視圖)。請(qǐng)選擇“Switch”(切換)。“Debug Perspective”(調(diào)試透視圖)將打開,并且程序計(jì)數(shù)器將設(shè)置為程序的入口點(diǎn),即復(fù)位處理程序。此調(diào)試配置僅需要?jiǎng)?chuàng)建一次。下次只需單擊“Debug”(調(diào)試)符號(hào)便可啟動(dòng)調(diào)試器。

圖3-11:選擇MyBlinkyProject Debug_flat后,無需在其他選項(xiàng)卡上進(jìn)行任何更改
運(yùn)行
單擊“Resume”(恢復(fù))按鈕,下一個(gè)停止處將處于main()中調(diào)用hal_entry()的位置。再次單擊該按鈕,程序?qū)⒗^續(xù)執(zhí)行,且用戶LED(紅色)將按預(yù)期的1秒時(shí)間間隔閃爍。
觀察結(jié)果
如果一切正常,單擊主菜單欄上的“Suspend”(暫停)按鈕。這將停止執(zhí)行程序但不會(huì)將其終止。在編輯器視圖中,激活文件hal_entry.c的選項(xiàng)卡,然后右鍵單擊包含對(duì)端口的寫操作的其中一行;在出現(xiàn)的菜單中,選擇“Run to line”(運(yùn)行至指定行)。執(zhí)行將恢復(fù),程序?qū)⒃趩螕舻男刑幫V埂,F(xiàn)在來看一下右側(cè)包含變量的視圖。您將看到列出的Leds結(jié)構(gòu)體。將其展開,瀏覽和分析不同的字段。調(diào)試較大的項(xiàng)目時(shí),此視圖會(huì)派上用場(chǎng)。

圖3-12:變量及其值可以在“Variables”(變量)視圖中進(jìn)行檢查
最后一步是單擊“Terminate”(終止)按鈕,結(jié)束調(diào)試會(huì)話,以停止程序的執(zhí)行。
您已經(jīng)掌握了RA產(chǎn)品家族單片機(jī)的第一個(gè)程序!
本章要點(diǎn)
-
項(xiàng)目配置器將創(chuàng)建新項(xiàng)目所需的所有文件和設(shè)置。
-
FSP配置器允許編程人員基于圖形用戶界面輕松配置FSP和運(yùn)行環(huán)境。
-
調(diào)試配置是調(diào)試項(xiàng)目的必需步驟。它會(huì)自動(dòng)創(chuàng)建,只需要激活即可。
-
實(shí)現(xiàn)所需功能僅需要很少的代碼行。
-
mcu
+關(guān)注
關(guān)注
146文章
17691瀏覽量
357811 -
瑞薩
+關(guān)注
關(guān)注
36文章
22353瀏覽量
87552 -
評(píng)估板
+關(guān)注
關(guān)注
1文章
587瀏覽量
29830 -
RA6M4
+關(guān)注
關(guān)注
0文章
51瀏覽量
600
原文標(biāo)題:CPK-RA6M4評(píng)估板入門指南-第3章(2)
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在CPK-RA6M4 MCU評(píng)估板上讓RT-Thread運(yùn)行起來
基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建方案推薦
Renesas CPK-RA6M4開發(fā)板之SDIO模塊評(píng)測(cè)
CPK-RA6M4開發(fā)板通過串口和ESP8266使用AT命令的聯(lián)網(wǎng)測(cè)試
CPK-RA6M4開發(fā)板的RTC和WatchDog模塊評(píng)測(cè)
基于 RT-Thread Studio的CPK-RA6M4 開發(fā)板環(huán)境搭建
CPK-RA6M4評(píng)估板入門指南(一)
CPK-RA6M4評(píng)估板入門指南(四)
CPK-RA6M4評(píng)估板入門指南(五)
CPK-RA6M4評(píng)估板入門指南(六)
基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建

評(píng)論