查看: 1005|回复: 1

【瑞萨RA4系列开发板体验】Keil下FreeRTOS使用

[复制链接]

116

主题

134

帖子

3790

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3790
发表于 2023-2-1 09:05:50 | 显示全部楼层 |阅读模式
【瑞萨RA4系列开发板体验】Keil下FreeRTOS使用
作者:h1654155285.8644

前两个帖子,介绍了编程的基本方法,瑞萨IDE的一个很大优点就是可以利用IDE搭建FreeRTOS,因此本贴就是对FreeRTOS编程进行介绍。
一、项目的建立
项目的建立方法与本人前两次发表的帖子步骤是基本相同的,就是在部分界面要选择操作系统,如下图两图所示。

一路点NEXT后,就可以建立项目,项目建立完成后,可以对FreeRTOS进行设置。
二、任务的建立
keil工程建立后,在keil的工程里面会自动包括FreeRTOS的源文件。下面再建立操作系统的线程。如下图所示。

建立步骤如下:
(1)点击Stacks
(2)点击New Thread,建立新的线程
(3)电机thread窗口,会显示下面的窗口③,该窗口的Common表示对FreeRTOS的设置,对应的是以前对FreeRTOSConfig.h文件的设置,在该软件中,直接在窗口进行设置就可以了,感觉方便了很多。
(4)对线程进行设置。点击窗口④的新建线程,可以对该线程进行设置,如下图所示。

建立步骤如下:
(1)点击Stacks
(2)点击New Thread,建立新的线程
(3)电机thread窗口,会显示下面的窗口③,该窗口的Common表示对FreeRTOS的设置,对应的是以前对FreeRTOSConfig.h文件的设置,在该软件中,直接在窗口进行设置就可以了,感觉方便了很多。
(4)对线程进行设置。点击窗口④的新建线程,可以对该线程进行设置,如下图所示。

将两个IO设置完成后,点击“Generate Project Content”,便可以生成所需要的代码。生产完成后,打开项目所在目录中的keil文件,便可以看到生成的代码。

从图中可以看到,在Keil的文件目录中已经自动集成了FreeRTOS的源文件,而且自己生成了led1_thread_entry和led2_thead_entry两个C文件,在编程的时候直接在这两个文件中编写线程的程序即可。
以下分别是led1和led2的线程。
  1. #include "led1_thread.h"
  2. /* Led1 Thread entry function */
  3. /* pvParameters contains TaskHandle_t */
  4. void led1_thread_entry(void * pvParameters)
  5. {
  6.         FSP_PARAMETER_NOT_USED(pvParameters);

  7.         /* TODO: add your own code here */
  8.         while(1)
  9.         {
  10.                 R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_LOW);
  11.         vTaskDelay(1000);
  12.         R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_HIGH);
  13.         vTaskDelay(1000);                                               
  14.         }
  15. }
复制代码
  1. #include "led2_thread.h"
  2. /* Led2 Thread entry function */
  3. /* pvParameters contains TaskHandle_t */
  4. void led2_thread_entry(void * pvParameters)
  5. {
  6.         FSP_PARAMETER_NOT_USED(pvParameters);

  7.          /* TODO: add your own code here */
  8.          while(1)
  9.          {
  10.                 R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
  11.         vTaskDelay(2000);
  12.         R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);
  13.         vTaskDelay(2000);
  14.          }
  15. }
复制代码
对于线程的建立、参数等设置,用户均不用关心。在主程序中也不用在编写代码。到这里,简单的两线程程序就编写完成了。
四、程序执行
程序编写完成后,下载进开发板,就会发现开发板上的两个LED按照不同的时间间隔进行闪烁,其中一个间隔是1s,一个间隔是2s。
通过上述的操作就可以完成一个嵌入式系统的建立,感觉是很方便了,这里凸显了瑞萨半导体开发的便捷性。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

3

主题

195

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
发表于 2023-3-14 11:19:44 | 显示全部楼层

不错,学习一下
回复

使用道具 举报

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

本版积分规则

用户排行榜

RA助手

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

RA_Lance

主题: 93帖子:136精华:9

lugl

主题: 52帖子:150精华:1

xujiwei263

主题: 18帖子:86精华:0

Juggernaut

主题: 12帖子:118精华:0

books咦

主题: 11帖子:11精华:2
快速回复 返回顶部 返回列表