国产工业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 来加速开发。
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自动调频,并设置主频为最高频率:
(如不禁用cpufreq调频功能,系统会因动态调频产生极大的偶然延迟)
3.实时性测试
空载测试
图:空载测试
CPU&内存满载
增加压力
图:满载测试
数据对比:
图表:数据信息
4.产品介绍
MYC-YT507H核心板采用SMD封装形式贴片(邮票孔+背面焊盘)。标准配置有4种产品型号。它们在存储配置、温度等方面有一些差异,客户可根据需求自行选择合适的型号。
图MYC-YT507H核心板
MYC-YT507H主要参数
4.1. MYD-YT507H外设接口资源主要参数
上一篇:电机控制中载波频率设定的五个因素
下一篇:步进电机的基本工作原理(单相励磁)
推荐阅读最新更新时间:2024-11-16 20:32
- ADR291GRZ 2.5V便携式设备稳压器典型应用电路
- STR-FAN65004C-GEVB:Strata Enabled FAN65004C 65V 同步降压
- LT3478EFE 演示板、4.5A 42V、2.25MHz 升压 LED 驱动器,具有真彩色 PWM 调光
- 基于STCN75的温度探针套件
- LTC3624EDD 可调输出电压、2A 同步降压稳压器、同步至 500kHz、强制连续模式的典型应用
- 用于卫星数字多媒体广播应用的 LNA 使用 BFP640F SiGe 晶体管
- #第五届立创电子设计大赛#智能家居
- 使用 NXP Semiconductors 的 MPC862T 的参考设计
- MCP1316 电压监控器的典型应用
- 用于三相电机驱动的 45W、15V DC 至 DC 多输出电源