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.c
和system.c
文件来设置堆栈和堆大小。您可以在ra/fsp/src/bsp/cmsis/Device/RENESAS/Source
目录中找到这些系统文件。 - 将e2 Studio生成的
script/fsp.ld
链接器脚本用作设置堆栈和堆区域正确的参考。
堆栈
添加并配置以下堆栈
模拟 > ADC (r_adc
)
属性 | 值 |
---|---|
模块 > 一般 > 名称 | g_adc0 |
模块 > 输入 > 通道扫描掩码 > 通道2 | 已选择 |
引脚 > AN02 | P002 |
连接性 > I2C主设备 (r_iic_master
)
属性 | 值 |
---|---|
模块 > 名称 | g_i2c_touch |
模块 > 通道 | 2 |
模块 > 速率 | 快速模式 |
模块 > 上升时间(纳秒) | 120 |
模块 > 下降时间(纳秒) | 120 |
模块 > 负载周期(%) | 50 |
模块 > 从机地址 | 0x38 |
模块 > 地址模式 | 7位 |
模块 > 超时模式 | 短模式 |
模块 > 回调 | touch_i2c_callback |
模块 > 中断优先级级别 | 优先级6 |
引脚 > SDA | P511 |
引脚 > SCL | P512 |
连接性 > UART (r_sci_uart
)
属性 | 值 |
---|---|
模块 > 一般 > 名称 | g_uart0 |
模块 > 通用 > 通道 | 0 |
模块 > 通用 > 数据位 | 8位 |
模块 > 通用 > 奇偶校验 | 无 |
模块 > 通用 > 停止位 | 1位 |
模块 > 中断 > 回调 | user_uart_callback |
引脚 > TXD_MOSI | P411 |
引脚 > RXD_MISO | P410 |
注意:在分配UART引脚时,将操作模式设置为异步UART。另外,如果要使用P410和P411引脚进行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 |
引脚 > IRQ13 | P009 |
输入 > 外部中断 (r_icu
)
属性 | 值 |
---|---|
模块 > 名称 | g_touch_irq |
模块 > 通道 | 0 |
模块 > 触发 | 下降沿 |
模块 > 数字滤波器 | 启用 |
模块 > 数字滤波器采样时钟 | PCLK / 64 |
模块 > 回调 | touch_irq_cb |
模块 > 引脚中断优先级 | 优先级5 |
引脚 > IRQ00 | P206 |
注意:请确保P206为中断模式,并且其上拉属性为输入上拉。
存储 > QSPI (r_qspi
)
属性 | 值 |
---|---|
模块 > 一般 > 名称 | g_qspi0 |
模块 > 通用 > 总线时序 > 最小QSSL取消选择周期 | 8 QSPCLK |
计时器 > 计时器,通用PWM (r_gpt
)
属性 | 值 |
---|---|
通用 > 引脚输出支持 | 启用 |
模块 > 一般 > 名称 | g_timer_PWM |
模块 > 通用 > 通道 | 7 |
模块 > 通用 > 模式 | 锯齿波PWM |
模块 > 通用 > 周期 | 10 |
模块 > 通用 > 周期单位 | 毫秒 |
模块 > 输出 > 占空比百分比 | 75 |
模块 > 输出 > GTIOCA 输出启用 | 真 |
模块 > 输出 > GTIOCA 停止电平 | 引脚高电平 |
引脚 > GTIOCA | P603 |
注意:当设置GTIOCA引脚时,请确保GPT定时器的操作模式为GTIOCA或GTIOCB,并且引脚P603处于外围模式。
添加S1中断驱动程序r_icu:
属性 | 值 |
---|---|
模块 > 名称 | g_S1_irq |
模块 > 通道 | 13 |
模块 > 触发 | 下降沿 |
模块 > 数字滤波器 | 启用 |
模块 > 数字滤波器采样时钟 | PCLK / 64 |
模块 > 回调 | s1_irq_callback |
模块 > 引脚中断优先级 | 优先级12 |
引脚 > IRQ13 | P009 |
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许可下可用。
了解更多。