Building ATmega323/WinAVR port troubles

azimir wrote on Thursday, May 22, 2008:

I am attempting to build the ATmega323 port in WinAVR (gcc version 4.3.0 (WinAVR 20080512)) from the 4.8.0 release of FreeRTOS.

I have applied the fix listed from the forum to fix the signed-ness interface definitions:
https://sourceforge.net/forum/message.php?msg_id=4877178

After I rebuild I get this output (and the same kinds of errors for a number of files):
Compiling: main.c
avr-gcc -c -mmcu=atmega323 -I. -D GCC_MEGA_AVR -I. -I…/…/Source/include -I…/Common/include -g -Os -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wunused -Wa,-adhlns=main.lst  -std=gnu99 main.c -o main.o
main.c: In function ‘main’:
main.c:193: warning: pointer targets in passing argument 2 of ‘xTaskCreate’ differ in signedness
main.c: At top level:
…/…/Source/include/task.h:973: warning: inline function ‘vTaskSwitchContext’ declared but never defined
…/…/Source/include/task.h:910: warning: inline function ‘vTaskIncrementTick’ declared but never defined
…/…/Source/include/task.h:973: warning: inline function ‘vTaskSwitchContext’ declared but never defined
…/…/Source/include/task.h:910: warning: inline function ‘vTaskIncrementTick’ declared but never defined

-------------------

Having searched through a good portion of the sources and ports, it looks like vTaskSwitchContext and vTaskIncrementTick are to be implemented by the port, but I’m having trouble tracking down where it should be.

Has anyone seen this before?

Thank you for your time.

woops_ wrote on Thursday, May 22, 2008:

Look at the bottom of the page http://www.freertos.org/a00104.html under known issues. Did you take that into account.

azimir wrote on Thursday, May 22, 2008:

This is what I love about OSS.  When I’m being boneheaded, someone quickly calls my attention to it!

Thank you for the quick and accurate response, woops_.  I should have caught that in my digging.

Adding the "#define inline" statement to the config file did the trick.

Problem resolved.

jmr1972 wrote on Thursday, May 22, 2008:

Hi,
the warning about signedness of argument 2 can be resolved with an explicit type cast such as:
xTaskCreate( vMyTask, ( signed portCHAR * )"MyTask", mytaskSTACK_SIZE, NULL, mytask_TASK_PRIORITY, NULL );

As for the inline statements just follow instructions on the web http://www.freertos.org/a00104.html