米尔更新面向工业产品的软件系统-基于瑞米派(Remi Pi)

米尔电子发布的瑞萨第一款MPU生态板卡——瑞米派(Remi Pi)自上市当天200套售罄,获得不少新老用户的青睐。为感谢大家的支持,米尔加推300套瑞米派活动,以补贴价回馈大家,抢完即止!

不仅如此,此次瑞米派发布myir-image-core系统,相比上次发布适用于HMI场景的全面型myir-image-full系统,myir-image-core系统则更轻量,非常适用于各种工业场景应用,如专为工业控制场景移植的RT-Linux实时补丁和Ethercat主站,专为轻量级工业显示场景移植的LVGL,专为工业实时性场景移植的FreeRTOS实时操作系统。瑞米派支持的系统会不断更新,下个月还会持续推出瑞米派的Ubuntu和Debian系统,敬请期待!

一、系统概述

Remi Pi的myir-image-core系统是基于 Yocto 构建的带有LVGL界面的镜像,包含完整的硬件驱动,常用的系统工具,调试工具等,包含RT-Linux实时补丁和Ethercat 主站,支持使用 Shell, C/C++进行应用开发。

类别

名称

描述

源码

Flash-Writer

Flash-Writer 1.06

TF-A

Arm Trusted Firmware 2.6

Bootloader

U-boot 2021.10

Kernel

Linux Kernel 5.10.83

Yocto

Yocto 3.1.20

文件系统

myir-image-core

yocto构建的文件系统

工具

开发工具

sdk.tar.bz2、e2 studio

烧录工具

Win32DiskImager teraterm

文档

Remi Pi_Linux软件开发指南

包含源码编译,烧录等

Remi Pi FreeRTOS应用开发笔记

包含环境搭建,工程创建等

Remi Pi实时系统与Ethercat移植应用笔记

包含rtlinux、ethercat移植

二、功能介绍

1. LVGL显示

从04_Sources目录下获取lvgl.tar.bz2源码包,解压源码包。

PC:~/renesas/04_Sources$ tar -xvf lvgl.tar.gz

编译源码包,拷贝lvgl_demo可执行文件到开发板运行即可。

PC:~/renesas/04_Sources/lvgl$ source /opt/remi-sdk/environment-setup-aarch64-poky-linux
PC:~/renesas/04_Sources/lvgl$ make

米尔-瑞米派的LVGL显示效果

2. LVGL显示

从RT官网获取L5.10.83内核版本对应的补丁,链接如下:

Index of /pub/linux/kernel/projects/rt/5.10/older/

把补丁包解压到自己的工作目录下。

PC:~/renesas/04_Sources$ tar -xvf patches-5.10.83-rt58.tar.gz

到内核源码目录下打补丁。

PC:~/renesas/04_Sources/myir-renesas-linux$ for p in `ls -1 ../patches/*.patch`;do patch -p1 < $p;done

修改mys_g2lx_defconfig配置文件

PC:~/renesas/04_Sources/myir-renesas-linux$ vi arch/arm64/configs/mys_g2lx_defconfig
CONFIG_EXPERT=y
CONFIG_ARCH_SUPPORTS_RT=y
CONFIG_PREEMPT_RT=y
#CONFIG_PREEMPT=y
#CONFIG_KVM=y

编译内核源码,更新Image文件即可。

PC:~/renesas/04_Sources/myir-renesas-linux$ source /opt/remi-sdk/environment-setup-aarch64-poky-linux
PC:~/renesas/04_Sources/myir-renesas-linux$ make ARCH=arm64 mys_g2lx_defconfig
PC:~/renesas/04_Sources/myir-renesas-linux$ make ARCH=arm64 Image dtbs   -j16

3. IGH Ethercat 主站

到官网下载1.5版本的Ethercat源码,链接如下:

https://gitlab.com/etherlab.org/ethercat/-/tree/stable-1.5?ref_type=heads

把Ethercat源码包解压到自己的工作目录下。

PC:~/renesas/04_Sources$ tar -xvf ethercat-stable-1.5.tar.bz2
PC:~/renesas/04_Sources$ cd ethercat-stable-1.5

加载环境变量。

PC:~/renesas/04_Sources/ethercat-stable-1.5$ source /opt/remi-sdk/environment-setup-aarch64-poky-linux

