0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何可视化FreeRTOS任务响应时间

麦克泰技术 来源:麦克泰技术 2023-12-22 11:12 次阅读

高效的开发基于FreeRTOS的固件需要理解任务、中断和内核之间的交互以及时间序列。

Tracealyzer支持基于FreeRTOS应用的可视化分析,它提供了30多种相互关联的视图,观测软件运行时行为。

我们基于一个案例解析Tracealyzer如何帮助用户解决实际问题。本例中, 用户在ARMCortex-M4微控制器上运行了FreeRTOS+TCP/IP+Flash文件系统的应用。系统中包含多个任务,一个Server任务用于响应网络请求,一个Logger文件缓冲任务。网络请求的响应时间一直不理想,最近一次构建,响应时间更加恶化。

为了解决响应时间问题,他们比较了两个版本的源代码,找不到任何明显的原因导致响应时间变长。代码有许多小的变化,但并没有增加新的功能。因此,用户决定使用Tracealyzer来比较新旧版本的运行时行为。

在相似的条件下记录两个版本的运行过程。使用ActorStatistics Report视图进行比较 (图1A和图1B),视图中提供了时间统计信息,如CPU使用情况、执行次数、任务优先级和响应时间信息。

2b566b06-a077-11ee-8b88-92fbcf53809c.png

图 1A

2b6e90fa-a077-11ee-8b88-92fbcf53809c.png

图1B

Statistics Report显示,新代码版本中Server任务的响应时间(Response time)增加大约50%。而执行时间(Execution time)新版本中仅增长约7%。由此得出的结论,较长响应时间的主要原因一定是其他任务的干扰,但是哪个任务?

为了确定哪些任务干扰了Server任务,单击Statistics Report中的极端值。跟踪到主视图中相应的位置,可以看到更多执行细节,打开Tracealyzer的并行实例,可以很容易地比较并发现差异。

由于Server任务执行了多个服务,因此我们添加了两个用户事件 (标记为ServerLog)来标记接收和应答请求,如图2A和2B所示,图例的缩放级别相同,可以清楚地看到新版本中响应时间更长,Logger任务抢占了Server任务11次,而旧版本中抢占只有6次。

2b80aa7e-a077-11ee-8b88-92fbcf53809c.png

图2A

2b939936-a077-11ee-8b88-92fbcf53809c.png

图2B

此外,我们看到Logger任务的优先级高于Server任务,因此日志记录的服务调用会抢占Server任务。

因此,新版本中似乎添加了新的日志记录调用,导致Logger任务更多地干扰Server任务。为了查看记录的内容,我们在日志任务中添加了一个User Event,在跟踪视图中显示所有日志消息。可以看到除了Server之外的其他任务生成的日志消息,例如ADC_0任务。为了查看向日志任务发送消息的所有任务,我们使用Tracealyzer的通信流图,如图3所示。通信流图显示了跟踪的任务和中断对消息队列、信号量和其他内核对象执行的所有操作,展示了上层应用程序设计以及运行时依赖关系。

2bb7a632-a077-11ee-8b88-92fbcf53809c.png

图3

在本例中,通信流图显示有五个任务发送日志消息。通过双击图中的LoggerQueue节点,可以打开Kernel Object History视图,查看该消息队列上的所有操作(图4)。正如预期的那样,我们看到Logger任务频繁地接收消息,每次接收一条消息,并且在每个消息之后被阻塞,如Event列中的红色指示灯所示。

2bd22192-a077-11ee-8b88-92fbcf53809c.png

图4

应用可能没有必要将日志消息一条接一条地写入文件。如果提升Server任务的调度优先级高于Logger任务,那么Server能够更快地响应,日志消息可以被缓冲在LoggerQueue队列中,直到Server和其他高优先级任务完成,Logger任务恢复执行并批量处理所有缓冲消息。

测试的结果如图5所示。Server任务的最高响应时间现在只有5.4 ms,比早期版本(5.7 ms)还要快,Logger任务收到一条消息后不会立即抢占Server任务,而是在Server完成后批量处理所有挂起的消息。

2bf1475c-a077-11ee-8b88-92fbcf53809c.png

图5

我们还可以查看消息队列操作的事件标签,并且正如预期的那样,多个xQueueSend调用,没有引起阻塞或任务抢占。仍然有一些由A/D转换任务引起的抢占,但这不再导致Logger任务的额外激活。

问题解决了!更多关于Tracealyzer的技术文档,请关注BMR微信公号。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7275

    浏览量

    149555
  • FreeRTOS
    +关注

    关注

    12

    文章

    476

    浏览量

    61643
  • 可视化
    +关注

    关注

    1

    文章

    1118

    浏览量

    20697
  • 响应时间
    +关注

    关注

    0

    文章

    11

    浏览量

    6896

