vector autosar RTM使用与集成

关键词

嵌入式、C语言、autosar、vector、cpuload

平台说明

项目Value
OSautosar OS
芯片厂商TI,
编程语言C,C++
编译器HighTec (GCC)

>>>>>回到总目录<<<<<<

技术背景

为了实现RTM的集成和CPUload的测量。

技术难点(关注点)

RTM的集成。只是用来临时监控,为节约开发时间,未用到XCP,DCM。仅实现了测量cpuload,未加入MP用于测量函数运行时间。

abbreviation

MPMeasurement Point
RTMRuntime Measurement

整体架构#流程

在这里插入图片描述

实现过程

一、RTM introduction

1.Runtime Measurement (RTM)允许用户确定BSW模块和用户代码段的运行时和CPU负载。
2.用于测量stack。
3.可以加入MP打桩。
4.可以用canoe作为上位机图形化显示,传输协议为XCP协议(CAN, FlexRay or Ethernet network communication)。

二、Architecture Overview

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

三、RTM集成

1.导入RTM module
在这里插入图片描述
2.创建MP ,RtmMeasurementPointType 为CPU_Load.
在这里插入图片描述

3.配置RtmCpuLoadMeasurement
在这里插入图片描述
在这里插入图片描述

4.配置通用参数
在这里插入图片描述

5.创建低优先级task放入Rtm_mainfunction
在这里插入图片描述

6.code
从文档中可知,可以通过调用GetMeasurementItem 获取cpuload。其中参数ItemType输入为RTM_ITEM_CPU_LOAD_CURRENT
在这里插入图片描述
从代码中可知计算cpuload的公式为。
在这里插入图片描述
其中deltaTime为在Rtm_MainFunction中调用Rtm_Time_MainFunctionRuntimeUpdate(currentTime, 0u);更新,所以deltaTime = Rtm_MainFunction的调度周期。
其中Rtm_CpuLoadTime会在退出idle task的时候被置为0,再次进入idle task的时候将时间间隔赋值给Rtm_CpuLoadTime。这个值用来表示非空闲任务所占用的时间,以此来计算cpu load。在这里插入图片描述
在这里插入图片描述
Rtm_GetCpuLoadTime(locCoreIndex)的值为Rtm_GetCpuLoadTimeOfPCPartitionConfig
在这里插入图片描述
在文档中可知,生成的OS_VTH_SCHEDULE会在task 抢占 激活运行的时候调用Rtm_StartMeasurementFct() 和Rtm_StopMeasurementFct()
在这里插入图片描述
在这里插入图片描述
因为没用到DCM和XCP,需要手动调用开始、结束测量和获取cpuload具体数值。可以设定一个标志位,用lauterbach去控制。找到对应的MP id ,调用Rtm_StartMeasurementFct(mp_id)
在这里插入图片描述
在这里插入图片描述

7.测试结果
仅显示为实时cpuload,瞬时有cpuload满了的情况。
在这里插入图片描述

小结

该笔记仅为临时使用,后续若用到并完善了XCP和canoe再更新。

>>>>>回到总目录<<<<<<

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老灰╮(╯-╰)╭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值