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

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

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

亚马逊在今年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

FreeRTOS

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

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链路时间优化(防止链接器错误地删除对象)配置。


小结

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

图片4.png

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

图片5.png

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


收藏 评论0 发布时间:2020-11-13 10:09

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版