FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [May 2010 Threads] Retrieving task names from TCBPosted by Alex Lennon on May 28, 2010 Hi there,
I'm using FreeRTOS with an ATMega1280 based project. I'm trying to optimise heap and stack usage as the device is fairly memory constrained.
So I'm making use of uxTaskGetStackHighWaterMark(xTaskHandle). I don't really want to use more RAM to store the task names, but it would be helpful to log the names rather than the handle IDs. The names are in the TCB of course but I can't see a function to retrieve them.
Could somebody point me to a function, if it exists, or is there an architectural reason that one couldn't/shouldn't be added?
Thanks,
Alex
RE: Retrieving task names from TCBPosted by Dave on May 28, 2010 The handle ID is a pointer to the task control block, in which the name is stored. You could add a function to tasks.c like char *pcGetTaskName(void *handle) { return ((tskTCB*)handle)->pcTaskName; }
I have not actually tested this code, but you see the idea.
RE: Retrieving task names from TCBPosted by Alex Lennon on May 28, 2010 Hi Dave,
Thanks for the response.
I had put something similar in place, but using (const char *) for the return.
My question was more to do with why the there are no accessor functions in place already in FreeRTOS as this seems a sensible idea. I wondered if there is an architectural reason not to expose fields of the TCBs in this way...
Alex
RE: Retrieving task names from TCBPosted by Richard on May 28, 2010 All the kernel data structures use data hiding in this way. Inside the files that define the structures the structure members are fully visible. Outside the files the structures are defined as void* to keep their members hidden - and access can only be obtained through access functions.
There is no particular reason why a function to return the name has never been included. I have added it to the todo list so it will be there in the next release.
Regards.
RE: Retrieving task names from TCBPosted by Alex Lennon on May 29, 2010
Thanks!
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|