主题中讨论的其他器件:HALCOGEN、 SEGGER
大家好!
我将 FreeRTOS 用于由 HalCoGen 生成的 TI Hercules 项目、并想 使用 SEGGER SystemView 来调试我的项目。
将跟踪代码移植到内核时遇到问题。
例如、官方 Segger 补丁需要修改 TI 端口中不存在的 xPortSysTickHandler 函数。
diff -rupN org/FreeRTOS/portable/GCC/ARM_CM0/port.c new/FreeRTOS/portable/GCC/ARM_CM0/port.c --- org/FreeRTOS/portable/GCC/ARM_CM0/port.c 2020-12-15 19:54:26.000000000 +0100 +++ new/FreeRTOS/portable/GCC/ARM_CM0/port.c 2021-03-03 10:20:34.000000000 +0100 @@ -359,13 +359,19 @@ void xPortSysTickHandler( void ) uint32_t ulPreviousMask; ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR(); + traceISR_ENTER(); { /* Increment the RTOS tick. */ if( xTaskIncrementTick() != pdFALSE ) { + traceISR_EXIT_TO_SCHEDULER(); /* Pend a context switch. */ portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; } + else + { + traceISR_EXIT(); + } } portCLEAR_INTERRUPT_MASK_FROM_ISR( ulPreviousMask ); }
我们还需要定义 SEGGER_SysView_X_GetInterruptId ()函数。
不知道如何获得 IRQ 中断号吗?
有没有关于将 FreeRTOS 的 TI 端口与 SystemView 配合使用的指南?
如何移植 TI 内核以使用 SystemView?
此致、
加布里埃尔