瑞萨单片机william hill官网
直播中

范成功

12年用户 127经验值
擅长:嵌入式技术
私信 关注

【瑞萨RA4系列开发板体验】+ 第四章 系统移植及应用移植详解

准备工作

  1. 先安装keil和ra smart config工具,安装步骤参考网上教程。
  2. 到https://github.com/RT-Thread/rt-thread fork源码到自己账号。
  3. 通过git clone从自己fork的仓库下载源码;
  4. 到bsp/renesas/libraries下复制bsp-template到bsp/renesas目录,然后重命名为ra4m2-eco;
  5. 打开ra smart config,创建一个工程如下图
    image.png
    image.png
    image.png
    image.png
  6. 然后是配置工程,如下图:
    调试接口配置
    image.png
    引脚配置
    image.png
    串口和SPI配置
    image.png
    串口配置
    image.png
    SPI配置
    image.png
    CS脚配置
    image.png
  7. 创建工程
    image.png

移植与适配

修改bsp/renesas/ra4m2-eco/board/Kconfig的芯片型号

image.png

参考BSP_USING_UART0增加BSP_USING_UART1-9,如下

image.png

增加BSP_USING_SPI及BSP_USING_SCI_SPI0-9,如下

image.png
在env里通过menuconfig选中UART0、UART4和SCI_SPI9,如下图:
image.png

image.png
其中UART0的接收缓存大小改大点,这里是1024:
image.png
下面是SCI_SPI9
image.png

然后修改控制台串口号为UART4,即通过206和207跟shell交互:
image.png

敲命令scons --tartget=mdk5生成keil工程

然后打开keil进行编译,然后是drv_spi.c报错如下:
image.png

这是因为定义RT_USING_SPI之后,既没有定义BSP_USING_SPI0也没有BSP_USING_SPI1导致的,修改源码

#include "drv_spi.h"

#ifdef RT_USING_SPI

//#define DRV_DEBUG
#define DBG_TAG              "drv.spi"
#ifdef DRV_DEBUG
    #define DBG_LVL               DBG_LOG
#else
    #define DBG_LVL               DBG_INFO
#endif /* DRV_DEBUG */
#include <rtdbg.h>
// 下面的#if是新增的
#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1)
// ...此处代码未修改
// 调整ra_hw_spi_init的位置,到rt_hw_spi_device_attach前面
int ra_hw_spi_init(void)
{
// ...此处代码未修改
}
INIT_BOARD_EXPORT(ra_hw_spi_init);
// 新增的#endif
#endif
void rt_hw_spi_device_attach(struct rt_spi_device *device, const char *device_name, const char *bus_name, void *user_data)
{
// ...此处代码未修改
}
#endif /* RT_USING_SPI */

然后再次编译,报错如下:
image.png

修改drv_config.h,并复制bsp/renesas/libraries/HAL_Drivers/config下的ra6m4文件夹到此目录,改名为ra4m2

image.png

修改bsp/renesas/libraries/Kconfig,在最后增加以下内容
image.png

再次进一下menuconfig,然后保存一下配置,最后进行keil编译。

报错如下:
image.png

修改hal_entry.c里面的代码,改成如下后再次编译:
image.png

然后报错如下:
image.png

接下来需要增加sci_spi相关的驱动代码才能解决错误,请看下一节。

添加驱动代码

添加drv_sci_spi.c和drv_sci_spi.h,到bsp/renesas/libraries/HAL_Drivers目录下,然后修改该目录下的SConscript,增加如下内容:
image.png

drv_sci_spi.c和drv_sci_spi.h内容请查看源码。

运行一次scons --target=mdk5,添加drv_sci_spi.c到工程中
然后编译keil工程,如果出现以下错误:
image.png

则右键drv_sci_spi.c,然后排除drv_sci_spi.c编译一次,然后包含进来之后在编译一次就好了。
image.png

也可能是前面ra smart config中添加r_sci_spi名字写错了,如下图改过来就可以:
image.png

到此工程编译应该是通过了。

添加SPI SD驱动

通过env的menuconfig添加SD卡相关驱动包:

image.png

通过scons更新一下工程,hal_entry函数修改如下:
image.png

然后编译,到此SD卡驱动起来了。接下来移植应用软件就可以了。

回帖(1)

范成功

2022-12-8 11:09:53
源码正在申请官方github的pr,完成之后可以看到完整工程。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分