主题中讨论的其他器件: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?
此致、
加布里埃尔



