For CMSIS function calls, ARM officially provides stm32 examples, and it seems that there is no problem when stm32 calls CMSIS. Problem Source: see iar technical article Using CoreSight Trace Techniques on Cortex-M3/M4, I feel good, one by one practices on kinetis, found Example 5: the functions described in Printf via SWO cannot be implemented. Problem Analysis: The function ITM_SendChar () cannot be called. The function is defined in the core_CM4.h Header File. In the ARM official CMSIS description, the Header File should be in the Device Header File <device. h>. h does not include this header file. I don't know why fiskar does not support cmsis. Solution: add the following code according to the description of CMSIS: [cpp] // cmsis # define _ CM4_REV 0x0001/* Core revision r0p1 */# define _ MPU_PRESENT 0/* MPU present or not */# define _ NVIC_PRIO_BITS 3/* Number of Bits used for Priority Levels */# define _ Vendor_SysTickConfig 0/* Set to 1 if different guest ick Config is used */# define _ FPU_PRESENT 0/* FPU present or not */typedef enum IRQn {/***** Cortex-M4 Processor Exceptions Numbers *************************************** * *********** // * ToDo: use this Cortex interrupt numbers if your device is a CORTEX-M3/Cortex-M4 device */NonMaskableInt_IRQn =-14 ,/*! <2 Non Maskable Interrupt */MemoryManagement_IRQn =-12 ,/*! <4 Memory Management Interrupt */BusFault_IRQn =-11 ,/*! <5 Bus Fault Interrupt */UsageFault_IRQn =-10 ,/*! <6 Usage Fault Interrupt */SVCall_IRQn =-5 ,/*! <11 SV Call Interrupt */DebugMonitor_IRQn =-4 ,/*! <12 Debug Monitor Interrupt */PendSV_IRQn =-2 ,/*! <14 Pend SV Interrupt */SysTick_IRQn =-1 ,/*! <15 System Tick Interrupt * // ******* Device Specific Interrupt Numbers ********************** * ToDo: add here your device specific external interrupt numbers according the interrupt handlers defined in startup_Device.s eg.: Interrupt for Timer #1 timereirqhandler-> timereirqn */} IRQn_Type;/* ToDo: include the correct core_cm #. h file core_cm0.h if your device is a CORTEX-M0 device core_cm3.h if your device is a CORTEX-M3 device core_cm4.h if your device is a CORTEX-M4 device */# include <core_cm4.h>/* Cortex-M # processor and core peripherals * // * ToDo: include your system _ <Device>. h file replace '<Device>' with your device name * // cmsis running effect: