本篇主要在fpb-ra6e1上移植RT-Thread 5.0。
一、思路
通过RASC工具生成关于RA系列MCU的HAL驱动程序,通过scons配置RT-Thread 相关参数。
RT-Thread 5.0的BSP目录下有RA系列BSP制作教程,同时提供template模板,可以按照教程一步一步来。
二、创建BSP目录
复制 BSP 模板 \renesas\libraries\bsp-template
文件夹到 \renesas
目录并将名称修改为fpb-ra6e1即可。
通过RASC工具,生成一个RA工程,刚好RASC有fpb-ra6e1模板,直接用了。
最终就是这样。
配置USART9,用于RT-Thread 控制台输出。
同时配置LED,用于节奏闪烁。
新增UART stack。
最后点击按钮,生成MDK工程。
三、配置Kconfig
board目录下的kconfig,修改MCU相关信息。
menu "Hardware Drivers Config"
config SOC_R7FA6E10F
bool
select SOC_SERIES_R7FA6E1
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
default y
libraries下面的kconfig,增加MCU相关信息。
config SOC_SERIES_R7FA6E1
bool
select ARCH_ARM_CORTEX_M33
select SOC_FAMILY_RENESAS
default n
再看看UART9在不在,不在的话补起来。
libraries\HAL_Drivers\config下的drv_config.h文件,驱动文件跟RA6M5差不多,直接用了。
#if (defined(SOC_SERIES_R7FA6M5)) || (defined(SOC_SERIES_R7FA6E1))
#include "ra6m5/uart_config.h"
#ifdef BSP_USING_ADC
#include "ra6m5/adc_config.h"
#endif
#ifdef BSP_USING_DAC
#include "ra6m5/dac_config.h"
#endif
#ifdef BSP_USING_PWM
#include "ra6m5/pwm_config.h"
#endif
#ifdef BSP_USING_CAN
#include "ra6m5/can_config.h"
#endif
#endif
修改ra\fsp\src\bsp\cmsis\Device\RENESAS\Source\startup.c
文件:
#ifdef __ARMCC_VERSION
main();
#elif defined(__GNUC__)
extern int entry(void);
entry();
#endif
board.h文件中的RA_SRAM_SIZE
设置成256。
#define RA_SRAM_SIZE 256
#define RA_SRAM_END (0x20000000 + RA_SRAM_SIZE * 1024)
四、配置scons
menuconfig命令后,配置控制台串口。
配置串口。
选择UART9。
退出menuconfig,使用 env 工具输入命令 scons --target=mdk5
重新生成工程
五、添加应用代码
最后,加上APP代码。
#define LED3_PIN BSP_IO_PORT_04_PIN_07
void hal_entry(void)
{
rt_kprintf("\nHello RT-Thread!\n");
while (1)
{
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
}
六、配置MDK工程
先确认MCU是不是正确的。
debug下面的几个配置项。
顺便把下载器也配置好,板载J-LINK。
下载算法,记得RAM算法起始地址和size。
七、编译下载执行
编译还是挺快的。
compiling r_icu.c...
compiling r_ioport.c...
compiling common_data.c...
compiling hal_data.c...
compiling r_sci_uart.c...
compiling pin_data.c...
compiling main.c...
compiling vector_data.c...
linking...
Program Size: Code=34442 RO-data=6330 RW-data=188 ZI-data=4276
FromELF: creating hex file...
".\Objects\rtthread.axf" - 0 Error(s), 2 Warning(s).
Build Time Elapsed: 00:00:06
RT-Thread 5.0启动画面如下:
\ | /
- RT - Thread Operating System
/ | \ 5.0.1 build May 24 2023 22:55:39
2006 - 2022 Copyright by RT-Thread team
Hello RT-Thread!
msh >
再来几个msh cmd:
msh >ps
thread pri status sp stack size max used left tick error
-------- --- ------- ---------- ---------- ------ ---------- ---
tshell 20 running 0x00000084 0x00001000 11
tidle0 31 ready 0x00000054 0x00000100 32
timer 4 suspend 0x00000044 0x00000200 13
main 10 suspend 0x0000006c 0x00000800 09
msh >free
total : 257912
used : 7352
maximum : 7352
available: 250560
256K的SRAM跑OS就是爽!