1.1硬件平臺(tái)介紹
RT-Thread和瑞薩推出的HMI-Board上的主控芯片型號(hào)為R7FA6M3AH3CFB。
瑞薩電子 RA6M3 微控制器 (MCU) 群組使用高性能 Arm? Cortex?-M4 內(nèi)核,提供具備 2D 加速器和 JPEG 解碼器的 TFT 控制器。此外,RA6M3 MCU 提供具有單獨(dú) DMA 和 USB 高速接口的以太網(wǎng) MAC,可確保大的數(shù)據(jù)吞吐量。RA6M3 MCU 采用高效的 40nm 工藝,由開(kāi)放且靈活的生態(tài)系統(tǒng)概念提供支持,即基于 FreeRTOS 的靈活配置軟件包 (FSP),能夠擴(kuò)展以使用其他 RTOSes 和中間件。RA6M3 適用于需要 TFT、以太網(wǎng)、安全性、大型嵌入式 RAM 和 USB 高速 (HS) 的物聯(lián)網(wǎng)應(yīng)用。芯片的特性如下:
20MHz Arm? Cortex?-M4
1MB - 2MB 閃存以及 640kB SRAM
與 EEPROM 存儲(chǔ)數(shù)據(jù)功能類(lèi)似的 64kB 數(shù)據(jù)閃存
可從 100 引腳封裝擴(kuò)展至 176 引腳封裝
具備 DMA 的以太網(wǎng)控制器
TFT 控制器/2D 加速器/JPEG 解碼器
電容式觸摸傳感單元
USB 2.0 全速/USB 高速
CAN 2.0B
SCI(UART、簡(jiǎn)單 SPI、簡(jiǎn)單 I2C)
SPI/ I2C 多主機(jī)接口/SDHI
在RT-Stuido的工程創(chuàng)建界面可以看到板卡的芯片數(shù)據(jù)手冊(cè)、使用手冊(cè),以及開(kāi)發(fā)板的原理圖。
1.2 瑞薩FSP配置安裝和代碼生成
RT-Thread框架如下所示。
其中針對(duì)開(kāi)發(fā)板的BSP驅(qū)動(dòng)部分,使用瑞薩推出的FSP配置工具RASC來(lái)生成板卡的硬件驅(qū)動(dòng)程序。在Github上的可以下載到不同版本的FSP。HMI-Board使用的RASC的版本為v3.5.0。下載完成后,采用默認(rèn)安裝即可。
1.3 嘗試生成Keil工程
使用RASC生成的工程是面向Keil或者IAR等第三方工具,本文選擇使用Keil開(kāi)發(fā)環(huán)境。
在之前安裝好的的FSP目錄下打開(kāi)rasc.exe。
在彈出的工程創(chuàng)建界面中,輸入要?jiǎng)?chuàng)建的工程名稱(chēng)以及路徑。
由于HMI-Board不是Renesas官方推出的開(kāi)發(fā)板,在Board欄中選則“Cunstom User Board(Any Device)”,芯片選擇R7FA6M3AH3CFB,IDE Project Type 選擇Keil MDK Version5。
在RTOS選擇頁(yè)選擇”No RTOS”,不需要操作系統(tǒng)支持。
在工程模板選擇中選擇“Bare Metal - Minimal”,創(chuàng)建出的工程不會(huì)進(jìn)行任何操作,在此基礎(chǔ)上,可以根據(jù)Renesas定義的函數(shù)接口來(lái)實(shí)現(xiàn)用戶(hù)自定義的功能。
工程創(chuàng)建完成后在FSP Configuration的配置頁(yè)中,對(duì)芯片的外設(shè)、模塊、協(xié)議棧等進(jìn)行添加和配置。
查看開(kāi)發(fā)手冊(cè)可以看到P209和P210上外接了兩個(gè)LED燈,P205(TX)和P206(RX)為串口4的引腳。在FSP->Configuration的Stack中添加相應(yīng)的IO模塊和串口模塊。添加完成后的模塊組成如圖所示。
模塊添加完成后,需要根據(jù)硬件的參數(shù)對(duì)其進(jìn)行相應(yīng)的配置,主要是引腳和使用到的串口號(hào)。LED控制屬于通用GPIO輸出。IO模塊的參數(shù)采用默認(rèn)參數(shù)即可。
串口模塊需要指定使用的串口號(hào)、波特率、數(shù)據(jù)位、校驗(yàn)位、停止位以及引腳等信息,模塊的配置如下:
其他外設(shè)的配置方式與此類(lèi)似,這里就不在進(jìn)行介紹了。點(diǎn)擊Generate Project Content生成相應(yīng)的工程,就可以在工程使用上述模塊的接口函數(shù),不再需要自己編寫(xiě)底層的代碼。
生成的Keil工程的目錄如下圖所示。
RASC會(huì)自動(dòng)生成的代碼都在Flex Software標(biāo)簽下,而工程相關(guān)的代碼則存在其它的文件目錄中。
注:目前使用過(guò)程中,在RASC中添加新的模塊并重新生成Keil工程后,會(huì)把Keil中的配置選項(xiàng)重置,這對(duì)開(kāi)發(fā)是一個(gè)不友好的功能,不知道該如何解決。
1.4 串口通訊和IO控制
在RASC中配置的IO和串口模塊在hal_data.c中定義了xx_data.c中定義了相關(guān)模塊的配置、接口和實(shí)例變量。
在瑞薩的提供的HAL庫(kù)中,函數(shù)的接口定義格式為:
R__();
比如
err = R_SCI_UART_Open (&g_uart4_ctrl, &g_uart4_cfg);
err = R_SCI_UART_Write (&g_uart4_ctrl, p_msg, msg_len);
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_09,pin_level);
串口的中斷函數(shù)在RASC聲明為user_uart4_callback,定義如下:
void user_uart4_callback(uart_callback_args_t *p_args)
{
g_data_received_flag=true;
}
定義功能函數(shù)
fsp_err_t uart_ep_demo(void)
{
/* Holds level to set for pins /
bsp_io_level_t pin_level = BSP_IO_LEVEL_LOW;
while (true)
{
if(g_data_received_flag)
{
g_data_received_flag = false;
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_09,pin_level);
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_02_PIN_10,pin_level);
/ Toggle level for next write */
if (BSP_IO_LEVEL_LOW == pin_level)
{
pin_level = BSP_IO_LEVEL_HIGH;
}
else
{
pin_level = BSP_IO_LEVEL_LOW;
}
}
}
}
在入口函數(shù)hal_entry中調(diào)用上述的函數(shù)
void hal_entry(void)
{
/* TODO: add your own code here /
......
/ Initializing IOPORT /
err=R_IOPORT_Open(&g_ioport_ctrl,&g_bsp_pin_cfg);
if(err!=FSP_SUCCESS)
{
APP_PRINT ("rn ** IO PORT INIT FAILED ** rn");
APP_ERR_TRAP(err);
}
/ Initializing UART /
err = uart_initialize();
if (FSP_SUCCESS != err)
{
APP_PRINT ("rn ** UART INIT FAILED ** rn");
APP_ERR_TRAP(err);
}
/ User defined function to demonstrate UART functionality /
err = uart_ep_demo();
if (FSP_SUCCESS != err)
{
APP_PRINT ("rn ** UART EP Demo FAILED ** rn");
deinit_uart();
APP_ERR_TRAP(err);
}
#if BSP_TZ_SECURE_BUILD
/ Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
編譯前勾選使用“Use MicroLIB”
編譯完成后,在下載時(shí)需要在調(diào)試器的配置界面設(shè)定以下參數(shù),這些參數(shù)中的RAM項(xiàng)和指定MCU的SRAM空間分布相關(guān),需要查看使用手冊(cè)來(lái)確定。
下載后運(yùn)行,通過(guò)串口發(fā)送任意字符,可以觀察到板卡上的LED燈在閃爍。
-
加速器
+關(guān)注
關(guān)注
2文章
785瀏覽量
37143 -
EEPROM
+關(guān)注
關(guān)注
9文章
1002瀏覽量
81054 -
電容式觸摸
+關(guān)注
關(guān)注
0文章
36瀏覽量
18698 -
以太網(wǎng)控制器
+關(guān)注
關(guān)注
0文章
37瀏覽量
12640 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1239瀏覽量
39427
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論