Gliwa T1软件集成及T1上位机操作说明

本文详细介绍了GliwaT1软件的集成过程,包括监控功能、CPU负载率监控原理,使用RTA文件和T1上位机操作,涉及硬件平台、操作系统、监控软件、编译和调试工具。还涵盖了T1-TARGET-SW和T1-HOST-SW的协作,以及如何在T1上位机上配置、连接和使用FLEX模块进行数据分析和时钟测试。

一、监控(时间测量)的作用

  1. 监控任务时序,防止功能错误;
  2. 监控数据流,分析数据交互;
  3. 监控内核负载,评估系统性能;
  4. 监控任务运行,评估时序指标

二、CPU负载率监控原理

cpu负载率主要用来衡量一段时间CPU被占用的情况。CPUload = (Ttotal - Tidle)/Ttotal
英飞凌AURIX系列单片机可以使用STM模块进行计时,一次能读32位的数据,在idle任务中添加一个死循环,循环开始时读取当前STM寄存器的值,并和上一次STM值相减,如果大于等于0,累加时间间隔大于最小调度周期的时间(Ts),则负载时间累加,如果小于0,则说明STM寄存器溢出,这时可以计算负载率CPUload = ALLTs/T0。

三、集成工具

序号类型名称
1硬件平台AURIX TC3xx
2操作系统AUTOSAR OS
3监控软件GLIWA T1
4编译器TASKING
5调试器UDE/劳特巴赫

T1软件分为相对独立的两部分:在MCU上运行的目标板软件T1-TARGET-SW;在上位机PC上运行的软件T1-HOST-SW;
T1-TARGET-SW负责监控功能的实现及监控数据初步处理;
T1-HOST-SW负责接收MCU的数据,并将其以可视化界面的形式展现,与T1-TARGET-SW通过CAN总线或以太网进行数据交互。

四、集成步骤

4.1 生成rta文件

4.1.1 RTA-OS cfg软件中添加Os,EcuC,iocNeeds三个文件

在这里插入图片描述
打开已存在的文件B0_Os_EcucValues.arxml,再依次添加B0_EcuC_EcucValues.arxml,iocNeeds.arxml,并将他们的路径设为Relative,这三个文件在ISOLAR-AB生成物中找到

4.1.2 RTA-TRACE Configuration

Os Configuration配置
在这里插入图片描述
Configuration配置
在这里插入图片描述
Filters配置
在这里插入图片描述
Builder配置
在这里插入图片描述
在这里插入图片描述
添加command line setting --using:T1_RTA.h到rtaosgen.exe命令行最前面。
在这里插入图片描述
产生的操作系统.c,.h,asm文件放到项目中编译,产生的RTAOS.rta要放到集成脚本里面去

4.2 修改T1配置文件

将生成的RTAOS.rta文件提供给GLIWA公司,GLIWA根据文件适配操作系统,产生相应的批处理文件、库文件及配置脚本文件
在这里插入图片描述

序号类型名称
1配置文件T1_UserCfg.inv
2配置文件T1_Cfg.inv
3配置文件T1_OsCfg.inv
4批处理T1_projGen.bat
5生成的头文件T1_config.h
6生成的源文件T1_configGen.c
7生成的工程文件T1_project.t1p
8脚本文件T1_perl

T1_UserCfg.inv: 主要涉及tracebuffer大小,设置delay;
在这里插入图片描述
T1_Cfg.inv: 主要修改计时器地址和工作频率,里面也包含通讯Id
在这里插入图片描述
在这里插入图片描述
注:rawTickDurationNs为MCU计时器频率,tickDurationNs为T1计时器频率
T1_OsCfg.inv:包含rta文件的路径,若要测量runnable,则需要添加runnable路径
在这里插入图片描述

4.3 集成T1接口函数

T1_AppInterface.c文件中包含T1_Init, T1_AppHandle, T1_BackgroundHandle, T1_ReceiveFrame, T1_TransmitFrame等函数

  1. 增加T1的CAN id
  2. 增加T1初始化
  3. 将T1_AppHandle:放到所有核的重要任务中调用
  4. 将T1_AppBackgroundHandler:放到所有核的idle任务

4.4 添加一类中断

由于一类中断不由OS管理,故需要特别集成一类中断,在中断函数的起始端和末端添加T1_TraceEvent

4.5 添加runnable

在T1_OsCfg里添加runnable路径

4.6 编译

在每次编译之前,要先通过运行T1_projGen.bat能正确产生t1p项目文件和src里面的T1_config.h,T1_configGen.c文件,把下面三个文件夹里面的.c,.h,.a文件全部放到项目文件里面参与编译。

在这里插入图片描述
为保证各个.h文件以及.c文件在项目中都能被编译进去。在每个插入了T1的API函数的地方,必须包含T1_Appinterface.h头文件。
在进行一次编译成功后,把elf文件下载到目标板中,用debugger观察T1_tracebuffer的状态,正常应该是不断更新中。

五、T1上位机使用

5.1 上位机连接

T1的Dongle(lisence)直接插在电脑上,VECTOR与MCU的CAN线连接,打开T1上位机之前,先VECTOR使能通道。

5.1 .1 导入T1项目文件

在这里插入图片描述

5.1 .2 配置通讯通道

在这里插入图片描述
在这里插入图片描述

5.1 .3 连接MCU

在这里插入图片描述
然后依次激活其他核

5.3 FLEX模块集成

5.3.1 导入elf文件

