|
【瑞萨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的线程。
- #include "led1_thread.h"
- /* Led1 Thread entry function */
- /* pvParameters contains TaskHandle_t */
- void led1_thread_entry(void * pvParameters)
- {
- FSP_PARAMETER_NOT_USED(pvParameters);
- /* TODO: add your own code here */
- while(1)
- {
- R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_LOW);
- vTaskDelay(1000);
- R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_HIGH);
- vTaskDelay(1000);
- }
- }
复制代码- #include "led2_thread.h"
- /* Led2 Thread entry function */
- /* pvParameters contains TaskHandle_t */
- void led2_thread_entry(void * pvParameters)
- {
- FSP_PARAMETER_NOT_USED(pvParameters);
- /* TODO: add your own code here */
- while(1)
- {
- R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
- vTaskDelay(2000);
- R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);
- vTaskDelay(2000);
- }
- }
复制代码 对于线程的建立、参数等设置,用户均不用关心。在主程序中也不用在编写代码。到这里,简单的两线程程序就编写完成了。
四、程序执行
程序编写完成后,下载进开发板,就会发现开发板上的两个LED按照不同的时间间隔进行闪烁,其中一个间隔是1s,一个间隔是2s。
通过上述的操作就可以完成一个嵌入式系统的建立,感觉是很方便了,这里凸显了瑞萨半导体开发的便捷性。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|