mirror of
https://github.com/GorgonMeducer/perf_counter.git
synced 2025-01-17 19:13:03 +08:00
253 lines
10 KiB
XML
253 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<package schemaVersion="1.4" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd">
|
|
<vendor>GorgonMeducer</vendor>
|
|
<name>perf_counter</name>
|
|
<description>A dedicated performance counter for the Cortex-M Systick. It shares the SysTick with users' original SysTick function without interfering with it. This library will bring new functionalities, such as performance counter, delay_us and clock() service defined in time.h</description>
|
|
<url>https://raw.githubusercontent.com/GorgonMeducer/perf_counter/CMSIS-Pack/cmsis-pack/</url>
|
|
<supportContact>https://github.com/GorgonMeducer/perf_counter/issues</supportContact>
|
|
<license>lib/LICENSE</license>
|
|
<!-- optional license file -->
|
|
<!--
|
|
<license>
|
|
</license>
|
|
-->
|
|
|
|
<repository type="git">https://github.com/GorgonMeducer/perf_counter.git</repository>
|
|
|
|
<releases>
|
|
<release date="2022-01-29" version="1.9.1" url="https://raw.githubusercontent.com/GorgonMeducer/perf_counter/CMSIS-Pack/cmsis-pack/GorgonMeducer.perf_counter.1.9.1.pack">
|
|
- Add preprocessing in perf_counter.h to detect whether GNU extension is enabled or not.
|
|
- Enhance RTOS support
|
|
- Add macro __PERF_COUNTER__ in RTE_Components.h for compile-time detection.
|
|
</release>
|
|
<release date="2022-01-29" version="1.8.2" url="https://github.com/GorgonMeducer/perf_counter/raw/1607c021f50d0305394870ca34b5412d949aaa4f/cmsis-pack/GorgonMeducer.perf_counter.1.8.2.pack">
|
|
- Fix a bug found in __cycleof__. The __cycle_counter__ was not updated with the measure result.
|
|
- Add macros for version info.
|
|
</release>
|
|
|
|
</releases>
|
|
|
|
<keywords>
|
|
<!-- keywords for indexing -->
|
|
<keyword>Cortex-M</keyword>
|
|
<keyword>SysTick</keyword>
|
|
<keyword>Performance Analaysis</keyword>
|
|
</keywords>
|
|
|
|
<conditions>
|
|
<condition id="Arm Compiler">
|
|
<description>Arm Compiler 5 (armcc) or Arm Compiler 6 (armclang).</description>
|
|
<accept Tcompiler="ARMCC" Toptions="AC6"/>
|
|
<accept Tcompiler="ARMCC" Toptions="AC6LTO"/>
|
|
<accept Tcompiler="ARMCC" Toptions="AC5"/>
|
|
</condition>
|
|
<condition id="Arm GCC">
|
|
<description>GNU Tools for Arm Embedded Processors.</description>
|
|
<accept Tcompiler="GCC"/>
|
|
</condition>
|
|
<condition id="Cortex-M Processors">
|
|
<description>Support All Cortex-M based processors</description>
|
|
<accept Dcore="Cortex-M0"/>
|
|
<accept Dcore="Cortex-M0+"/>
|
|
<accept Dcore="Cortex-M1"/>
|
|
<accept Dcore="Cortex-M3"/>
|
|
<accept Dcore="Cortex-M4"/>
|
|
<accept Dcore="Cortex-M7"/>
|
|
<accept Dcore="Cortex-M23"/>
|
|
<accept Dcore="Cortex-M33"/>
|
|
<accept Dcore="Cortex-M35P"/>
|
|
<accept Dcore="Cortex-M55"/>
|
|
<accept Dcore="SC000"/>
|
|
<accept Dcore="SC300"/>
|
|
<accept Dcore="ARMV8MBL"/>
|
|
<accept Dcore="ARMV8MML"/>
|
|
</condition>
|
|
|
|
<condition id="CMSIS-CORE">
|
|
<description>Require CMSIS-CORE Support</description>
|
|
<require Cclass="CMSIS" Cgroup="CORE"/>
|
|
</condition>
|
|
|
|
<condition id="RTX5 Patch">
|
|
<description>Require RTX5 Support</description>
|
|
<accept Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source"/>
|
|
<require Cclass="Utilities" Cgroup="perf_counter" Csub="Core"/>
|
|
</condition>
|
|
|
|
<condition id="FreeRTOS Patch">
|
|
<description>Require FreeRTOS Support</description>
|
|
<accept Cbundle="FreeRTOS" Cclass="RTOS" Cgroup="Core"/>
|
|
<require Cclass="Utilities" Cgroup="perf_counter" Csub="Core"/>
|
|
</condition>
|
|
|
|
<condition id="perf_counter">
|
|
<description>Require Perf_Counter Core</description>
|
|
<require Cclass="Utilities" Cgroup="perf_counter" Csub="Core"/>
|
|
</condition>
|
|
|
|
<condition id="Cortex-M Arm GCC">
|
|
<description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
|
|
<require condition="Arm GCC"/>
|
|
<require condition="Cortex-M Processors"/>
|
|
</condition>
|
|
<condition id="Cortex-M Arm Compiler">
|
|
<description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
|
|
<require condition="Arm Compiler"/>
|
|
<require condition="Cortex-M Processors"/>
|
|
</condition>
|
|
|
|
<condition id="Cortex-M Arm GCC CMSIS-CORE">
|
|
<description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
|
|
<require condition="Arm GCC"/>
|
|
<require condition="Cortex-M Processors"/>
|
|
<require condition="CMSIS-CORE"/>
|
|
</condition>
|
|
<condition id="Cortex-M Arm Compiler CMSIS-CORE">
|
|
<description>Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors.</description>
|
|
<require condition="Arm Compiler"/>
|
|
<require condition="Cortex-M Processors"/>
|
|
<require condition="CMSIS-CORE"/>
|
|
</condition>
|
|
|
|
|
|
</conditions>
|
|
<!-- apis section (optional - for Application Programming Interface descriptions) -->
|
|
<!--
|
|
<apis>
|
|
</apis>
|
|
-->
|
|
|
|
<!-- boards section (mandatory for Board Support Packs) -->
|
|
<!--
|
|
<boards>
|
|
</boards>
|
|
-->
|
|
|
|
<!-- devices section (mandatory for Device Family Packs) -->
|
|
<!--
|
|
<devices>
|
|
</devices>
|
|
-->
|
|
|
|
<!-- examples section (optional for all Software Packs)-->
|
|
<!--
|
|
<examples>
|
|
</examples>
|
|
-->
|
|
|
|
<!-- conditions section (optional for all Software Packs)-->
|
|
<!--
|
|
<conditions>
|
|
</conditions>
|
|
-->
|
|
|
|
<components>
|
|
<bundle Cbundle="Performance Counter" Cclass="Utilities" Cversion="1.9.1">
|
|
<description>A dedicated performance counter for Cortex-M systick.</description>
|
|
<doc></doc>
|
|
<component Cgroup="perf_counter" Csub="Core" Cvariant="Library" isDefaultVariant="true" condition="CMSIS-CORE">
|
|
<description>A dedicated performance counter for Cortex-M systick.</description>
|
|
<files>
|
|
<file category="header" name="lib/perf_counter.h"/>
|
|
<file category="library" name="lib/perf_counter.lib" condition="Cortex-M Arm Compiler"/>
|
|
<file category="library" name="lib/libperf_counter_gcc.a" condition="Cortex-M Arm GCC"/>
|
|
</files>
|
|
<RTE_Components_h>
|
|
|
|
#define __PERF_COUNTER__
|
|
</RTE_Components_h>
|
|
</component>
|
|
|
|
<component Cgroup="perf_counter" Csub="Core" Cvariant="Source" condition="CMSIS-CORE">
|
|
<description>A dedicated performance counter for Cortex-M systick.</description>
|
|
<files>
|
|
<file category="header" name="lib/perf_counter.h"/>
|
|
<file category="source" name="perf_counter.c" />
|
|
<file category="source" name="systick_wrapper_ual.s" condition="Cortex-M Arm Compiler CMSIS-CORE"/>
|
|
<file category="source" name="systick_wrapper_gcc.s" condition="Cortex-M Arm GCC CMSIS-CORE"/>
|
|
</files>
|
|
<RTE_Components_h>
|
|
|
|
#define __PERF_COUNTER__
|
|
</RTE_Components_h>
|
|
</component>
|
|
|
|
<component Cgroup="perf_counter" Csub="RTX5 Patch" condition="RTX5 Patch">
|
|
<description>A Patch for RTX5</description>
|
|
<files>
|
|
<file category="source" name="lib/perf_os_patch_rtx5.c"/>
|
|
</files>
|
|
<Pre_Include_Global_h>
|
|
|
|
//! \brief Enable RTOS Patch for perf_counter
|
|
#define __PERF_CNT_USE_RTOS__
|
|
</Pre_Include_Global_h>
|
|
</component>
|
|
|
|
<component Cgroup="perf_counter" Csub="FreeRTOS Patch" condition="perf_counter">
|
|
<description>A Patch for FreeRTOS</description>
|
|
<files>
|
|
<file category="source" name="lib/perf_os_patch_freertos.c"/>
|
|
</files>
|
|
<Pre_Include_Global_h>
|
|
//! \brief Enable RTOS Patch for perf_counter
|
|
#define __PERF_CNT_USE_RTOS__
|
|
|
|
#define traceTASK_SWITCHED_OUT_DISABLE
|
|
#define traceTASK_SWITCHED_IN_DISABLE
|
|
|
|
extern void __freertos_evr_on_task_switched_out (void *ptTCB);
|
|
extern void __freertos_evr_on_task_switched_in(void *ptTCB, unsigned int uxTopPriority) ;
|
|
|
|
# define traceTASK_SWITCHED_OUT() \
|
|
__freertos_evr_on_task_switched_out(pxCurrentTCB)
|
|
# define traceTASK_SWITCHED_IN() \
|
|
__freertos_evr_on_task_switched_in(pxCurrentTCB, uxTopReadyPriority)
|
|
|
|
</Pre_Include_Global_h>
|
|
</component>
|
|
|
|
<component Cgroup="perf_counter" Csub="RT-Thread Patch" condition="perf_counter">
|
|
<description>A Patch for RT-Thread</description>
|
|
<files>
|
|
<file category="source" name="lib/perf_os_patch_rt_thread.c"/>
|
|
</files>
|
|
<Pre_Include_Global_h>
|
|
|
|
//! \brief Enable RTOS Patch for perf_counter
|
|
#define __PERF_CNT_USE_RTOS__
|
|
|
|
struct rt_thread;
|
|
extern void __rt_thread_scheduler_hook(struct rt_thread *from, struct rt_thread *to);
|
|
|
|
#define __on_rt_scheduler_hook(from, to) __rt_thread_scheduler_hook((from), (to))
|
|
|
|
</Pre_Include_Global_h>
|
|
</component>
|
|
|
|
<component Cgroup="perf_counter" Csub="ThreadX Patch" condition="perf_counter">
|
|
<description>A Patch for ThreadX</description>
|
|
<files>
|
|
<file category="source" name="lib/perf_os_patch_threadx.c"/>
|
|
</files>
|
|
<Pre_Include_Global_h>
|
|
//! \brief Enable RTOS Patch for perf_counter
|
|
#define __PERF_CNT_USE_RTOS__
|
|
|
|
#define TX_ENABLE_EXECUTION_CHANGE_NOTIFY
|
|
|
|
</Pre_Include_Global_h>
|
|
</component>
|
|
|
|
</bundle>
|
|
</components>
|
|
|
|
<!-- optional taxonomy section for defining new component Class and Group names -->
|
|
<!--
|
|
<taxonomy>
|
|
</taxonomy>
|
|
-->
|
|
|
|
</package>
|