SEGGER实时软件分析工具SystemView已经在ThreadX v6.4.2上进行了测试。SystemView从v3.60c版本支持Eclipse ThreadX(Azure RTOS),用户可以基于Systemview记录ThreadX操作系统事件并执行分析。我们基于SEGGER Embedded Studio开发环境描述如何在Eclipse ThreadX RTOS中集成SystemView。
使用Embedded Studio
创建ThreadX项目
1 启动Embedded Studio
2(可选)通过Tools->Package Manager为使用的处理器安装CPU支持包
3 创建工程
通过File ->New Project…,创建项目,为设备选择项目模板。例如“A C/C++ executable For NXP LPC4300.”,并输入项目名称。
4 测试创建的项目
通过J-Link连接目标硬件,构建项目并启动调试会话,运行项目,在Terminal窗口中看到Hello World输出。
5 获取ThreadX代码
在文件资源管理器中使用File ->Open Studio Folder…->Project Flolder打开工程文件目录,创建一个新文件夹‘threadx’,并添加ThreadX源代码,ThreadX代码包可以访问https://github.com/SEGGERMicro/threadx/releases/tag/v6.4.2_rel-segger获取。
6 将ThreadX添加到Embedded Studio项目中
通过右键单击Project->New Folder.... 创建一个新的文件夹ThreadX,在“ThreadX”中创建一个新文件夹common,并设置其Dynamic Flolder Options选项,将Source folder设置为“$(ProjectDir)/threadx/common”,设置Filter specification为*.c;*.h。选中“Recurse into subdirectoires”。
在‘ThreadX’中创建一个新文件夹‘ports’,并设置其Dynamic Flolder Options选项,将源文件夹设置为目标平台的移植代码,例如“$(ProjectDir)/threadx/ports/cortex_m4/gnu”。设置Filter specification为*.s;*. s;*. c;*.h。将Exclude specification设置为“*example*”。选中“Recurse into subdirectoires”。
通过右键单击Project->Options添加包含路径。选择“Common”配置,编辑Code->Preproessor->用User Include Directories,添加“$(ProjectDir) / threadx /common/inc”,添加移植包含文件,如$(ProjectDir)/threadx/ports/cortex_m4/gnu/inc。
7(可选)添加第三方库,hal,驱动程序等到项目中
8 添加应用程序代码。
编辑main.c,添加#include“tx_api.h”,并修改main()函数实现。
9 使用Embedded Studio构建、开发和调试项目。
将SystemView
添加到ThreadX项目中
SystemView检测代码需要添加到ThreadX源代码中。建议使用https://github.com/SEGGERMicro/threadx上准备好的ThreadX源代码,如果使用其他来源的ThreadX,需手动修改应用修改。
1 将SystemView和RTT源添加到项目中
在文件资源管理器中打开项目,创建新的文件夹‘SystemView’并添加SystemView源代码。访问https://www.segger.com/downloads/systemview可以下载最新的SystemView代码。
创建一个新文件夹‘RTT’并添加SEGGER_RTT源代码。
将SystemView/SYSVIEW/*.c,SystemView/SYSVIEW/Sample/ThreadX/SEGGER_SYSVIEW_ThreadX.c,RTT/RTT/*.c,RTT/RTT/*.s及配置如SystemView/SYSVIEW/Sample/ThreadX/Cortex_M4/SEGGER_SYSVIEW_Config_ThreadX.c添加到项目。
添加include path,SystemView/Config,SystemView/SEGGER,SystemView/SYSVIEW,RTT/Config,RTT/RTT
2 根据目标系统调整SystemView和RTT配置
调整SEGGER_SYSVIEW_Config_ThreadX.c配置,设置SEGGER_SYSVIEW_Conf.h和SEGGER_RTT_Conf.h中的配置。
3 在SystemView中启用ThreadX跟踪
添加预处理器定义ENABLE_TRACE_API=1,在tx_api.h的末尾添加
#include “SEGGER_SYSVIEW_ThreadX.h”
在main()函数中调用SEGGER_SYSVIEW_Conf()。
完成以上操作,即可实现Systemview跟踪ThreadX系统行为了。
SystemView是一个用于嵌入式系统的实时记录和可视化工具。它揭示了应用程序的真实运行时行为,比调试器提供更多的系统洞察。麦克泰技术代理SEGGER全线产品,具有丰富的RTOS分析软件与调试工具使用方面的知识和经验,欢迎咨询。
全部0条评论
快来发表一下你的评论吧 !