news 2026/9/12 10:17:57

vector autosar RTM使用与集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vector autosar RTM使用与集成

目录

  • 关键词
  • 平台说明
  • 技术背景
  • 技术难点(关注点)
  • abbreviation
  • 整体架构#流程
  • 实现过程
    • 一、RTM introduction
    • 二、Architecture Overview
    • 三、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再更新。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 10:15:42

Python进阶:突破初学者瓶颈的四大维度与实战技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 10:14:20

Java继承深度解析:从extends语法到类库设计的最佳实践

刚接触面向对象编程那会儿&#xff0c;我一度以为extends就是把两个类的代码“打通”的语法糖&#xff0c;子类自动拿到父类的一切。直到我在一个类库项目里写出了一棵深度四层的继承树&#xff0c;然后在改父类的一个方法时&#xff0c;眼睁睁看着三个子类同时崩溃&#xff0c…

作者头像 李华
网站建设 2026/9/12 10:13:08

AI定时任务实战指南:从Cron到分布式调度,搭建稳定自动化链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 10:05:22

Astra级系统实战:Mid-turn Steering与Async Tool Calling工程落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华