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-bbbbbb all --io 4 --vm 50 -d 5 --fork 4 --timeout 36000s

圖:滿載測試
數據對比:

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

圖myc-yt507h核心板
myc-yt507h主要參數

核心板主要參數
4.1. myd-yt507h外設接口資源主要參數


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










