182|1

34

帖子

0

TA的资源

一粒金砂(中级)

【瑞萨RA8D1开发板,基于M85内核的图形MCU测评】RA8D1移植FreeRTOS [复制链接]

开发环境:
IDE:MKD 5.38a
开发板:CPKCOR-RA8D1B开发板
MCU:R7FA8D1BHEC332AS00

1 前言

基于瑞萨的MCU移植FreeRTOS很简单,只需简单配置即可生成FreeRTOS的工程。笔者这里使用Renesas RA Smart Configurator和Keil5开发。

2 新建FreeRTOS工程

打开RA Smart Configurator,选择File->New->FSP Project,即可新建工程。
230333u4y11zdtdd264245.png
Figure 2-1 新建FSP Project工程
首先选择工程路径,笔者这里使用默认的路径。
230333toz2loqke8l7l73e.png
Figure 2-2 工程路径选择
接下来配置FSP版本,MCU型号等信息,根据实际情况选择吧。
230333og7xntow1yio44zg.png
Figure 2-3 FSP 基本参数配置
然后就是选择安全策略,尽管RA8D1支持 TrustZone,但这里暂时不选。
230333mxdxkg2gkhx7h1n2.png
Figure 2-4 选择是否支持 TrustZone
接下来选择RTOS的支持,FSP 5.1.0支持FreeRTOS、Threadx,这里选择FreeRTOS。
230333urgr5xlvl3rfx868.png
Figure 2-5 选择RTOS
接下来就是选择工程模板。
230333rpeenendegwvop6d.png
Figure 2-6 工程模板选择
接下来在新建一个空任务。点击“Stacks Configuration->New Thread”即可新建一个任务。
230333hhio11aapih3790x.png
Figure 2-7 配置任务
Common是关于FreeRTOS的配置,Thread是新建线程的配置参数,这里只关注Thread的配置。
其中Symbol是任务句柄的名字,Name是任务入口的名字,Stack size为栈大小,Priority为任务优先级。Memory Allocation为内存分配方式,这里使用静态开辟。如果要是用动态开辟,需要把Common中的Memory Allocation中的Dynamic Allocation使能,并设置总的Heap Size,其他参数默认即可。
还需要配置下时钟,外部晶振是24MHz,因此需要修改下输入时钟的大小,MOSC默认是20MHz。主频的时钟为默认的 240 MHz,来源是MOSC的24MHz时钟,经过PLL倍频,流向系统时钟。详细请查看RA Smart Configurator文件的配置。
230333kh5azmddvfsg2djm.png
Figure 2-8 RA Smart Configurator时钟配置
这里将LED配置后为输出模式。
230333sz88hhdprwrssedb.png
Figure 2-9 RA Smart Configurator配置GPIO
然后最后点右上角的 “Generate Project Content” 图标生成工程即可。
配置完成后就可生成工程了。
230333sw1zzdrxvwvxlvp8.png
Figure 2-10 工程生成
最后,打开工程目录,信息如下。
230333fqxmv76r7xy3z1ab.png
Figure 2-11 工程目录

3 编译工程

打开软件,接口尝试编译工程。
230333j0igl7w98p08geye.png
Figure 3-1 MDK编译工程
如果没有报错与警告,说明生成工程成功。
230333p2djycf2u62jyu7j.png
Figure 3-2 编译Log信息
接下来就可以基于FreeRTOS进行开发了。
笔者这里以LED为例,任务函数如下。
#define GPIO_LED1 BSP_IO_PORT_10_PIN_01
/* LED_Thread entry function */
/* pvParameters contains TaskHandle_t */
void led_thread_entry(void * pvParameters)
{
FSP_PARAMETER_NOT_USED(pvParameters);
/* TODO: add your own code here */
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, GPIO_LED1, BSP_IO_LEVEL_LOW);
vTaskDelay(500);
R_IOPORT_PinWrite(&g_ioport_ctrl, GPIO_LED1, BSP_IO_LEVEL_HIGH);
vTaskDelay(500);
}
}
重新编译后下载到板子中LED会不断闪烁。

最新回复

学习学习!   详情 回复 发表于 2024-7-9 21:12

回复
举报

9

帖子

0

TA的资源

一粒金砂(中级)

学习学习!


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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表