生成configure文件。

PC:~/renesas/04_Sources/ethercat-stable-1.5$ ./bootstrap

configure设置。

PC:~/renesas/04_Sources/ethercat-stable-1.5$ mkdir output
PC:~/renesas/04_Sources/ethercat-stable-1.5$ ./configure --prefix=/home/renesas/04_Sources/ethercat-stable-1.5/output --with-linux-dir=/home/renesas/04_Sources/myir-renesas-linux  --enable-8139too=no  --enable-generic=yes   --host=aarch64-poky-linux

编译和安装。

PC:~/renesas/04_Sources/ethercat-stable-1.5$ make
PC:~/renesas/04_Sources/ethercat-stable-1.5$ make modules
PC:~/renesas/04_Sources/ethercat-stable-1.5$ make install

编译和安装完成后,生成的ec_generic.ko驱动文件位于devices目录,ec_master.ko驱动文件位于master目录,生成的库相关文件位于output目录。

PC:~/renesas/04_Sources/ethercat-stable-1.5$ ls devices/en_genric.ko
devices/ec_generic.ko
PC:~/renesas/04_Sources/ethercat-stable-1.5$ master/ec_master.ko
devices/ec_master.ko
PC:~/renesas/04_Sources/ethercat-stable-1.5$ ls output/
bin  etc  include  lib  sbin  share

将上面output目录下的相关文件和ec_master.ko拷贝到开发板如下目录:

root@myir-remi-1g:~/output# ls
bin  etc  include  lib  modules  sbin  share
root@myir-remi-1g:~/output# cp bin/ethercat /bin/
root@myir-remi-1g:~/output# cp etc/ethercat.conf /etc/
root@myir-remi-1g:~/output# cp etc/init.d/*  /etc/init.d
root@myir-remi-1g:~/output# cp -r etc/sysconfig/ /etc/
root@myir-remi-1g:~/output# cp  lib/libethercat.* /lib64/
root@myir-remi-1g:~/output# cp -r lib/pkgconfig /lib64/
root@myir-remi-1g:~/output# cp modules/ec_master.ko /lib/modules/5.10.83-cip1-rt58-yocto-standard/
root@myir-remi-1g:~/output# cp sbin/ethercatctl  /sbin/

启动Ethercat。

root@myir-remi-1g:~# depmod
root@myir-remi-1g:~# modprobe ec_master main_devices=1E:ED:19:27:1A:B3
root@myir-remi-1g:~# /etc/init.d/ethercat start
Starting EtherCAT master 1.5.2  done

4. Freertos

首先要下载e2 studio工具并搭建好环境和到04_Sources目录获取GPIO.zip工程包,打开e2 studio工具后,点击File->Import->General-> Existing Projects into Workspace来导入GPIO工程,导入工程后点击Project->Build Project进行工程的编译,详细请参考《Remi Pi  FreeRTOS应用开发笔记》。

编译成功会生成一个debug目录,生成的如下文件拷贝到sd卡上,用于在uboot进行CM33工程调用。

GPIO_non_secure_code.bin
GPIO_non_secure_vector.bin
GPIO_secure_code.bin
GPIO_secure_vector.bin

把sd卡插入到开发板的sd卡槽,启动板子并在uboot阶段执行如下调用,查看sd卡里面的内容,如下:

=> switch_sdhi1 sdcard
switch to sdcard
=> ls mmc 1:1System Volume Information/64   GPIO_secure_vector.bin16926   GPIO_non_secure_code.bin1984   GPIO_non_secure_vector.bin480   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

当加载完以上命令之后可以看到蓝灯在闪烁。

米尔-瑞米派的加载效果展示

三、内核清单

为了方便用户进行内核的移植,下面将内核驱动各个模块的源码路径整理如下:

模块

描述

源码路径

MMC

EMMC驱动程序

drivers/mmc/host/renesas_sdhi_internal_dmac.c

SD

SD卡驱动程序

drivers/mmc/host/renesas_sdhi_internal_dmac.c

QSPI

MTD驱动程序

drivers/memory/renesas-rpc-if.c

SPI

SPI 驱动程序

drivers/spi/spidev.c

I2C

I2C驱动程序

drivers/i2c/busses/i2c-riic.c

ADC

ADC驱动程序

