硬汉嵌入式论坛

 找回密码
 立即注册
查看: 527|回复: 3
收起左侧

[FreeRTOS] 求助,我想将systemview移入freertos,遇到问题了

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2025-2-28 17:34:23 | 显示全部楼层 |阅读模式
在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不是函数或者函数指针吗,没明白意思
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-3-1 06:04:52 | 显示全部楼层
帮顶,没研究过SystemView
回复

使用道具 举报

2

主题

66

回帖

72

积分

初级会员

积分
72
发表于 2025-3-14 15:40:14 | 显示全部楼层
如果你用的是FreeRTOS v11之前的版本,需要对kernel和ports里面的几个文件稍作修改。
SystemView的Src\Sample目录下有针对不同版本FreeRTOS的patch,不过这些patch很可能因为目录结构不同等原因,不能直接打。建议研究一下patch的内容之后,手动修改。

具体参考:
https://kb.segger.com/FreeRTOS_with_SystemView
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-3-17 16:17:32 | 显示全部楼层
qinfeng173 发表于 2025-3-14 15:40
如果你用的是FreeRTOS v11之前的版本,需要对kernel和ports里面的几个文件稍作修改。
SystemView的Src\Sam ...

对,我工作用的是V8,很老的一个版本,我之后按你说的再测试下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 00:46 , Processed in 0.268626 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表