C

Renesas RA6M3G FSP配置

要让Qt Quick Ultralite在RA6M3G上运行,FSP需要相当详细的配置。使用e2 studio中的FSP编辑器添加以下FSP堆栈和线程

要了解更多关于FSP配置工具的信息,请参考RA FSP文档中的配置项目添加线程和驱动程序部分。

在Renesas e2 studio中的默认FSP配置

注意:如果表中未指定属性,请使用默认值。

BSP

属性
RA Common > 主堆栈大小(字节)32768
RA Common > 堆大小(字节)102400

注意:

  • 前面列出的值仅适用于初始测试,因为堆栈和堆的大小是应用特定的。
  • 在默认平台配置中,这些值没有任何效果,因为自定义实现允许堆栈区域与堆区域重叠。
  • 使用e2 Studio项目中的startup.csystem.c文件来设置堆栈和堆大小。您可以在ra/fsp/src/bsp/cmsis/Device/RENESAS/Source目录中找到这些系统文件。
  • 将e2 Studio生成的script/fsp.ld链接器脚本用作设置堆栈和堆区域正确的参考。

堆栈

添加并配置以下堆栈

模拟 > ADC (r_adc)

属性
模块 > 一般 > 名称g_adc0
模块 > 输入 > 通道扫描掩码 > 通道2已选择
引脚 > AN02P002

连接性 > I2C主设备 (r_iic_master)

属性
模块 > 名称g_i2c_touch
模块 > 通道2
模块 > 速率快速模式
模块 > 上升时间(纳秒)120
模块 > 下降时间(纳秒)120
模块 > 负载周期(%)50
模块 > 从机地址0x38
模块 > 地址模式7位
模块 > 超时模式短模式
模块 > 回调touch_i2c_callback
模块 > 中断优先级级别优先级6
引脚 > SDAP511
引脚 > SCLP512

连接性 > UART (r_sci_uart)

属性
模块 > 一般 > 名称g_uart0
模块 > 通用 > 通道0
模块 > 通用 > 数据位8位
模块 > 通用 > 奇偶校验
模块 > 通用 > 停止位1位
模块 > 中断 > 回调user_uart_callback
引脚 > TXD_MOSIP411
引脚 > RXD_MISOP410

注意:在分配UART引脚时,将操作模式设置为异步UART。另外,如果要使用P410P411引脚进行UART,请禁用SPI0或将引脚分配为其他用途。

图形 > D/AVE 2D端口接口 (r_drw)

属性
通用 > 允许间接模式启用
通用 > 内存分配自定义
模块 > D2设备句柄名称d2_handle0
模块 > DRW中断优先级优先级2

图形 > 图形LCD (r_glcdc)

属性
模块 > 一般 > 名称g_display0
模块 > 中断 > 回调函数glcdc_callback
模块 > 中断 > 行检测中断优先级优先级2
模块 > 输入 > 图形层1 > 通用 > 水平大小480
模块 > 输入 > 图形层1 > 通用 > 垂直大小272
模块 > 输入 > 图形层1 > 缓冲区 > 缓冲区数量1
模块 > 输入 > 图形层1 > 缓冲区 > 缓冲区分配部分.bss
模块 > 输出 > 时序 > 水平总周期525
模块 > 输出 > 时序 > 水平有效视频周期480
模块 > 输出 > 时序 > 水平空白周期40
模块 > 输出 > 时序 > 水平同步信号周期1
模块 > 输出 > 时序 > 水平同步信号极性低电平有效
模块 > 输出 > 时序 > 垂直总行数316
模块 > 输出 > 时序 > 垂直有效视频行数272
模块 > 输出 > 时序 > 垂直空白行数8
模块 > 输出 > 时序 > 垂直同步信号周期1
模块 > 输出 > 时序 > 垂直同步信号极性低电平有效
模块 > 输出 > 时序 > 数据使能信号极性高电平有效
模块 > 输出 > 时序 > 同步边沿上升沿
模块 > 输出 > 格式 > 颜色格式16位 RGB565
模块 > TCON > Hsync引脚选择LCD_TCON0
模块 > TCON > Vsync引脚选择LCD_TCON1
模块 > TCON > 带宽时钟分频比1/32

注意:如果您需要双缓冲,请将缓冲区数量更改为2

输入 > 外部中断 (r_icu)

属性
模块 > 名称g_S1_irq0
模块 > 通道13
模块 > 触发下降沿
模块 > 数字滤波器启用
模块 > 数字滤波器采样时钟PCLK / 64
模块 > 回调s1_irq_callback
模块 > 引脚中断优先级优先级12
引脚 > IRQ13P009

输入 > 外部中断 (r_icu)

属性
模块 > 名称g_touch_irq
模块 > 通道0
模块 > 触发下降沿
模块 > 数字滤波器启用
模块 > 数字滤波器采样时钟PCLK / 64
模块 > 回调touch_irq_cb
模块 > 引脚中断优先级优先级5
引脚 > IRQ00P206

注意:请确保P206中断模式,并且其上拉属性为输入上拉

存储 > QSPI (r_qspi)

属性
模块 > 一般 > 名称g_qspi0
模块 > 通用 > 总线时序 > 最小QSSL取消选择周期8 QSPCLK

计时器 > 计时器,通用PWM (r_gpt)

属性
通用 > 引脚输出支持启用
模块 > 一般 > 名称g_timer_PWM
模块 > 通用 > 通道7
模块 > 通用 > 模式锯齿波PWM
模块 > 通用 > 周期10
模块 > 通用 > 周期单位毫秒
模块 > 输出 > 占空比百分比75
模块 > 输出 > GTIOCA 输出启用
模块 > 输出 > GTIOCA 停止电平引脚高电平
引脚 > GTIOCAP603

注意:当设置GTIOCA引脚时,请确保GPT定时器的操作模式GTIOCA或GTIOCB,并且引脚P603处于外围模式

添加S1中断驱动程序r_icu

属性
模块 > 名称g_S1_irq
模块 > 通道13
模块 > 触发下降沿
模块 > 数字滤波器启用
模块 > 数字滤波器采样时钟PCLK / 64
模块 > 回调s1_irq_callback
模块 > 引脚中断优先级优先级12
引脚 > IRQ13P009

FreeRTOS的FSP

现在您已经添加了通用的FSP配置,请为项目添加必要的FreeRTOS特有配置。对于LED指示应用,使用单个堆应该足够。

在FSP配置工具中创建一个新的线程

为线程设置以下常用属性

属性
内存分配 > 支持静态分配启用
内存分配 > 支持动态分配启用
内存分配 > 总堆大小102400
内存分配 > 应用程序分配的堆启用
钩子 > 使用心跳钩子启用
可选函数 > uxTaskGetStackHighWatermark() 函数启用

为以下线程设置以下属性:

属性
符号qul_thread
名称QulThread
堆栈大小(字节数)32768
优先级4
线程上下文NULL
内存分配动态
分配安全上下文启用

FreeRTOS堆4堆栈添加到HAL/Common

创建另一个具有以下线程属性的线程:

属性
符号app_thread
名称AppThread
堆栈大小(字节数)1024
优先级4
线程上下文NULL
内存分配动态
分配安全上下文启用

创建一个新的队列,并为其设置以下属性:

属性
符号g_app_queue
项大小(字节数)1
队列长度(项)20
内存分配动态

现在,切换到FSP编辑器中的BSP选项卡,然后单击生成项目内容

在特定Qt许可下可用。
了解更多。