年初时我曾分享了瑞米派(Remi Pi)开发板的上市情况。
今天,我想再次分享一下瑞米派(Remi Pi)的快速入门教程。
一、系统概述
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 |
烧录工具 | Win32DiskImagerteraterm | |
文档 | 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.RT-Linux实时补丁
从RT官网获取L5.10.83内核版本对应的补丁,链接如下:
https://cdn.kernel.org/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: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
当加载完以上命令之后可以看到蓝灯在闪烁。
米尔-瑞米派的加载效果展示
三、内核清单
为了方便用户进行内核的移植,下面将内核驱动各个模块的源码路径整理如下:
模块 | 描述 | 源码路径 |
---|---|---|
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.cdrivers/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 |
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !