查看: 751|回复: 1

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

[复制链接]

116

主题

134

帖子

3778

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3778
发表于 2023-2-24 11:35:38 | 显示全部楼层 |阅读模式
【瑞萨RA4系列开发板体验】第四章 系统移植及应用移植详解
作者:wakojosin

准备工作
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,创建一个工程如下图




6.然后是配置工程,如下图:
调试接口配置

引脚配置

串口和SPI配置

串口配置

SPI配置

CS脚配置

7.创建工程



移植与适配
修改bsp/renesas/ra4m2-eco/board/Kconfig的芯片型号

参考BSP_USING_UART0增加BSP_USING_UART1-9,如下

增加BSP_USING_SPI及BSP_USING_SCI_SPI0-9,如下

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


其中UART0的接收缓存大小改大点,这里是1024:

下面是SCI_SPI9

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

敲命令scons --tartget=mdk5生成keil工程
然后打开keil进行编译,然后是drv_spi.c报错如下:


这是因为定义RT_USING_SPI之后,既没有定义BSP_USING_SPI0也没有BSP_USING_SPI1导致的,修改源码
  1. #include "drv_spi.h"

  2. #ifdef RT_USING_SPI

  3. //#define DRV_DEBUG
  4. #define DBG_TAG              "drv.spi"
  5. #ifdef DRV_DEBUG
  6.     #define DBG_LVL               DBG_LOG
  7. #else
  8.     #define DBG_LVL               DBG_INFO
  9. #endif /* DRV_DEBUG */
  10. #include <rtdbg.h>
  11. // 下面的#if是新增的
  12. #if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1)
  13. // ...此处代码未修改
  14. // 调整ra_hw_spi_init的位置,到rt_hw_spi_device_attach前面
  15. int ra_hw_spi_init(void)
  16. {
  17. // ...此处代码未修改
  18. }
  19. INIT_BOARD_EXPORT(ra_hw_spi_init);
  20. // 新增的#endif
  21. #endif
  22. void rt_hw_spi_device_attach(struct rt_spi_device *device, const char *device_name, const char *bus_name, void *user_data)
  23. {
  24. // ...此处代码未修改
  25. }
  26. #endif /* RT_USING_SPI */
复制代码
然后再次编译,报错如下:

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

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

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


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

然后报错如下:

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


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

drv_sci_spi.c和drv_sci_spi.h内容请查看源码。
运行一次scons --target=mdk5,添加drv_sci_spi.c到工程中
然后编译keil工程,如果出现以下错误:


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

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

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


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

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

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



回复

使用道具 举报

3

主题

195

帖子

1510

积分

金牌会员

Rank: 6Rank: 6

积分
1510
发表于 2023-3-14 10:17:03 | 显示全部楼层

学习了不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户排行榜

RA助手

主题: 116帖子:134精华:0

RA_Lance

主题: 92帖子:132精华:9

lugl

主题: 44帖子:133精华:0

xujiwei263

主题: 16帖子:73精华:0

books咦

主题: 11帖子:11精华:2

Juggernaut

主题: 9帖子:95精华:0
快速回复 返回顶部 返回列表