<dfn id="jevhz"></dfn>
        1. <dfn id="jevhz"></dfn>
          加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線18030129916
          公司新聞
          國產工業CPU,米爾基于全志T507-H開發板的實時性分析與測試
          發布時間: 2023-03-07 09:05 更新時間: 2024-12-20 13:30
          觀看國產工業CPU,米爾基于全志T507-H開發板的實時性分析與測試視頻

            1.概念

            全志科技T5系列是一個高性能四核 CortexTM–A53 處理器,適用于新一代汽車市場。T5系列符合汽車 AEC – Q100 測試要求。該芯片集成四核 CortexTM–A53 CPU、G31MP2 GPU、32 位 DDR3/LPDDR3/DDR4/LRDDR4 動態隨機存儲器。

            MYC-YT507H核心板基于T507-H處理器研制,具有豐富的接口資源, 擁有良好的軟件開發環境,內核支持開源操作系統Linux。

            在開發階段,建議配合核心板配套的評估套件 MYD-YT507H 來加速開發。評估套件的詳細信息請訪問:http://www.myir-tech.com/product

            2.實時內核設計

            實時補丁我們選擇RT-Preempt來實現。

            1.1. 移植補丁

            RT補丁官網 從RT官網下載4.9.170對應補丁

            https://wiki.linuxfoundation.org/realtime/start

            https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.9/older/

            把解壓后的補丁放到linux4.9目錄下,然后用下面命令打包即可 patch -p1 < ./patch-4.9.170-rt129.patch

            由于代碼有差異,會提示大量不匹配,導致補丁打入失敗則用下面命令找出打入失敗文件

            find ./ -name "*.rej"

            手動逐一檢查rej文件,逐個修改

            難點:

            zram驅動,sdk中源碼引用自5.x版本驅動,需要找5.10左右RT補丁參考

            thread_info.h文件中手動將PREEMPT_LAZY宏改序號、宏名字

            問題點1:中斷上下文中調用搶占api(rt_spin_lock即mutex)導致sched異常。

            分析與解決:

            這個中斷是系統核心timer服務,至關重要。其通過request_percpu_irq注冊中斷isr,并不是常規request_irq或request_thread_irq,無法線程化。

            繼續分析崩潰調用棧,在崩潰前后的操作為cpufreq_cpu_get,通過分析其源碼,基本找到__account_system_time函數中調用了cpufreq_acct_update_power,其中又調用了rt_spin_lock函數導致崩潰。

            通過分析cpufreq_acct_update_power函數,發現通過宏定義:CONFIG_CPU_FREQ_TIMES可以屏蔽該函數,進而不調用rt_spin_lock。

            經測試,在menuconfig中,屏蔽CONFIG_CPU_FREQ_TIMES后,系統能正常啟動到login環節。

            解決方法:

            drivers/cpufreq/Kconfig中針對CPU_FREQ_TIMES設置與PREEMPT_RT_BASE的互斥。

            打開RT實時測試工具,進行測試

            在buildroot下面打開相關測試,根據下面描述打開rt-tests工具即可,打開測試工具測試步驟

            1.2. 其他影響性能的配置

            禁用CPU Freq自動調頻,并設置主頻為高頻率:

            cd /sys/devices/system/cpu/cpufreq/policy0

            echo userspace > scaling_governor

            cat saling_max_freq  > scaling_setspeed

            (如不禁用cpufreq調頻功能,系統會因動態調頻產生極大的偶然延遲)

            3.實時性測試

            空載測試

            cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n

          圖:空載測試

            CPU&內存滿載

            cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n

            增加壓力

            stress-ng --cpu 4 --cpu-method all --io 4 --vm 50 -d 5  --fork 4 --timeout 36000s

          圖:滿載測試

            數據對比:

          圖表:數據信息

            4.產品介紹

            MYC-YT507H核心板采用SMD封裝形式貼片(郵票孔+背面焊盤)。標準配置有4種產品型號。它們在存儲配置、溫度等方面有一些差異,客戶可根據需求自行選擇合適的型號。

          圖MYC-YT507H核心板

            MYC-YT507H主要參數

          核心板主要參數

            4.1. MYD-YT507H外設接口資源主要參數

          表開發板外設接口資源主要參數


          聯系方式

          • 電  話:0592-6372630
          • 銷售經理:蘭順長
          • 手  機:18030129916
          • 微  信:18030129916