应用笔记|米尔Remi Pi FreeRTOS应用开发
2024-05-23
566
来源:米尔电子
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来加速开发。评估套件的详细信息请访问:
https://www.myir.cn/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,也可以到米尔该平台下的资源包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.蓝灯闪烁
2024-09-06
Openharmony软件评估指南-瑞芯微RK3568开发板
Openharmony软件评估指南用于介绍在米尔的开发板上运行Openharmony系统下的核心资源与外设资源的测试步骤与评估方法。本文可作为前期评估指南使用,也可以作为通用系统开发的测试指导书使用。本文档使用于米尔电子的MYD-LR3568系列板卡,该板卡是米尔电子的嵌入式开发平台基于瑞芯微公司的高性能的嵌入式ARM处理器开发的,其中该系列使用的核心芯片为RK3568X。图1-1.米尔MYD-L
2024-09-06
7折,米尔-新唐MA35D1开发板正式开售!
近日,米尔发布基于新唐MA35D1芯片设计的嵌入式处理器模块MYC-LMA35核心板及开发板。MYC-LMA35核心板及开发板不仅集成了高性能的处理器芯片,还采用了创新的设计理念和丰富的外设资源,旨在满足新能源充电桩、工程机械控制器、OBD汽车诊断仪、工业网关、运动控制器和电力DTU等多元化应用场景的需求。为回馈广大客户的支持与厚爱,米尔电子特别推出新品MYD-LMA35开发板7折优惠活动,限量2
2024-09-06
米尔电子获年度AI创新产品奖,多款AI核心板赋能
近日,由电子发烧友网和elexcon2024深圳国际电子展暨嵌入式展、半导体展联合举办的2024第八届人工智能大会顺利举行,大会表彰了在行业中表现卓越的电子元器件和芯片、模组供应商,公布了“2024年度市场卓越表现奖”获奖名单。作为领先的嵌入式处理器模组厂商-米尔电子,凭借多款AI核心板荣获“年度AI创新产品奖”。再次展现出米尔电子在嵌入式模组行业的创新能力。米尔电子深耕嵌入式领域10多年,与ST
2024-08-28
领万元大奖!米尔电子Remi Pi 瑞米派创意秀
大赛简介为鼓励工程师勇于创新探索的精神,提升实践动手能力,更深度的体验瑞米派产品,米尔电子联合瑞萨共同发起“米尔电子&瑞萨 瑞米派创意秀”,提供瑞米派支持开发者创新应用。报名条件:需关注米尔电子公众号的用户;报名对象:面向企业、创客团队、工程师、电子爱好者、研究院等人士,不限个人或团体形式参赛。大赛日程01-活动申请【时间:2024/08/28-2024/09/30】在线填《报名申请表》,
2024-08-28
米尔携瑞萨RZ系列产品亮相Elexcon深圳国际电子展
2024年8月27日-29日,elexcon2024深圳国际电子展在深圳会展中心(福田)隆重开幕。汇聚全球优质品牌广商齐聚现场,打造电子全产业链创新展示、一站式采购及技术交流平台,展示全球产业动态及未来技术趋势。深圳市米尔电子有限公司(简称:米尔电子)作为瑞萨电子的合作伙伴参展,展出基于RZ系列的核心模组和行业应用demo。elexcon瑞萨展台-米尔活动现场精彩1:米尔RZ/G2L开发板的充电桩
2024-08-23
现场送瑞米派!预约瑞萨RZ/G通用MPU研讨会
RZ/G系列是基于Arm®Cortex®架构和RISC-V架构运行Linux操作系统的可扩展MPU平台,具有先进的图形、视频引擎和高速接口。RZ/G系列的可扩展和高效性使其成为工业自动化、楼宇自动化HMI、工业摄像头和网关应用的理想之选。8月28日,瑞萨电子将携手米尔电子、Qt、百问网、AIZIP等合作伙伴举办线下研讨会,邀您赴现场共同探讨RZ/G系列的技术细节,包括硬件架构、软件开发工具以及在工
2024-08-23
国产核心板全面进攻-RK3568开发板评测
随着端侧AI应用的落地,预计集成NPU的SoC产品将迎来爆发式的增量市场。本期与非网给大家带来一款采用国内知名SoC厂商的产品——基于瑞芯微RK3568的开发板(MYD-LR3568J-32E4D-180-I-GK)。此款开发板是米尔电子推出的一款基于瑞芯微RK3568的工业板。笔者手上的为最高规格配置的版本,4GB LPDDR4 + 32GB eMMC,工业级温度的处理器RK3568J。开发板硬
2024-08-15
原生支持17路UART和4路CAN FD,新唐MA35D1核心板发布!
米尔发布基于新唐MA35D1芯片设计的嵌入式处理器模块MYC-LMA35核心板及开发板,MA35D1是集成2个Cortex-A35与1个Cortex-M4的异构微处理器芯片。核心板采用创新LGA 252PIN设计,存储配置256MB DDR3L、256MB Nand Flash/ 8GB EMMC,同时具有丰富的通讯接口,可广泛应用于新能源充电桩、工程机械控制器、OBD汽车诊断仪、工业网关、运动控
2024-07-31
米尔RK3568加推工控板和工控机,更丰富的场景应用
国产之星-瑞芯微RK3568一直备受关注,米尔电子推广的RK3568核心板采用创新LGA设计,核心板质量更可靠,成本更优。除米粉派RK3568(MYD-LR3568开发板)之外,米尔加推MYD-LR3568-GK工控板和MYD-LR3568-GK-B工控机,丰富更多的应用场景。MYD-LR3568-GK工控板基于MYC-LR3568工业级核心板设计,搭载4核ARM Cortex-A55架构的高性能
2024-07-31
新品7折购!米尔RK3568国产开发板
近日,米尔电子发布MYC-LR3568核心板及开发板,核心板基于高性能、低功耗的国产芯片-瑞芯微RK3568。核心板采用LGA 创新设计,可实现100%全国产自主可控。为感谢广大客户支持,新品上架MYD-LR3568系列开发板7折回馈客户,原价499元,抢先体验价350元起!各型号限购20套,每个ID限购1套,售完即止!产品型号对应核心板型号工作温度MYD-LR3568J-32E4D-180-I-