查看: 912|回复: 0

[原创] 米尔基于全志T507-H国产工业CPU平台的实时性分析与测试

[复制链接]
  • TA的每日心情

    2019-10-15 10:48
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2023-2-6 11:23:24 | 显示全部楼层 |阅读模式
    分享到:
    01.

    概述

        全志科技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


    02.

    实时内核设计

    实时补丁我们选择RT-Preempt来实现。

    2.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的互斥。
    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.
    打开RT实时测试工具,进行测试
    在buildroot下面打开相关测试,根据下面描述打开rt-tests工具即可,打开测试工具测试步骤

    2.2. 其他影响性能的配置
    禁用CPU Freq自动调频,并设置主频为最高频率:
    • cd /sys/devices/system/cpu/cpufreq/policy0
    • echo userspace > scaling_governor
    • cat saling_max_freq > scaling_setspeed
    (如不禁用cpufreq调频功能,系统会因动态调频产生极大的偶然延迟)


    03.

    实时性测试

    空载测试
    • cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n
    图3-1.空载测试

    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
    图3-2.满载测试

    数据对比:
    板卡
    MYD-YT507H
    测试时间
    120min
    指令
    cyclictest &stress-ng
    空载
    平均 8us
    最大 24us
    满载
    平均 13us
    最大 136us
    表3-1.数据信息

    04.

    产品介绍

        MYC-YT507H核心板采用SMD封装形式贴片(邮票孔+背面焊盘)。标准配置有4种产品型号。它们在存储配置、温度等方面有一些差异,客户可根据需求自行选择合适的型号。
    图4-1 MYC-YT507H核心板


    4.1. MYC-YT507H主要参数

    名称
    主要参数
    主控芯片系列
    T5 Series
    主控芯片型号
    T507-H
    处理器规格
    4核 ARM CortexTM-A53
    内存
    LPDDR4 1GB/2GB
    存储器
    EMMC 8GB (其他容量可选)
    核心板尺寸
    43 x 45 x 3.5 mm(带屏蔽骨架)
    接口类型
    SMD贴片,邮票孔+LGA
    PCB板规格
    10层板设计,沉金工艺
    操作系统
    Linux 4.9
    表4-1 核心板主要参数


    4.2. MYD-YT507H外设接口资源主要参数

    功能
    参数
    系统
    POWER
    12V DC JACK
    KEY
    1路复位按键1路FEL刷机按键1路ON/OFF按键
    SWITCH
    1路电源开关
    BOOT SET
    1路拨码开关
    SD
    1Micro SD卡槽
    通讯接口
    WIFI/BT
    1路WIFI/BT模块接口,通过20PIN排针引出
    4G
    1路4G Mini PCIE接口1路SIM卡座
    Ethernet
    1路10/100/1000M以太网接口,RJ45接口1路10/100M以太网接口,RJ45接口
    USB
    2路 USB 2.0 HOST 接口,采用Type-A接口1路USB 2.0 OTG接口,采用Type-C接口
    UART
    1路调试串口,通过串口转USB,采用Type-C接口2路普通串口,通过扩展接口引出
    多媒体接口
    DISPLAY
    1路HDMI 2.0a接口2路LVDS 显示接口(支持单/双通道)1路TV CVBS模拟视频输出接口
    CAMERA
    1路MIPI CSI摄像头接口1路DVP摄像头接口
    AUDIO
    1路3.5mm音频输出接口1路SPDIF音频输出接口1路扬声器扩展接口
    扩展接口
    Expansion IO
    1路2.54mm间距的40PIN排针,GPIO/TWI/UART
    表4-2 开发板外设接口资源主要参数


    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-10 03:36 , Processed in 0.126646 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.