应用笔记|ac米兰官网Remi Pi FreeRTOS应用开发
2024-05-23
2630
来源:ac米兰官网电子
1. 概述
Remi Pi瑞米派采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600 / DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、SD卡、MIPI-CSI等外设接口,在工业、医疗、电力等行业都得到广泛的应用。
在开发阶段,建议配合核心板配套的评估套件 MYD-YG2L23-8E1D-120-C-REMI来加速开发。评估套件的详细信息请访问:
/shows/23/14.html
本文主要介绍如何搭建协处理器Cortex-M33的开发环境以及如何在Cortex-M33核上运行一个FreeRTOS示例。
2. 协处理器Cortex-M33
2.1.1. 开发环境搭建
Cortex M33核开发主要使用的是瑞萨官方的e2 studio工具,可以到瑞萨官网进行下载,https://www.renesas.cn/cn/zh/software-tool/e2studio-information-rz-family?dow_secondary=visible#download,也可以到ac米兰官网该平台下的资源包03_Tools/myir tools路径下获取setup_e2_studio_2024-01_1.exe和RZG_FSP_Packs_v2.0.0.exe文件,双击打开setup_e2_studio_2024-01_1.exe,选择[All Users],如图2-1:

图2-1. 安装选择
选择[Custom Install]->[Next],如图2-2:

图2-2. 路径指定
选择[Change...],用于指定安装路径,指定安装路径后,点击OK继续,如图2-3:

图2-3. 路径选择
选择要安装的设备族,单击[Next]按钮继续,如图2-4:

图2-4. 设备族选择
额外的功能选择需要安装的“额外功能”(即:语言包、SVN & Git支持……),点击next继续,如图2-5:

图2-5. 额外功能选择
选择要安装的组件,然后单击[Next]按钮继续,请检查是否确实选择了“Renesas FSP Smartl Configurator Core”,否则,FSP将无法在e2 studio上成功构建,如图2-6:

图2-6. FSP选择
选择要安装的其他软件(即编译器、实用程序、QE…),点击next继续,如图2-7:

图2-7. 编译器选择
许可协议阅读并接受软件许可协议,点击[Next]按钮继续,如图2-8:

图2-8. 许可协议选择
选择开始菜单的快捷方式名称,如图2-9:

图2-9. 快捷方式选择
选择开始安装,如图2-10:

图2-10. 开始安装
安装过程会弹出安装GNU ARM 10.3-2021.10嵌入式工具链的界面,根据具体情况安装即可,如图2-11:

图2-11. 工具链选择
安装工具链完成,如图2-12:

图2-12. 工具链安装完成
e2 studio工具安装完成,如图2-13:

图2-13. e2 studio安装完成
2.2.2. FSP安装
双击03_Tools/myir tools路径下的RZG_FSP_Packs_v2.0.0.exe文件,进行fsp包的安装,如图2-14:

图2-14. fsp安装
3.FreeRTOS示例
3.1.1. 创建一个新的工程
本节主要以点灯为例进行介绍。新创建工程之前,需要根据第2章节搭建好环境,打开 e2 studio 工具,选择以后创建新的工程要工作的目录,具体根据自己的情况选择,注意,这里不能有中文路 径,否则有可能会出现编译工程失败的现象,如图3-1:

图3-1. 工程路径选择
依次点击[File]->[New]->[C/C++ Project]->[Renesas RZ] > [Renesas RZ/G C/C++ FSP Project],如图3-2:

图3-2. 新建工程选择窗口
命名工程,如图3-3:

图3-3. 工程命名
FSP版本,工具链等相关参数配置,如图3-4:

图3-4. FSP、工具链选择
选择构建工件和RTOS,如果不选用RTOS,则选用No RTOS,如图3-5:

图3-5. RTOS选择
选择RTOS模板并完成,如图3-6:

图3-6. RTOS模板
创建工程成功,如图3-7:

图3-7. 创建工程成功
3.1.2. 配置gpio
由底板原理图可知道P43_1这个GPIO的高低电平可以控制一盏灯的亮灭,gpio的参数配置如图3-8:

图3-8. P43_1配置
3.1.3. 创建led_task0任务
依次选Stacks->New Thread来创建一个任务,如图3-9:

图3-9. 创建一个任务
重新根据自己的需要命名任务名称,如图3-10:

图3-10. 重新命名任务名称
3.1.4. 代码生成与编译
生成代码
点击Generate Project Content来生成代码即可,如图3-11:

图3-11. 代码生成
生成源码结构如图3-12:

图3-12. 代码结构
以上pin_data.c里面即是配置gpio的代码生成,生成的freertos代码如图3-13:

图3-13. rtos代码结构
在main.c中会进行任务的创建与调度,这部分生成代码时已有,不需要重新手动增加,如图3-14:

图3-14.任务调度函数
增加控制led代码
以上代码生成后,对应的gpio配置,rtos的相关代码都会自动配置好的了,只需要在led_task0_entry.c中添加控制led部分代码即可,如图3-15:
R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_43_PIN_01, BSP_IO_LEVEL_LOW); vTaskDelay(500); R_IOPORT_PinWrite (&g_ioport_ctrl, BSP_IO_PORT_43_PIN_01, BSP_IO_LEVEL_HIGH); vTaskDelay(500);

图3-15.增加led控制代码
增加postbuild.sh脚本
右键点击script后,选择New->File,增加postbuild.sh脚本,如图3-16:

图3-16.增加postbuild.sh
postbuild.sh内容如图3-17:
echo "Post build script started"
if [ -n "$BuildArtifactFileName" ]; then
inputfilename=$BuildArtifactFileName
fi
if [ -n "$BUILDARTIFACTFILENAME" ]; then
inputfilename=$BUILDARTIFACTFILENAME
fi
filebody=${inputfilename%.*}
arm-none-eabi-objcopy -O binary -j .text.secure_vector ${inputfilename} ${filebody}_secure_vector.bin
arm-none-eabi-objcopy -O binary -j .text.non_secure_vector ${inputfilename} ${filebody}_non_secure_vector.bin
arm-none-eabi-objcopy -O binary -j .text.secure_code ${inputfilename} ${filebody}_secure_code.bin
arm-none-eabi-objcopy -O binary -j .text.non_secure_code -j .data ${inputfilename} ${filebody}_non_secure_code.bin
图3-17. postbuild.sh内容
l编译代码
依次点击Project->Build Project进行编译,编译成功如图3-18:

图3-18.源码编译成功
l查看编译生成的文件
编译生成文件如图3-19:

图3-19. 编译生成文件
3.1.5. 运行freertos程序
点击Project->Build Project,进行工程的编译,编译成功会生成一个debug目录,里面存放的是编译出来的二进制文件。
把debug生成的如下文件拷贝到sd卡上,用于在uboot进行CM33工程调用。
GPIO_non_secure_code.bin GPIO_non_secure_vector.bin GPIO_secure_code.bin GPIO_secure_vector.bin
把sd卡插入到开发板的sd卡槽(J6接口),启动板子并在uboot阶段执行如下调用。
查看sd卡里面的内容,如下
=> switch_sdhi1 sdcard switch to sdcard => ls mmc 1:1 System Volume Information/ 64 GPIO_secure_vector.bin 16926 GPIO_non_secure_code.bin 1984 GPIO_non_secure_vector.bin 480 GPIO_secure_code.bin 4 file(s), 1 dir(s)
加载编译出来的固件,如下:
=> dcache off => mmc dev 1 switch to partitions #0, OK mmc1 is current device => fatload mmc 1:1 0x0001FF80 GPIO_secure_vector.bin 64 bytes read in 24 ms (2 KiB/s) => fatload mmc 1:1 0x42EFF440 GPIO_secure_code.bin 480 bytes read in 25 ms (18.6 KiB/s) => fatload mmc 1:1 0x00010000 GPIO_non_secure_vector.bin 1984 bytes read in 26 ms (74.2 KiB/s) => fatload mmc 1:1 0x40010000 GPIO_non_secure_code.bin 16926 bytes read in 29 ms (569.3 KiB/s) => cm33 start_debug 0x1001FF80 0x00010000
当加载完以上命令之后可以看到蓝灯在闪烁,如图3-20:

