章节8 支持的操作系统 - Segger SystemView使用手册(译文)

本文博客链接:http://blog.csdn.net/bjr2016,作者:bjr2016,未经允许不得转载。

章节8 支持的操作系统


下面的章节描述了哪些(实时)操作系统已经验证过可以使用SystemView,和如果配置它们。

8.1 embOS

SEGGER embOS(V4.12a或者更高版本)能够为SystemView和其他记录实现(当分析功能使能时)产生跟踪事件。

8.1.1 配置embOS

分析功能是在OS_LIBMODE_SP、OS_LIBMODE_DP和OS_LIBMODE_DT的库配置中使能的(详细信息请参阅embOS用户手册UM01001)。
除了SYSTEMVIEW和RTT核心模块之外,还需要包含以下文件:
对于Cortex-M0、Cortex-M1、Cortex-M3和Cortex-M4,需要包含 SEGGER_SYSVIEW_Config_embOS.c。
该文件还为SystemView提供了额外的功能,并允许修改配置从而与目标系统相匹配,比如定义应用程序名称、目标设备和目标核心频率。它初始化SYSTEMVIEW模块并配置embOS来将跟踪事件发送到SYSTEMVIEW。参阅第56页的SystemView系统信息配置的例子。

在main函数的开始,当目标板被初始化之后,必须调用SEGGER_SYSVIEW_Conf()来启用SystemView。
现在,当应用程序运行时,SystemView可以连接到目标并开始记录事件。当SystemView连接或SEGGER_SYSVIEW_Start()被调用时,记录所有的任务、中断和OS调度器活动,以及embOS API调用。

8.2 uC/OS-III

SystemView可以用于Micrium公司的uC/OS-III,用来记录任务、中断和调度情况。

配置uC/OS-III

除了SYSTEMVIEW和RTT核心模块之外,还必须包括在应用程序项目中的以下文件:

SEGGER_SYSVIEW_Config_uCOSIII.c 提供了SystemView所需的功能,并允许修改配置从而与目标系统相匹配,比如定义应用程序名称、目标设备和目标核心频率。SystemView包中的示例配置文件被配置为与大多数Cortex-M3、Cortex-M4和Cortex-M7目标一起使用。请参阅第56页的SystemView系统信息配置的例子。

SEGGER_SYSVIEW_uCOSIII.c和os_trace_events.h提供uC/OS-III和SystemView之间的接口。它们通常不需要修改。

os_cfg_trace.h是SystemView实现uC/OS跟踪最小配置的需要的文件。如果项目已经包含该文件,请确保内容适合该应用程序。该文件包含两个定义,用于配置要管理的任务的最大数量和在SystemView记录中管理和命名的最大资源数。

#define TRACE_CFG_MAX_TASK 16u
#define TRACE_CFG_MAX_RESOURCES 16u

使能记录
可以在os_cfg.h中配置用于uC/OS-III的记录。
定义 OS_CFG_TRACE_EN 为 1,以使用基本的记录。
当 OS_CFG_TRACE_API_ENTER_EN 定义为1,API 函数调用也会被记录。
当 OS_CFG_TRACE_API_EXIT_EN 定义为1,API函数退出也会被记录。
在应用程序开始时,且系统已经初始化完成后,调用 TRACE_INIT() :

   [...] 
    BSP_Init (); /* Initialize BSP functions       */ 
    CPU_Init (); /* Initialize the uC/CPU services */
#if  (defined (OS_CFG_TRACE_EN) &&  (OS_CFG_TRACE_EN > 0u)) 
    /* Initialize uC/OS-III Trace. Should be called after initializing the  system. */ 
    TRACE_INIT ();
#endif 
   [...] 

8.3 uC/OS-II

SystemView可以用于Micrium公司的uC/OS-II,用来记录任务、中断和调度情况。SystemView支持uC/OS-II v2.92.13版本。
关于如何配置uC/OS-II以使用SystemView,请查看引导文章:< https://doc.micrium.com/display/osiidoc/SEGGER+SystemView>

*8.3.1 配置uC/OS-II

除了SYSTEMVIEW和RTT核心模块之外,还必须包括在应用程序项目中的以下文件:

SEGGER_SYSVIEW_Config_uCOSII.c 提供了SystemView所需的功能,并允许修改配置从而与目标系统相匹配,比如定义应用程序名称、目标设备和目标核心频率。SystemView包中的示例配置文件被配置为与大多数Cortex-M3、Cortex-M4和Cortex-M7目标一起使用。请参阅第56页的SystemView系统信息配置的例子。

SEGGER_SYSVIEW_uCOSII.c和os_trace_events.h提供uC/OS-III和SystemView之间的接口。它们通常不需要修改。

os_cfg_trace.h是SystemView实现uC/OS跟踪最小配置的需要的文件。如果项目已经包含该文件,请确保内容适合该应用程序。该文件包含两个定义,用于配置要管理的任务的最大数量和在SystemView记录中管理和命名的最大资源数。

#define TRACE_CFG_MAX_TASK 16u
#define TRACE_CFG_MAX_RESOURCES 16u

