0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔基于MYD-YG2LX系统启动时间优化应用笔记

米尔电子 2025-05-08 08:07 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.概述

MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600 / DDR3L-1333内存控制器、千兆以太网控制器、USBCANSD卡、MIPI-CSI等外设接口,在工业、医疗、电力等行业都得到广泛的应用。

78f6708a-2ba0-11f0-9434-92fbcf53809c.png米尔基于瑞萨RZ/G2L开发板本文主要介绍基于MYD-YG2LX开发板进行系统启动时间优化的调试案例,一般启动方式有去掉常规uboot,直接使用SPL加载内核和保留常规uboot加载内核的方式,MYD-YG2LX目前使用的是保留常规uboot的方法启动,启动时间20s+,接下来介绍的主要包括TFA、Uboot、Kernel和文件系统时间优化。

2.硬件资源

USB-TTL调试串口线一根

MYD-YG2LX开发板一块

12V电源适配器一个

3.软件资源

Linux虚拟机

米尔提供的SDK交叉工具链

Linux5.10.83

4.环境准备

进行调试之前,需要安装好Linux虚拟机等相关开发环境,具体可以参考MYD-YG2LX_Linux软件开发指南的2.0章节。

5.启动时间优化

5.1.1. TFA优化

TFA引导启动的log主要有以下,如果我们认为不是太美观,可以到TFA源码中使用grep命令去搜索关键的信息打印,然后把相关的打印去掉,这可能需要花点功夫去寻找。

791ed656-2ba0-11f0-9434-92fbcf53809c.png

例如(grep -rn “BL2:”)搜索到关键的文件(以下图示只是其中的一个地方),然后屏蔽即可。

792eed7a-2ba0-11f0-9434-92fbcf53809c.png

另外,需要检查源码下面的这个寄存器有没有设置,有则忽略,没有则需要打开,这样会减少系统在启动中的时间。

794056a0-2ba0-11f0-9434-92fbcf53809c.png

static void cpu_cpg_setup(void){while ((mmio_read_32(CPG_CLKSTATUS) & CLKSTATUS_DIVPL1_STS) != 0x00000000);mmio_write_32(CPG_PL1_DDIV, PL1_DDIV_DIVPL1_SET_WEN | PL1_DDIV_DIVPL1_SET_1_1);while ((mmio_read_32(CPG_CLKSTATUS) & CLKSTATUS_DIVPL1_STS) != 0x00000000);}void cpg_early_setup(void){ cpu_cpg_setup();cpg_ctrl_clkrst(&early_setup_tbl[0], ARRAY_SIZE(early_setup_tbl));}

最后编译TFA以及更新即可。

5.1.2. Uboot优化

正常的启动log如下,我们需要对这部分进行优化,优化可以从下面3个点出发。

79531a92-2ba0-11f0-9434-92fbcf53809c.png

  • 裁剪uboot,减少uboot大小。

MYD-YG2LX平台的2G DDR配置文件在configs/myc-rzg2l_defconfig,1G DDR的配置文件在configs/myc-rzg2l_ddr1gb_defconfig,可以在这个配置文件中屏蔽掉一些自己不需要的功能,这个需要根据实际情况删除不需要的功能,例如:

79b5cb38-2ba0-11f0-9434-92fbcf53809c.png

  • 移除bootdelay的倒计时时间

bootdelay一般默认都是2-3s,移除可以直接修改include/configs/myc-rzg2l.h文件,例如:

79c09e0a-2ba0-11f0-9434-92fbcf53809c.png

  • 关闭uboot的打印log

关闭uboot相关的日志打印,可以到uboot的源码路径下搜索关键的信息,然后进行屏蔽即可(以下图示只是其中的一个地方),例如:

79ceeb54-2ba0-11f0-9434-92fbcf53809c.png

最后编译与更新uboot即可。

5.1.3. Kernel优化

Kernel典型的修改主要有以下:

简单:通过在 cmdline 中添加 quiet 来减少控制台消息

适度:通过移除驱动程序、文件系统、子系统来精简内核,从减少内核解压或加载的时间

适度:通过移除未使用的硬件接口精简设备树