原文标题:如何可视化FreeRTOS任务响应时间?

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问freertos可视化调试中打印任务信息是不是只可以打印一次?

    freertos中,使用 可视化调试打印 任务消息,但是打印不全,还只能打印一次,使用IAR自带的调试插件看,显示 可视化调试 任务的堆栈顶全是a
    发表于05-07 06:16

    基于无线的应急现场可视化协作系统设计

    应急现场 可视化协作系统基于各种先进的技术,面向城市应急现场处理和协作问题,提供可靠、快速、完整的城市应急现场 可视化协作系统方案,为应急事件实时上报、应急事件快速 响应、应急事件远程指挥和调度、应急
    发表于07-26 18:10

    可视化MES系统软件

    ,企业的生产经营将蒙受损失。所以企业能及时正确地传达和 响应这些生产过程、设备和质量信息。针对上述需求,结合物联技术,研究MES系统软件 可视化系统,通过部署多个传感器节点,利用RFID标签定位技术,追踪物料
    发表于11-30 19:55

    如何把AD中非可视化区域物件移到可视化区域?

    AD中非 可视化区域物件怎么移到 可视化区域???
    发表于09-10 05:36

    可视化电子看板系统的岗位需求

    库存、生产、品质和机台等运行状况处于可控状态。生产运作高效 可视化电子看板系统通过各部门和生产环节的紧密合作, 可视化、精细化管理,节省库存成本、杜绝浪费,包括任何一点材料、人力、 时间
    发表于10-19 20:07

    Python数据可视化

    Python数据 可视化:网易云音乐歌单
    发表于07-19 08:30

    三维可视化的应用和优势

    ,为此三维 可视化运维系统登场了。  三维 可视化的应用  宏观场景 可视化:在特定的环境中对随着 时间推移而不断变化的目标实体进行检测,可以直观、灵活、逼真的展示所处区域的情景和环境,可以快
    发表于12-02 11:52

    数据可视化在电力行业的应用前景如何?

    、信息管理和数据管理的量化展示,支持变电站多维数据的深度挖掘和智能分析。将实际生产业务无缝集成到平台上,使日常管理 任务标准 、自动 和企业智能、专业管理。案例预览地址:https://www.hightopo.com/blog/
    发表于07-06 07:44

    常见的几种可视化介绍

    说说常见的几种 可视化一、信息 可视化信息 可视化就是对抽象数据进行直观视觉呈现的研究,抽象数据既包含数值数据,也包含非数值数据如文本信息、地图信息等,它们可通过利用图形图像处理、人机交互、人工智能的技术
    发表于07-12 07:49

    基于OneNET View 3.0的可视化数据监测系统的设计资料分享

    姿态定位制作说明功能说明将维特WT901C姿态传感器数据通过合宙Air724UG-4G模块将数据传输到onenet云平台,并建立onenetview 可视化界面成果展示 可视化成果注:由于采用免费 可视化
    发表于01-20 06:28

    什么是响应时间

    什么是 响应时间 响应时间是指液晶显示器各像素点对输入信号反应的速度,即像素由暗转亮或由亮转暗所需要的 时间(其原理是在液晶分子内
    发表于05-24 21:53 5344次阅读

    什么是液晶电视的响应时间

    什么是液晶电视的 响应时间 响应时间是液晶电视各像素点对输入信号反应的速度,即像素由暗转亮或由亮转暗所需要的 时间(其原理是在液晶分子内
    发表于03-27 13:29 4164次阅读

    AS:可视化的调试工具--FreeRTOS+Trace

    在AS开发库中,除了直接用于程序嵌入的库和内核以外,还有用来调试的工具。对于 FreeRTOS而言,相对的线程和 任务调度是比较难于用普通的设置断点,进行参数跟踪来实现的。因此,一种 可视化的调试工具就被
    的头像 发表于02-09 14:17 6584次阅读

    面板响应时间有什么影响

    响应时间是一个计算机,显示器成像等多个领域的概念,在网络上,指从空载到负载发生一个步进值的变化时,传感器的 响应时间
    的头像 发表于01-14 14:56 3794次阅读

    进程响应时间是指什么

    进程 响应时间是指从发出请求到收到 响应时间间隔,是衡量系统性能和用户体验的重要指标之一。在计算机系统中,进程是指一个正在运行的程序实例。当用户发出请求,系统会创建一个新的进程来处理该请求。进程
    的头像 发表于11-17 11:31 749次阅读