drivers/iio/adc/rzg2l_adc.c

E2PROM

24C256C驱动

drivers/misc/eeprom/at24.c

USB Host

USB 驱动程序

drivers/usb/host/ehci-platform.c

drivers/usb/host/ohci-platform.c 

Ethernet

千兆网络驱动程序

drivers/net/ethernet/renesas/ravb_main.c

USB OTG

USB 驱动程序

drivers/phy/renesas/phy-rcar-gen3-usb2.c

RS232/RS485/Uart

串口驱动程序

drivers/tty/serial/sh-sci.c

CAN BUS

CAN总线驱动程序

drivers/net/can/rcar/rcar_canfd.c

GPIO KEY

KEY驱动程序

drivers/input/keyboard/gpio_keys.c

WIFI

WIFI驱动程序

drivers/staging/rtl88x2cs/*

RTC

RTC驱动程序

drivers/rtc/rtc-rx8025t.c

GPIO LED

LED驱动程序

drivers/leds/leds-gpio.c

HDMI/LVDS

MIPI转HDMI和LVDS驱动程序

drivers/gpu/drm/bridge/lt8912.c

LCD

LCD驱动程序

drivers/gpu/drm/panel/panel-simple.c

TOUCH

触摸屏驱动程序

drivers/input/touchscreen/edt-ft5x06.c

ES8388

ES8388音频驱动

sound/soc/codecs/es8328-i2c.c

OV5640

OV5640摄像头驱动

drivers/media/i2c/ov5640.c

四、获取链接

关于Remi Pi的myir-image-core系统,用户可以从下面地址获取镜像文件和源码:

下载地址:MYIR

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海亚商投顾:沪指震荡调整 飞行汽车概念股持续爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;深成指走势稍强&#xff0c;创业板指一度涨超1%&#xff0c;黄白二线走势分化&a…

简单算命脚本

效果展示 文件内容 main.py文件 import json import random import time# 别挂配置数据 gua_data_path "data.json"# 别卦数据 gua_data_map {} fake_delay 10# 读取别卦数据 def init_gua_data(json_path):with open(gua_data_path, r, encodingutf8) as fp:gl…

centos7 install rocketmq 宿主机快速搭建RocketMQ单机开发环境

为什么采用宿主机而不采用 Docker 方式快速搭建 在搭建 RocketMQ 测试环境时&#xff0c;我们可以选择在宿主机上直接安装和配置&#xff0c;也可以使用 Docker 容器来快速搭建。然而&#xff0c;为什么我们选择了在宿主机上安装而不是使用 Docker 方式呢&#xff1f; 调整配置…

攻防世界-CatchCat

题目&#xff1a;附件为 分析题目&#xff0c;可知文件里面是一堆关于GPS的数据&#xff0c;所以我们将GPS的轨迹绘制出来&#xff08;GPS地图绘制网站&#xff1a;GPS Visualizer&#xff1a;从 GPS 数据文件绘制地图&#xff09; 将文件导入后绘制地图&#xff0c;得到如图&a…

【优选算法】专题1 -- 双指针 -- 移动零

前言: &#x1f4da;为了提高算法思维&#xff0c;我会时常更新这个优选算法的系列&#xff0c;这个专题是关于双指针的练习 &#x1f3af;个人主页&#xff1a;Dream_Chaser&#xff5e;-CSDN博客 一.移动零&#xff08;easy&#xff09; 描述&#xff1a; 「数组分两块」是⾮…

架构设计的核心目的与意义

以史为鉴&#xff0c;对我们了解架构设计的目的很有帮助。谈到架构设计&#xff0c;相信每个技术人员都是耳熟能详&#xff0c;但如果深入探讨一下&#xff0c;“为何要做架构设计&#xff1f;”或者“架构设计目的是什么&#xff1f;”类似的问题&#xff0c;大部分人可能从来…

单片机卡死的几大原因、分析、解决

阅读引言&#xff1a; 本文我想给大家分享一下我在学习过程中遇到的以及了解到的一些导致单片机运行卡死&#xff08;死锁&#xff09;的一些常见原因和解决办法&#xff0c; 请注意&#xff0c; 只是列举&#xff0c;并不是全部&#xff0c; 因为导致单片机运行卡死的原因无穷…

Qt-QPainter drawText方法不同重载之间的区别

QPainter类的drawText方法有如下重载&#xff1a; void drawText(const QPointF &position, const QString &text) void drawText(const QPoint &position, const QString &text) void drawText(int x, int y, const QString &text) void drawText(co…

APP在应用商店该如何做好节日营销

38妇女节刚刚过去&#xff0c;不少商家吃上了一波节日红利。 你有没有注意到很多App在应用商店里改头换面&#xff0c;开展了很多以“三八节”为主题的营销活动&#xff0c;并且取得了不错的成绩。 可见季节性营销策划对产品的下载量和用户留存率还是很重要的。 那么我们如何…

16.【CPP】详解继承

继承方式 如图 注意点 1.基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中&#xff0c;但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它 2.基类private成员在派生类中是不能被访问&#x…

电力物联网采集终端

电力物联网采集终端,通过采集设备数据&#xff0c;并将其传输到云端&#xff0c;实现精细管理和优化。 一、工作原理 电力物联网采集终端主要数据采集模块、通信模块等组成。采集设备的各项数据&#xff0c;如温度、湿度、电流等;数据采集模块将采集到的数据进行处理并存储;通…

索尼ILME-FX3摄像机RSV文件无法播放的修复方法

索尼摄像机rsv文件修复案例处理了很多&#xff0c;rsv是索尼mp4或者mxf文件封装失败时生成的临时文件&#xff0c;一般是由于断电或者摄像机意外重启导致的&#xff0c;下边来看下遇到rsv文件无法播放时的修复方法。 故障文件: 29.56G/rsv文件 故障现象: 摄像机型号为索尼IL…

【大模型API调用初尝试一】智谱AI 通义千问

大模型API调用初尝试一 调用大模型API能干什么智谱AI大模型API调用的过程获取API_KEYGLM_4同步调用GLM_4异步调用文生图大模型API调用 阿里云通义千问API调用过程单轮会话多轮会话 调用大模型API能干什么 大模型的参数非常庞大&#xff0c;功能非常强大&#xff0c;但是训练成…

node:internal/crypto/hash:69 this[kHandle] = new _Hash(algorithm, xofLen);

npm 打包报错 原因就是npm版本太高了&#xff0c;用的18版本&#xff0c;切换成16版本就好了。

UI 学习 二 可访问性 模式

教程&#xff1a;Accessibility – Material Design 3 一 颜色对比 颜色和对比度可以用来帮助用户看到和理解应用程序的内容&#xff0c;与正确的元素交互&#xff0c;并理解操作。 颜色可以帮助传达情绪、语气和关键信息。可以选择主色、辅助色和强调色来支持可用性。元素之…

H5 流光分割个人主页源码

源码名称&#xff1a;流光分割个人主页源码 源码介绍&#xff1a;一款流光分割特效个人主页源码&#xff0c;源码带大量跳转个人联系方式按钮和朋友按钮。同时带有个人介绍。 需求环境&#xff1a;H5 下载地址&#xff1a; https://www.changyouzuhao.cn/10241.html

电机参数辨识算法(2)——基于高频注入的磁链辨识策略

电机参数辨识算法&#xff08;1&#xff09;——基于高频注入的电感辨识策略-CSDN博客https://blog.csdn.net/m0_46903653/article/details/136722750?spm1001.2014.3001.5501上一期已经讲过了电感辨识方法。 今天这是参数辨识的第二期&#xff0c;今天来简单看看磁链的辨识。…

【数学建模】熵权法

之前我们学了层次分析法和topsis法&#xff0c;但是主观性十分强&#xff0c;有没有科学的方法得出权重呢&#xff1f;今天&#xff0c;我们来学习熵权法&#xff01; 基本概念&#xff1a; 熵权法&#xff0c;物理学名词&#xff0c;按照信息论基本原理的解释&#xff0c;信息…

SpringBoot+vue3打造企业级一体化SaaS系统

SpringBootvue3打造企业级一体化SaaS系统 简介&#xff1a;    全面提升前后端技术水平&#xff0c;独立完成全栈项目开发能力&#xff0c;快速进击全栈工程师&#xff0c;最终在面试中脱颖而出。整合后端主流技术&#xff08;Spring Boot、物理数据库隔离、加载动态权限、多…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

以弹性方式布局子组件的容器组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程&#xff0c;因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…