<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    系統啟動時間優化方案--基于米爾MYD-YG2LX開發板

    發布時間:2025-5-9 19:09    發布者:swiftman
    關鍵詞: 瑞薩 , G2L , 嵌入式 , 開發板 , 米爾
    1.概述
    MYD-YG2LX采用瑞薩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等外設接口,在工業、醫療、電力等行業都得到廣泛的應用。
    米爾基于瑞薩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命令去搜索關鍵的信息打印,然后把相關的打印去掉,這可能需要花點功夫去尋找。

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

    另外,需要檢查源碼下面的這個寄存器有沒有設置,有則忽略,沒有則需要打開,這樣會減少系統在啟動中的時間。

    1. static void cpu_cpg_setup(void)
    2. {
    3. while ((mmio_read_32(CPG_CLKSTATUS) & CLKSTATUS_DIVPL1_STS) != 0x00000000);
    4. mmio_write_32(CPG_PL1_DDIV, PL1_DDIV_DIVPL1_SET_WEN | PL1_DDIV_DIVPL1_SET_1_1);
    5. while ((mmio_read_32(CPG_CLKSTATUS) & CLKSTATUS_DIVPL1_STS) != 0x00000000);
    6. }
    7. void cpg_early_setup(void)
    8. {
    9.   cpu_cpg_setup();
    10. cpg_ctrl_clkrst(&early_setup_tbl[0], ARRAY_SIZE(early_setup_tbl));
    11. }
    復制代碼

    最后編譯TFA以及更新即可。
    5.1.2. Uboot優化正常的啟動log如下,我們需要對這部分進行優化,優化可以從下面3個點出發。

    • 裁剪uboot,減少uboot大小。
    MYD-YG2LX平臺的2G DDR配置文件在configs/myc-rzg2l_defconfig,1G DDR的配置文件在configs/myc-rzg2l_ddr1gb_defconfig,可以在這個配置文件中屏蔽掉一些自己不需要的功能,這個需要根據實際情況刪除不需要的功能,例如:

    • 移除bootdelay的倒計時時間
    bootdelay一般默認都是2-3s,移除可以直接修改include/configs/myc-rzg2l.h文件,例如:

    • 關閉uboot的打印log
    關閉uboot相關的日志打印,可以到uboot的源碼路徑下搜索關鍵的信息,然后進行屏蔽即可(以下圖示只是其中的一個地方),例如:

    最后編譯與更新uboot即可。
    5.1.3. Kernel優化Kernel典型的修改主要有以下:
    • 簡單:通過在 cmdline 中添加 quiet 來減少控制臺消息
    • 適度:通過移除驅動程序、文件系統、子系統來精簡內核,從減少內核解壓或加載的時間
    • 適度:通過移除未使用的硬件接口精簡設備樹
    • 棘手:開始優化行為不良的驅動程序,這是一個相對復雜和困難的任務。優化驅動程序可以提高其性能、穩定性和兼容性,從而改善系統的整體表現。然而,如果驅動程序的行為不良,例如出現崩潰、卡頓或沖突等問題,那么進行優化就會變得更加棘手和挑戰。這需要深入分析和修復驅動程序的問題,調整其代碼和算法,以使其更加高效和可靠。
    • 使用Bootgraph分析內核啟動的調用時間,移除花費時間長的驅動和優化需要使用的驅動


    總之優化還算是一項蠻復雜的項目,我們此次主要從以下幾點優化:
    • 去掉kernel的打印等級,需要到內核源碼下屏蔽掉log屬性和到uboot源碼下把log等級升高,內核修改如下:


    Uboot修改如下:

    • 關掉kernel不需要的一些外設資源,縮小內核大小(需要根據自己的情況來進行修改)

    可以到設備樹中屏蔽掉一些不需要的接口和到內核配置文件中屏蔽掉一些不需要的驅動配置,例如:

    • 使用Bootgraph分析內核啟動的調用時間,移除花費時間長的驅動和優化需要使用的驅動。

    首先需要在uboot加上時間戳和init debug調用:
    1. setenv bootargs 'rw rootwait earlycon root=/dev/mmcblk0p2 printk.time=1 initcall_debug=1'
    復制代碼

    然后啟動內核,采集啟動log,如下:
    1. dmesg > boot-kernel.log
    復制代碼

    返回內核源碼目錄,進入內核源碼scripts目錄,只需下面命令,生成直觀圖形,如下:
    1. ./bootgraph.pl boot-kernel.log > boot-kernel.svg
    復制代碼

    然后打開boot.svg查看花費時間最大的驅動調用,沒用的就關閉,需要用的就優化。

    最后編譯以及更新內核即可。
    5.1.4. 文件系統優化MYD-YG2LX的文件系統是基于yocto構建的,關于yocto如何構建可以參考《MYD-YG2LX_Linux軟件開發指南》的3.0章節。文件系統主要使用下面這3個命令就可以找到花費時間最多的服務,然后可以根據實際情況優化。當然也可以把所有的服務以圖形的形式表現出來,這樣更加直觀,采用systemd-analyze plot > boot.svg 可以把每個服務啟動順序和消耗時間顯示出來,針對這些服務,移除掉不需要的或者調整服務之間的啟動順序。
    1. systemctl list-unit-files --state=enabled #查看所有開機自啟的服務
    2. systemd-analyze blame #查看服務的初始化時間
    3. systemd-analyze critical-chain #查看啟動花費時間最多的
    復制代碼


    5.1.5. 啟動測試經過以上的優化后可以打包一個sd卡刷機包并刷到板子的emmc,關于如何打包可以參考《MYD-YG2LX_Linux軟件開發指南》的4.3章節,最后再啟動測試,執行systemd-analyze即可看到啟動時間,效果如下:

    本文地址:http://www.portaltwn.com/thread-887061-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • 我們是Microchip
    • 更佳設計的解決方案——Microchip模擬開發生態系統
    • 想要避免發生災難,就用MPLAB SiC電源仿真器!
    • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