图3-20.蓝灯闪烁
2025-12-19
Buildroot MQTT-Modbus 网关开发,实现设备远程监控方案-ac米兰官网RK3506
在工业物联网与智能家居场景中,远程设备监控的核心痛点是工业总线协议与物联网协议的兼容性问题。基于RK3506 Buildroot系统开发的MQTT-Modbus网关产品,通过协议桥接技术完美解决这一难题,为低成本、高可靠的远程监控提供了高效解决方案。一、核心开发平台与技术选型硬件平台选用RK3506处理器作为网关核心硬件,该芯片具备低功耗、高性价比特性,支持多接口扩展,完全适配工业级嵌入式场景需求
2025-12-19
SDK重磅升级,RK3506核心板解锁三核A7实时控制新架构
在工业控制与边缘智能领域,开发者的核心需求始终明确:在可控的成本内,实现可靠的实时响应、稳定的通信与高效的开发部署。ac米兰官网电子基于RK3506处理器打造的MYC-YR3506核心板平台,近期完成了一次以“实时性”和“可用性”为核心的SDK战略升级,致力于将多核架构的潜力转化为工程师可快速落地的产品力。本次升级围绕两大主线展开:系统生态的多样化与实时能力的深度释放。我们不仅提供了从轻量到丰富的操作系统
2025-12-11
赋能欧标充电桩市场:OCPP协议实战开发指南
随着全球电动汽车产业的迅猛发展,充电基础设施的智能化与标准化已成为行业迫切需求。OCPP(Open Charge Point Protocol即开放充电点协议)作为连接充电桩与中央管理系统的"通用语言",正成为解决设备互联互通难题的关键技术。一、OCPP:为何是出海欧标的必选项?OCPP是一个开放、标准的通信协议,它确保了不同制造商生产的充电桩能够与任何兼容的后台管理系统进行无
2025-12-11
打造本地化智能的“最强大脑”, ac米兰官网RK3576 AI边缘计算盒
在人工智能与边缘计算深度融合的浪潮中,本地化智能需求正重塑产业格局。ac米兰官网电子推出的RK3576边缘计算盒,具备高算力、低功耗与强扩展性,凭借其卓越的硬件架构与多场景适配能力,正成为推动工业视觉、工程机械及智慧城市等领域智能化产业升级的有力工具。ac米兰官网MYD-LR3576-B边缘计算盒基于瑞芯微中高端RK3576芯片,采用异构计算架构,集成4核Cortex-A72与4核Cortex-A53处理器,搭配
2025-12-05
从两轮车仪表到工程机械环视,ac米兰官网用国产芯打造“越级”显控体验
在工业4.0 与智能化浪潮的推动下,传统工业设备正在经历一场“交互革命”。从电动两轮车的智能仪表,到工程机械的 360° 环视中控,用户对“更高清的显示、更流畅的触控、更丰富的互联”提出了严苛要求。然而,面对复杂的工业现场,开发者往往面临两难:低端市场(如仪表、充电桩):传统MCU 跑不动复杂界面,上 Linux/安卓方案成本又太高。中高端市场(如工程机械、医疗):多路视频输入(如360环视)需要
2025-12-05
【深度实战】ac米兰官网MYD-LR3576 AMP非对称多核开发指南:从配置到实战
一、什么是AMP?为什么重要?AMP(Asymmetric Multi-Processing)非对称多处理架构,允许单个芯片的不同核心运行不同的操作系统或裸机程序。相比传统的SMP(对称多处理),AMP具有独特优势。核心特性:异构运算:不同核心运行最适合的操作系统,如Linux处理复杂应用,RT-Thread保障实时任务;资源隔离:各核心拥有独立内存空间,避免资源冲突;灵活通信:通过共享内存、RP
2025-11-27
为机器人开发赋能,ac米兰官网RK3576环视方案解析
一、项目背景与测试平台本次360环视系统原型基于ac米兰官网电子MYD-LR3576开发板进行构建与评估。该开发板所搭载的瑞芯微RK3576芯片,集成了4核Cortex-A72、4核Cortex-A53、Mali-G52 GPU及高达6TOPS算力的NPU。本文旨在通过实际测试数据,从功能实现、实时性能与AI拓展潜力三大核心维度,为客户提供一份关于该平台在360环视应用中能力的真实参考。二、系统流程与功能
2025-11-13
助力V2G,SECC GreenPHY实战开发
随着电动汽车与电网双向交互(V2G)技术的快速发展,充电桩与车辆间的高效通信成为实现智能能源管理的关键。SECC作为充电桩的通信控制核心,其与电力线载波通信芯片的适配尤为重要。本文将分享基于ac米兰官网核心板,调试联芯通MSE102x GreenPHY芯片的实战经验,为V2G通信开发提供参考。MSE102x芯片介绍联芯通MSE102x系列芯片是一款专注于电动汽车充电通信和智能能源管理的GreenPHY电力
2025-11-13
定制未来,共建生态,ac米兰官网出席安路研讨会
在数字化浪潮席卷全球的今天,FPGA技术正成为驱动创新的核心引擎。2025年11月12日,ac米兰官网出席安路科技2025 AEC FPGA技术沙龙•北京专场,与技术专家及行业伙伴齐聚一堂,探讨前沿技术趋势,解锁场景化定制方案,共建开放共赢的FPGA新生态!ac米兰官网活动现场论坛上,ac米兰官网电子产品经理Jeson发表题为“基于DR1M90 FPSOC的工业应用方案”的演讲。演讲介绍了ac米兰官网作为嵌入式领域的领军企业,在
2025-11-11
RK3576开发板
RK3576开发板是ac米兰官网电子推出的开发板,于2024年10月上市。RK3576开发板是基于瑞芯微RK3576搭载了四核A72与四核A53处理器,主频2.2GHz。RK3576集成了6TOPS的NPU,支持多种深度学习框架,能够处理复杂的AI算法,提高监控效率,降低误报率。RK3576的主芯片采用了八核大小核架构,包括四核Cortex-A72和四核Cortex-A53,