棘手:开始优化行为不良的驱动程序,这是一个相对复杂和困难的任务。优化驱动程序可以提高其性能、稳定性和兼容性,从而改善系统的整体表现。然而,如果驱动程序的行为不良,例如出现崩溃、卡顿或冲突等问题,那么进行优化就会变得更加棘手和挑战。这需要深入分析和修复驱动程序的问题,调整其代码和算法,以使其更加高效和可靠。

使用Bootgraph分析内核启动的调用时间,移除花费时间长的驱动和优化需要使用的驱动

总之优化还算是一项蛮复杂的项目,我们此次主要从以下几点优化:

去掉kernel的打印等级,需要到内核源码下屏蔽掉log属性和到uboot源码下把log等级升高,内核修改如下:

79e0103c-2ba0-11f0-9434-92fbcf53809c.png

79f329ce-2ba0-11f0-9434-92fbcf53809c.png

Uboot修改如下:

7a0221f4-2ba0-11f0-9434-92fbcf53809c.png

关掉kernel不需要的一些外设资源,缩小内核大小(需要根据自己的情况来进行修改)

可以到设备树中屏蔽掉一些不需要的接口和到内核配置文件中屏蔽掉一些不需要的驱动配置,例如:

7a0f2dc2-2ba0-11f0-9434-92fbcf53809c.png

使用Bootgraph分析内核启动的调用时间,移除花费时间长的驱动和优化需要使用的驱动。

首先需要在uboot加上时间戳和init debug调用:

setenv bootargs 'rw rootwait earlycon root=/dev/mmcblk0p2 printk.time=1 initcall_debug=1'

然后启动内核,采集启动log,如下:

dmesg > boot-kernel.log

返回内核源码目录,进入内核源码scripts目录,只需下面命令,生成直观图形,如下:

./bootgraph.pl boot-kernel.log > boot-kernel.svg

然后打开boot.svg查看花费时间最大的驱动调用,没用的就关闭,需要用的就优化。

7a206b3c-2ba0-11f0-9434-92fbcf53809c.png

最后编译以及更新内核即可。

5.1.4. 文件系统优化

MYD-YG2LX的文件系统是基于yocto构建的,关于yocto如何构建可以参考MYD-YG2LX_Linux软件开发指南的3.0章节。

文件系统主要使用下面这3个命令就可以找到花费时间最多的服务,然后可以根据实际情况优化。当然也可以把所有的服务以图形的形式表现出来,这样更加直观,采用systemd-analyze plot > boot.svg 可以把每个服务启动顺序和消耗时间显示出来,针对这些服务,移除掉不需要的或者调整服务之间的启动顺序。

systemctl list-unit-files --state=enabled #查看所有开机自启的服务systemd-analyze blame #查看服务的初始化时间systemd-analyze critical-chain #查看启动花费时间最多的

7a349242-2ba0-11f0-9434-92fbcf53809c.png

5.1.5. 启动测试

经过以上的优化后可以打包一个sd卡刷机包并刷到板子的emmc,关于如何打包可以参考MYD-YG2LX_Linux软件开发指南的4.3章节,最后再启动测试,执行systemd-analyze即可看到启动时间,效果如下:

