GorgonMeducer perf_counter 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 https://raw.githubusercontent.com/GorgonMeducer/perf_counter/CMSIS-Pack/cmsis-pack/ https://github.com/GorgonMeducer/perf_counter/issues lib/LICENSE https://github.com/GorgonMeducer/perf_counter.git - Fix the source variant support for Armv8-M processors - Other minor fixes - Fix the support for RT-Thread - Improve the way to import systick wrapper - Add get_system_us to avoid 64bit integer divider. - Minor Update - Improve delay accuracy - Fix RT-Thread stack-fully-used issue - introduce macro __PERF_COUNTER_CFG_USE_SYSTICK_WRAPPER__ - Add RT-Thread Package - Add new API update_perf_counter() for notifying perf_counter that SystemCoreClock has been updated - Add a macro __perf_counter_printf__ to retarget printf - Add a macor __PERF_COUNT_PLATFORM_SPECIFIC_HEADER__ for people to insert a platform specific header file. - Add Doxygen - Other minor changes - Add support for Cortex-M85, Star-MC1 and all other Armv8.1-M processors - Update Readme - Mitigate some clang warnings - Minor update for RTOS support - Fix CONNECT macro cannot connect two parameters issue. - Add UNUSED_PARAM - Add support for C++ env - Other minor updates - Add API get_system_ms() to avoid int64_t divide operation. - Add API delay_ms() - 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. - Fix a bug found in __cycleof__. The __cycle_counter__ was not updated with the measure result. - Add macros for version info. Cortex-M SysTick Performance Analaysis Arm Compiler 5 (armcc) or Arm Compiler 6 (armclang). GNU Tools for Arm Embedded Processors. Support All Cortex-M based processors Require CMSIS-CORE Support Require RTX5 Support Require FreeRTOS Support Require Perf_Counter Core Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. Compile Cortex-M Processors with GNU Tools for Arm Embedded Processors. A dedicated performance counter for Cortex-M systick. documents/Doxygen/html/index.html A dedicated performance counter for Cortex-M systick. #define __PERF_COUNTER__ #define __PERF_COUNTER_CFG_USE_SYSTICK_WRAPPER__ A dedicated performance counter for Cortex-M systick. #define __PERF_COUNTER__ #define __PERF_COUNTER_CFG_USE_SYSTICK_WRAPPER__ A Patch for RTX5 //! \brief Enable RTOS Patch for perf_counter #define __PERF_CNT_USE_RTOS__ A Patch for FreeRTOS //! \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) A Patch for RT-Thread //! \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)) A Patch for ThreadX //! \brief Enable RTOS Patch for perf_counter #define __PERF_CNT_USE_RTOS__ #define TX_ENABLE_EXECUTION_CHANGE_NOTIFY