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

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

3天内不再提示

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

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

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

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

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

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

在相似的条件下记录两个版本的运行过程。使用Actor Statistics 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微信公号。

审核编辑:汤梓红

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

    关注

    48

    文章

    6812

    浏览量

    147653
  • FreeRTOS
    +关注

    关注

    12

    文章

    473

    浏览量

    61351
  • 可视化
    +关注

    关注

    1

    文章

    1021

    浏览量

    20556
  • 响应时间
    +关注

    关注

    0

    文章

    11

    浏览量

    6863

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    可视化MES系统软件

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

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

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

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

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

    基于STM的可视化门禁系统

    基于STM的可视化门禁系统
    发表于 03-07 09:49

    基于stm的可视化门禁系统

    基于stm的可视化门禁系统
    发表于 03-11 09:23

    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 5002次阅读

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

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

    面板响应时间有什么影响

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

    进程响应时间是指什么

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