|
在Freertos.h中包含头文件SEGGER_SYSVIEW_FreeRTOS.h后,
task.c里prvAddTaskToReadyList( pxNewTCB );就报错error: called object type’ void’ is. not a function or function pointer
我看了下宏定义
#define prvAddTaskToReadyList( pxTCB ) \
traceMOVED_TASK_TO_READY_STATE( pxTCB ) \
taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \
vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) )
#ifndef traceMOVED_TASK_TO_READY_STATE
#define traceMOVED_TASK_TO_READY_STATE( pxTCB )
#endif
这个应该是可以用户自定义函数吧
traceMOVED_TASK_TO_READY_STATE是在SEGGER_SYSVIEW_FreeRTOS.h里定义的
#define traceMOVED_TASK_TO_READY_STATE(pxTCB) SEGGER_SYSVIEW_OnTaskStartReady((U32)pxTCB)
void SEGGER_SYSVIEW_OnTaskStartReady(U32 TaskId) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + SEGGER_SYSVIEW_QUANTA_U32);
//
pPayload = pPayloadStart;
TaskId = SHRINK_ID(TaskId);
ENCODE_U32(pPayload, TaskId);
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_TASK_START_READY);
RECORD_END();
}
不明白怎么改,报错的意思是回调目标是个void不是函数或者函数指针吗,没明白意思
|
|