FreeRTOS-CLI

tlafleur wrote on Saturday, April 26, 2014:

FYI…
CLI Ver 1.03
Microchip XC32-1.31 give these warning …

    make[2]: Entering directory `/Users/lafleur/Desktop/Winmor TNC Project/FreeRTOSV7.6.0-MZSerial    /FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X'
    ../taskCLI.c:61:5: warning: initialization from incompatible pointer type
    ../taskCLI.c:83:5: warning: initialization from incompatible pointer type
    ../taskCLI.c:90:5: warning: initialization from incompatible pointer type
    ../taskCLI.c:97:5: warning: initialization from incompatible pointer type
    ../taskCLI.c: In function 'taskCLI':
    ../taskCLI.c:219:13: warning: pointer targets in passing argument 1 of   'FreeRTOS_CLIProcessCommand' differ in signedness
    ../FreeRTOS_CLI.h:85:15: note: expected 'const char * const' but argument is of type 'signed char *'
    ../taskCLI.c:219:13: warning: pointer targets in passing argument 2 of 'FreeRTOS_CLIProcessCommand' differ in signedness
    ../FreeRTOS_CLI.h:85:15: note: expected 'char *' but argument is of type 'signed char *'

rtel wrote on Saturday, April 26, 2014:

taskCLI.c is not a FreeRTOS file, so I guess it is your file, and I also guess that you are casting strings to “signed char *” where as V1.03 does not require the ‘signed’ any more.

I can’t quite remember, but in FreeRTOS itself rather than +CLI the coding standard rule stating char types must be qualified as either signed or unsigned was relaxed when the char was used to point to a character string. This makes the code simpler and neater, and also is inline with ‘MISRA thinking’.

I think if you just edit your code to take the ‘signed’ away it will be fine.

Regards.

tlafleur wrote on Saturday, April 26, 2014:

Thanks…

solve the problem

tlafleur wrote on Saturday, April 26, 2014:

Thanks… That fixed the later warning, by not the initialization from
incompatible pointer type…

xCommandLineInput is a FreeRTOS function…

static const xCommandLineInput xTaskTasksCommand = {
“task”,
“task: Displays a table of task state information\r\n”,
prvTaskTasksCommand,
0
};

static const xCommandLineInput xTaskStatsCommand = {
“stat”,
“stat: Displays a table of task run time information\r\n”,
prvTaskStatsCommand,
0
};

static const xCommandLineInput xCmd1Command = {
“cmd1”,
“cmd1: Command 1\r\n”,
prvCmd1Command,
0
};

static const xCommandLineInput xCmd2Command = {
“cmd2”,
“cmd2: Command 2\r\n”,
prvCmd2Command,
1
};

…/taskCLI.c:61:5: warning: initialization from incompatible pointer type
…/taskCLI.c:83:5: warning: initialization from incompatible pointer type
…/taskCLI.c:90:5: warning: initialization from incompatible pointer type
…/taskCLI.c:97:5: warning: initialization from incompatible pointer type

tlafleur wrote on Saturday, April 26, 2014:

Thanks, I found the error…

needed to add (const pdCOMMAND_LINE_CALLBACK) to each command call back

rtel wrote on Saturday, April 26, 2014:

I think the posts in the forum might have appeared in the wrong order but I’m not sure - the last one says you have fixed the problem but its time stamp is prior to the post before which says you still have problems.

If you are still getting the warnings then which of the four parameters is it referring to. In other words, which lines are lines 61, 83, 90 and 97?

Regards.

tlafleur wrote on Saturday, April 26, 2014:

all solved…

thanks