國產(chǎn)工業(yè)CPU,米爾基于全志T507-H開(kāi)發(fā)板的實(shí)時(shí)性分析與測試
1.概念
全志科技T5系列是一個(gè)高性能四核 CortexTM–A53 處理器,適用于新一代汽車(chē)市場(chǎng)。T5系列符合汽車(chē) AEC – Q100 測試要求。該芯片集成四核 CortexTM–A53 CPU、G31MP2 GPU、32 位 DDR3/LPDDR3/DDR4/LRDDR4 動(dòng)態(tài)隨機存儲器。
MYC-YT507H核心板基于T507-H處理器研制,具有豐富的接口資源, 擁有良好的軟件開(kāi)發(fā)環(huán)境,內核支持開(kāi)源操作系統Linux。
在開(kāi)發(fā)階段,建議配合核心板配套的評估套件 MYD-YT507H 來(lái)加速開(kāi)發(fā)。
評估套件的詳細信息請訪(fǎng)問(wèn):http://www.myir-tech.com/product
實(shí)時(shí)補丁我們選擇RT-Preempt來(lái)實(shí)現。
1.1. 移植補丁
RT補丁官網(wǎng) 從RT官網(wǎng)下載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
由于代碼有差異,會(huì )提示大量不匹配,導致補丁打入失敗則用下面命令找出打入失敗文件
find ./ -name "*.rej"
手動(dòng)逐一檢查rej文件,逐個(gè)修改
難點(diǎn):
zram驅動(dòng),sdk中源碼引用自5.x版本驅動(dòng),需要找5.10左右RT補丁參考
thread_info.h文件中手動(dòng)將PREEMPT_LAZY宏改序號、宏名字
問(wèn)題點(diǎn)1:中斷上下文中調用搶占api(rt_spin_lock即mutex)導致sched異常。
分析與解決:
這個(gè)中斷是系統核心timer服務(wù),至關(guān)重要。其通過(guò)request_percpu_irq注冊中斷isr,并不是常規request_irq或request_thread_irq,無(wú)法線(xiàn)程化。
繼續分析崩潰調用棧,在崩潰前最后的操作為cpufreq_cpu_get,通過(guò)分析其源碼,基本找到__account_system_time函數中調用了cpufreq_acct_update_power,其中又調用了rt_spin_lock函數導致崩潰。
通過(guò)分析cpufreq_acct_update_power函數,發(fā)現通過(guò)宏定義:CONFIG_CPU_FREQ_TIMES可以屏蔽該函數,進(jìn)而不調用rt_spin_lock。
經(jīng)測試,在menuconfig中,屏蔽CONFIG_CPU_FREQ_TIMES后,系統能正常啟動(dòng)到login環(huán)節。
解決方法:
drivers/cpufreq/Kconfig中針對CPU_FREQ_TIMES設置與PREEMPT_RT_BASE的互斥。
config CPU_FREQ_TIMES bool "CPU frequency time-in-state statistics" # default y depends on !PREEMPT_RT_BASE help This driver exports CPU time-in-state information through procfs file system. ! It's incompatable with RT-Preempt scheduler.
If in doubt, say N. |
在buildroot下面打開(kāi)相關(guān)測試,根據下面描述打開(kāi)rt-tests工具即可,打開(kāi)測試工具測試步驟打開(kāi)RT實(shí)時(shí)測試工具,進(jìn)行測試
禁用CPU Freq自動(dòng)調頻,并設置主頻為最高頻率:
cd /sys/devices/system/cpu/cpufreq/policy0
echo userspace > scaling_governor
cat saling_max_freq > scaling_setspeed
(如不禁用cpufreq調頻功能,系統會(huì )因動(dòng)態(tài)調頻產(chǎn)生極大的偶然延遲)
3.實(shí)時(shí)性測試
空載測試
cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n
圖 空載測試
CPU&內存滿(mǎn)載
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
圖 滿(mǎn)載測試
數據對比:
板卡 | MYD-YT507H |
測試時(shí)間 | 120min |
指令 | cyclictest &stress-ng |
空載 | 平均 8us;最大 24us |
滿(mǎn)載 | 平均 13us;最大 136us |
圖表 數據信息
4.產(chǎn)品介紹
MYC-YT507H核心板采用SMD封裝形式貼片(郵票孔+背面焊盤(pán))。標準配置有4種產(chǎn)品型號。它們在存儲配置、溫度等方面有一些差異,客戶(hù)可根據需求自行選擇合適的型號。
圖 MYC-YT507H核心板
MYC-YT507H主要參數
名稱(chēng) | 主要參數 |
主控芯片系列 | T5 Series |
主控芯片型號 | T507-H |
處理器規格 | 4核 ARM CortexTM-A53 |
內存 | LPDDR4 1GB/2GB |
存儲器 | EMMC 8GB (其他容量可選) |
核心板尺寸 | 43 x 45 x 3.5 mm(帶屏蔽骨架) |
接口類(lèi)型 | SMD貼片,郵票孔+LGA |
PCB板規格 | 10層板設計,沉金工藝 |
操作系統 | Linux 4.9 |
核心板主要參數
4.1. MYD-YT507H外設接口資源主要參數
表開(kāi)發(fā)板外設接口資源主要參數
評論