使能记录
可以在os_cfg.h中配置用于uC/OS-III的记录。
定义 OS_CFG_TRACE_EN 为 1,以使用基本的记录。
当 OS_CFG_TRACE_API_ENTER_EN 定义为1,API 函数调用也会被记录。
当 OS_CFG_TRACE_API_EXIT_EN 定义为1,API函数退出也会被记录。
在应用程序开始时,且系统已经初始化完成后,调用 TRACE_INIT() :

   [...] 
    BSP_Init (); /* Initialize BSP functions       */ 
    CPU_Init (); /* Initialize the uC/CPU services */
#if  (defined (OS_CFG_TRACE_EN) &&  (OS_CFG_TRACE_EN > 0u)) 
    /* Initialize uC/OS-III Trace. Should be called after initializing the  system. */ 
    TRACE_INIT ();
#endif 
   [...] 

8.4 Micrium OS 内核

SystemView可以用于Micrium公司的uC/OS-II,用来记录任务、中断和调度情况。

8.4.1 配置Micrium OS内核

除了SYSTEMVIEW和RTT核心模块之外,还必须包括在应用程序项目中的以下文件:

SEGGER_SYSVIEW_Config_MicriumOSKernel.c 提供了SystemView所需的功能,并允许修改配置从而与目标系统相匹配,比如定义应用程序名称、目标设备和目标核心频率。SystemView包中的示例配置文件被配置为与大多数Cortex-M3、Cortex-M4和Cortex-M7目标一起使用。请参阅第56页的SystemView系统信息配置的例子。

SEGGER_SYSVIEW_MicriumOSKernel.c和os_trace_events.h提供uC/OS-III和SystemView之间的接口。它们通常不需要修改。

os_cfg_trace.h是SystemView实现uC/OS跟踪最小配置的需要的文件。如果项目已经包含该文件,请确保内容适合该应用程序。该文件包含两个定义,用于配置要管理的任务的最大数量和在SystemView记录中管理和命名的最大资源数。

#define TRACE_CFG_MAX_TASK 16u
#define TRACE_CFG_MAX_RESOURCES 16u

使能记录
可以在os_cfg.h中配置用于uC/OS-III的记录。
定义 OS_CFG_TRACE_EN 为 1,以使用基本的记录。
当 OS_CFG_TRACE_API_ENTER_EN 定义为1,API 函数调用也会被记录。
当 OS_CFG_TRACE_API_EXIT_EN 定义为1,API函数退出也会被记录。
在应用程序开始时,且系统已经初始化完成后,调用 TRACE_INIT() :

   [...] 
    BSP_Init (); /* Initialize BSP functions       */ 
    CPU_Init (); /* Initialize the uC/CPU services */
#if  (defined (OS_CFG_TRACE_EN) &&  (OS_CFG_TRACE_EN > 0u)) 
    /* Initialize uC/OS-III Trace. Should be called after initializing the  system. */ 
    TRACE_INIT ();
#endif 
   [...] 

8.5 FreeRTOS

FreeRTOS可以为SystemView生成跟踪事件,并且而不需要修改就允许一些基本但有用的分析。
对于更详细的分析,如调度器活动和中断,FreeRTOS源码和使用的接口必须稍微修改。

8.5.1 配置FreeRTOS

除系统视图和RTT核心模块外,
SEGGER_SYSVIEW_Config_FreeRTOS.c需要包含在应用程序中。该文件为SystemView提供了额外的功能,并允许配置与目标系统相匹配,比如定义应用程序名称、目标设备和目标核心频率。请参阅第56页的SystemView系统信息配置的例子。
SEGGER_SYSVIEW_FreeRTOS.h头必须包含在FreeRTOSConfig.h文件的末尾。或者在每一个引用FreeRTOS.h头文件的上方引用这个文件。它定义了跟踪宏来创建SYSTEMVIEW事件。
为了得到最好的结果,FreeRTOSConfig.h中的 INCLUDE_xtaskgetidletaskhandle 和 INCLUDE_pxTaskGetStackStart 应该定义为1。
补丁文件Sample/FreeRTOSV8/Patch/FreeRTOSV8.2.3_Core.patch显示了FreeRTOS 8.2.3源码和GCC / ARM_CM4F端口所需的修改。当使用另一个版本FreeRTOS或其他FreeRTOS的接口时,它可以作为参考。也就是说,如果使用的是另一个接口,而不是使用GCC / ARM_CM4F,则需要相应地添加traceISR_ENTER()、traceISR_EXIT()和traceISR_EXIT_TO_SCHEDULER()调用。
补丁文件Sample/FreeRTOSV9/Patch/FreeRTOSV9_Core.patch是用于FreeRTOS V9版本的补丁。

8.6 其他操作系统

其他的OSes还没有正式的验证。
如果您想要在其他操作系统中使用SystemView,请与SEGGER或OS供应商联系。操作系统工具也可以在接下来的章节中完成。

8.7 无操作系统

SystemView可以用于无操作系统或者其他未验证的操作系统的情况,用来记录中断和用户事件。

8.7.1 配置应用程序

除了SYSTEMVIEW和RTT核心模块之外,
SEGGER_SYSVIEW_Config_NoOS.c需要包含在应用程序中。该文件提供了SystemView所需函数的基本配置,可以修改为适合系统。请参阅第56页的SystemView系统信息配置的例子。
可以在SEGGER_SYSVIEW_Init中传递一个额外的SEGGER_SYSVIEW_OS_API指针,以提供关于程序的系统时间或“任务”的信息。
有关如何在系统中记录中断的描述,请参阅第117页。

你可能感兴趣的:(segger)