原文:http://blog.csdn.net/zcshoucsdn/article/details/54670473
最近公司搞新项目,需要使用FreeRTOS,之前只有Linux的基础(学了个皮毛),对于FreeRTOS不是非常了解。在官网转悠的时候发现了有个可视化分析工具:FreeRTOS+Trace,感觉应该不错!下载后发现其是http://percepio.com/这个网站上的东西。到官网看了看,功能确实非常强大!
不过这个东西是收费的,虽然也提供了免费版本,但是免费版功能确实太少了,只能查看各全局图,没有详细信息!不过,对于个人使用,可以申请30天的评估版License。
目前,Tracealyzer for FreeRTOS支持两种追踪模式:快照模式(Snapshot Mode)和流模式(Streaming Mode)
- 快照模式(Snapshot Mode):将追踪数据放到芯片的RAM中,然后读取出来分析显示(就相当于每次都取一次快照)
- 流模式(Streaming Mode):将追踪数据实时传送到PC机,目前Tracealyzer for FreeRTOS支持Jlink_RTT、 USB CDC、TCP/IP三种方式的流模式(官方将其称为streamports)。注意,虽然是实时传送过来的,在分析时还是需要停止后才能分析,即:不能实时分析
以上两种模式,都需要进行相关的配置,配置项目还是挺多的,详细的说明,可以参照官方的 User Manual!
仅适用于 FreeRTOS v7.3 及之后的版本
Trace源码
想要使用Tracealyzer for FreeRTOS,必须将Tracealyzer for FreeRTOS的Trace源码放到自己的项目中才可以!安装后打开软件(至于注册啥的就不说了)如下图所示
通过上图的菜单,可以定位到Tracealyzer for FreeRTOS的Trace源代码!各文件的说明见注释。
│ readme.txt
│ trcKernelPort.c
│ trcSnapshotRecorder.c
│ trcStreamingRecorder.c
├─config
│ trcConfig.h // 整个Trace源码的配置文件.
│ trcSnapshotConfig.h // 快照模式配置文件,和流模式对应文件选其一
│ trcStreamingConfig.h // 流模式配置文件,和快照模式对应文件选其一
├─include
│ trcHardwarePort.h // 所有硬件依赖关系。包含几个预定义的硬件端口,包括ARM Cortex-M,PIC32,Renesas RX等。
│ trcKernelPort.h // FreeRTOS特定的定义,最值得注意的是跟踪钩子定义。
│ trcPortDefines.h // 配置文件的各种常量定义
│ trcRecorder.h // 公共API,开发者将以上两种模式进行了统一,用户使用时,只需要包含该文件即可!
└─streamports // 该文件夹下就是流模式对应的不同接口方式的实现,以下任选其一即可
├─Jlink_RTT
│ │ Readme.txt
│ │ SEGGER_RTT.c
│ │ SEGGER_RTT_Printf.c
│ └─include
│ SEGGER_RTT.h
│ SEGGER_RTT_Conf.h
│ trcStreamingPort.h
├─TCPIP
│ │ Readme.txt
│ │ trcStreamingPort.c
│ └─include
│ trcStreamingPort.h
└─USB_CDC
│ Readme.txt
│ trcStreamingPort.c
└─include
trcStreamingPort.h
注意:
1. 官网最新的版本是3.1.0,从3.1.0开始,Trace源代码有了很大的改变,源码进行了整合,简洁了很多!
2. FreeRTOS的源码目录下,有个FreeRTOS-Plus目录,其中也有Trace源码,但是该源码也比较旧,不建议使用!
3. 网上现有资料也是针对旧源码的,和官方的User Manual不匹配。