请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于SystemView v3.12分析FreeRTOS v10.4.1

[复制链接]
麦克泰技术 发布时间:2020-11-13 10:09
作者:Erich Styper,翻译:BMR技术部

% L* I5 ~- q5 q( c7 m

亚马逊在今年9月份发布了FreeRTOS的新版本v10.4.0和v10.4.1,而SEGGER是在4月发布的SystemView v3.12。随着FreeRTOS的升级,我们需要做些工作才能让最新的FreeRTOS v10.4.x与SystemView v3.12一起工作。不用担心,笔者已经完成了需要的补丁和更改工作。

segger-systemview-3.12-with-freertos-10.4.2.png 2 G, y: q: k9 U. {" Q

FreeRTOS
5 ?% l# T! @. h& a# D3 |

FreeRTOS代码现在在GitHub上托管。v10.4.0在2020-9-9发布,目前在GitHub上可以获取最新的v10.4.1版本。

v10.4.x最大的变化是扩展了直接任务通知(Direct Task Notification)功能,支持一个通知值数组,从FreeRTOS v10.4.0开始,每个任务都可以有一系列通知。直接任务通知是一个很好的功能,占用RAM少且执行速度更快,笔者在大量的应用中都使用了该功能。但在FreeRTOS v10.4.0之前的版本中,任务通知是一个32位变量,如果你需要多个通知,必须使用其它任务交互方式;在FreeRTOS v10.4.x版本中,直接任务通知可以指定通知项(32位)的数量。

笔者已经成功地移植了FreeRTOS的最新版本,并更新了所有的例程。例如,在使能所有附加功能的MCUXpresso(基于Eclipse)IDE中,实现了FreeRTOS v10.4.1与MCUXpresso SDK集成并运行:

图片1.png

在Processor Expert中查看使用的FreeRTOS信息:

图片2.png
0 s. o$ [* ^  T% i9 Q$ a2 r

Systemview

Systemview使用SEGGER RTT技术,可以帮助用户深入了解基于RTOS应用程序的运行时行为。Systemview的最新版本为v3.12。

SystemView v3.12捕获的 FreeRTOS v10.4.1应用信息如下图:

图片3.png

为了使用SystemView捕获FreeRTOS应用信息,FreeRTOS内核需要做些调整。要将目标跟踪数据直接传输到主机,还需应用中驻留并配置SEGGER RTT代码。由于FreeRTOS API的改变,必须扩展SEGGER的补丁包,并将其应用于新版本的内核代码。此外,所有最新的FreeRTOS应用例程都采用了GNU链路时间优化(防止链接器错误地删除对象)配置。

5 P4 @9 q$ p, \% O: h9 c" o( q

小结

SystemView和FreeRTOS都可以作为Processor Expert组件,与MCUXpressoIDE一起使用:

图片4.png

所有的移植文件(包括FreeRTOS、RTT、SystemView)都可以通过GitHub获取(链接参见文末),可以与最新版本的IDE、SDK、GCC(包括最高等级优化及LTO链接时间优化)一起工作。

图片5.png

笔者已经使用MCUXpressoIDE和SDK,完成最新的FreeRTOS和SystemView集成工作,可以使用SystemView检查最新版本FreeRTOS应用程序的性能。FreeRTOS中的扩展任务通知功能是一个很好的扩展,笔者计划在下一个应用程序中使用它。


& K9 u$ R' q& H. Q+ i6 @/ \, c
收藏 评论0 发布时间:2020-11-13 10:09

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版