7a498c7e-2ba0-11f0-9434-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20148

    浏览量

    247061
  • 板卡
    +关注

    关注

    3

    文章

    166

    浏览量

    17427
  • 米尔电子
    +关注

    关注

    1

    文章

    179

    浏览量

    1005
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式Linux启动时间优化的秘密之四-启动脚本

    本文主要讲述嵌入式Linux启动时间优化的秘密,我们继续上篇没有讲完的嵌入式Linux启动时间优化方法,本文主要会讲启动脚本。想看上一篇的请
    发表于 04-21 09:22 2929次阅读
    嵌入式Linux<b class='flag-5'>启动时间</b><b class='flag-5'>优化</b>的秘密之四-<b class='flag-5'>启动</b>脚本

    米尔MYD-YG2LX开发板内存、CPU等压力测试

    MYD-YG2LX开发板进行基础信息查看,以及CPU、内存压力测试
    的头像 发表于 05-16 13:34 2422次阅读
    <b class='flag-5'>米尔</b><b class='flag-5'>MYD-YG2LX</b>开发板内存、CPU等压力测试

    系统启动时间优化方案--基于米尔MYD-YG2LX开发板

    设接口,在工业、医疗、电力等行业都得到广泛的应用。 米尔基于瑞萨RZ/G2L开发板本文主要介绍基于MYD-YG2LX开发板进行系统启动时间优化
    发表于 05-09 18:03

    《电子发烧友电子设计周报》聚焦硬科技领域核心价值 第10期:2025.05.6--2025.05.9

    之电机FOC控制+FOC入门教程 3、电子工程师必看--EMC设计难题一站式破解 4、448 Gbps多级脉冲幅度调制测试方案 5、米尔基于MYD-YG2LX系统启动时间优化
    发表于 05-09 19:26

    MYD-Y6ULX申请】米尔MYD-Y6ULX智能酒驾识别系统

    )④米尔MYD-Y6ULX智能酒驾识别系统项目开展,按时间计划实施。⑤米尔MYD-Y6ULX智能
    发表于 01-02 16:56

    Linux系统启动时间优化方案

    首先是对Linux启动过程的跟踪和分析,生成详细的启动时间报告,较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析
    发表于 05-13 10:56 3176次阅读

    Linux系统启动时间优化方案

    (1)首先是对Linux启动过程的跟踪和分析,生成详细的启动时间报告。 较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总分析。PrintkT
    发表于 12-01 12:54 651次阅读

    Linux系统启动时间的极限优化

    (1)首先是对Linux启动过程的跟踪和分析,生成详细的启动时间报告。   较为简单可行的方式是通过PrintkTime功能为启动过程的所有内核信息增加时间戳,便于汇总
    发表于 04-02 14:38 862次阅读

    嵌入式linux之系统启动时间测试方法

    嵌入式linux之系统启动时间测试方法转载2016-08-17 10:41:43方法一:gpio(最准确的,未使用)1.找到一个空闲的gpio,在适当的地方对gpio进行翻转 效果,如下
    发表于 11-02 09:21 10次下载
    嵌入式linux之<b class='flag-5'>系统启动时间</b>测试方法

    NCV7691 应用笔记开路负载检测与启动时间

    NCV7691 应用笔记开路负载检测与启动时间
    发表于 11-14 21:08 0次下载
    NCV7691 应<b class='flag-5'>用笔记</b>开路负载检测与<b class='flag-5'>启动时间</b>

    米尔MYD-YG2开发板触摸屏测试

    米尔MYD-YG2开发板测试米尔触摸屏
    的头像 发表于 05-24 13:12 29.5w次阅读

    瑞萨RZ/G2L开发板在工控领域的应用-基于SOEM的EtherCAT主站

    本篇测评由优秀测评者“qinyunti”提供。前言本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用,实现基于SOEM的EtherCAT主站。开发环境基于WSL2。下载代码gitclone
    的头像 发表于 07-31 22:09 1217次阅读
    瑞萨RZ/G<b class='flag-5'>2</b>L开发板在工控领域的应用-基于SOEM的EtherCAT主站

    在多媒体应用场景下ffmpeg网络视频播放器的体验--基于米尔MYD-YG2LX开发板

    MYD-YG2LX开发板快捷高效的多媒体应用开发。过程https://www.sample-videos.com/index.php#sample-mp4-video下下测试mp
    的头像 发表于 08-14 09:43 1322次阅读
    在多媒体应用场景下ffmpeg网络视频播放器的体验--基于<b class='flag-5'>米尔</b><b class='flag-5'>MYD-YG2LX</b>开发板

    米尔基于瑞萨RZ/G2L开发板在工控领域的应用-基于SOEM的EtherCAT主站

    本文介绍【米尔MYD-YG2LX开发板】在工控领域的应用,实现基于SOEM的EtherCAT主站。开发环境基于WSL2
    的头像 发表于 08-24 18:57 1412次阅读
    <b class='flag-5'>米尔</b>基于瑞萨RZ/G<b class='flag-5'>2</b>L开发板在工控领域的应用-基于SOEM的EtherCAT主站

    米尔MYD-YG2LX-产品介绍-V1

    MYC-YG2LX核心板及开发板引领工业市场从32位MPU向64位演进基于瑞萨高性价比RZ/G2L处理器,具有极强的泛用性和易用性;1
    发表于 03-10 14:08 8次下载