每个核右键点击导入elf
在这里插入图片描述
elf导入成功后
在这里插入图片描述

5.3.2 开启T1_HandlerPC

开启T1_HandlerPC才能正常使用T1的Scope功能
在Symbol search 里面输入T1_HandlerPC,然后在下面显示的T1_HandlerPC选择点击右键:
在这里插入图片描述
开启成功后显示如下
在这里插入图片描述
在这里插入图片描述

5.3.3 下载数据分析

点download,下载完数据后,会在T1_Scope模块里面显示T1_HandlerPC测试信息
在这里插入图片描述
在这里插入图片描述

5.3.4 时钟准确性测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照此种方式可以测所有的TASK和ISR

5.4 runnable测量

方法一:4.5配置文件添加ruannble
方法二:右键Symbol Group Add
在这里插入图片描述
添加成功后右键runnable所在的TASK
在这里插入图片描述
如果TASK中的runnable过多(大于16),则可以选择性分几次测
在这里插入图片描述

5.5 上位机模块说明

T1.scope : 软件运行示波器模块
T1.scope 主要功能是对Tasks 和 ISRs 的时间信息进行实时跟踪和显示,并进行分析,帮助用户对实际系统的时间调度运行情况理解,同时输出报告,产生CSV格式文件

T1.cont : 对目标板进行时间分析和监视模块
T1.cont主要功能是连续对目标板的时间测量和显示,并可以实现在线配置时间限值。
T1.cont 最重要的特点之一就是检查限值,比如一个任务的max. CET。因此不需要停止Trace, 用户不需要从目标板下载Trace 时间信息,就可以连续的检查时间限值是否溢出。如果出现超出限值情况,callback 功能就会运行,触发T1.scope 扑捉当前Trace buffer 的内容,并在T1.scope 图形化显示,用户就可以看出在超出限值时究竟发生了什么。

GLIWA T1 是一种用于嵌入式系统开发和调试的工具,特别适用于对任务执行时间、中断响应时间以及整体 CPU 负载等时间特性进行监控和分析。该设备通常用于汽车电子控制单元(ECU)等实时系统的开发过程中,以确保系统满足严格的时间要求。 ### GLIWA T1 的基本使用方法 #### 1. 硬件连接 GLIWA T1 设备需要通过 CAN 接口与目标系统进行通信。通常需要将 GLIWA T1 与目标 ECU 连接,并确保 CAN 通信正常。此外,还需要将 GLIWA T1 连接到主机(PC)以便进行配置和数据采集。 #### 2. 软件配置 GLIWA T1 的使用通常需要配合专用的软件工具链。用户可以通过配置软件设置采样频率、监控对象(如特定任务或中断)以及数据记录方式。例如,用户可以选择监控某个任务的执行时间或 ISR(中断服务例程)的响应时间。 #### 3. 数据采集 在目标系统运行过程中,GLIWA T1 会通过 CAN 通信采集时间戳信息,并记录任务的开始与结束时间、中断响应时间等关键指标。这些数据可以被导出为多种格式(如 CSV、XML、ASC、OT1 签名文件等),以便进一步分析。 #### 4. 数据分析 采集到的时间数据可以导入到分析工具中,如 TraceAnalyzer 或 SymTA/S。这些工具能够对任务响应时间、总线报文传输时间等进行可视化展示,并与系统需求进行对比,从而验证系统的时间特性是否符合预期 [^2]。 ### 示例代码(用于时间测量) 虽然 GLIWA T1 是一种硬件辅助工具,但在某些情况下,开发者也可以使用定时器进行简单的任务时间测量。以下是一个基于 8051 微控制器的定时器配置示例: ```c #include <reg52.h> typedef unsigned int u16; sbit LED = P2^0; sbit LED1 = P2^1; u16 num = 0, num_1 = 0; void TIME0_1_init() { TMOD |= 0x11; // 设置定时器0和定时器1为工作方式116位定时器模式) TH0 = 0xFC; // 定时器0初值,定时1ms TL0 = 0x17; TH1 = 0xFC; // 定时器1初值,定时1ms TL1 = 0x17; ET0 = 1; // 使能定时器0中断 TR0 = 1; // 启动定时器0 ET1 = 1; // 使能定时器1中断 TR1 = 1; // 启动定时器1 EA = 1; // 使能全局中断 } void main() { TIME0_1_init(); while(1) { // 主循环中可以添加其他任务 } } void TIME0_1_exit() interrupt 1 { TH0 = 0xFC; // 重新加载定时器0初值 TL0 = 0x17; num++; if(num % 1000 == 0) { LED = !LED; // 每1秒翻转一次LED状态 } } void TIME0_1_exit1() interrupt 3 { TH1 = 0xFC; // 重新加载定时器1初值 TL1 = 0x17; num_1++; if(num_1 % 1000 == 0) { LED1 = !LED1; // 每1秒翻转一次另一个LED状态 } } ``` ### 注意事项 - **精度问题**:基于定时器的时间测量可能不如 GLIWA T1 等硬件追踪工具精确,尤其是在高精度时间分析场景中。 - **调试接口支持**:若要使用 GLIWA T1 进行更精确的时间测量,目标系统需要具备 CAN 接口,并且硬件平台需要支持相应的调试接口。 - **数据分析工具**:建议将采集到的数据导入 TraceAnalyzer 或 SymTA/S 等专业工具进行深入分析,以便更好地理解系统的时间行为 [^2]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值