RX62N Port - Illegal expression

faz99 wrote on Thursday, August 29, 2013:

I am using the FreeRTOS port for the Renesas RX62N Microcontroller,
FreeRTOS V7.4.2
compiler = Renesas RX Family V.1.02.01.000
IDE = HEW4 V4.09.00.007
HW = Renesas Development Kit YRDKRX62N

I have built the Blinky project and I am getting the following errors.

Phase: RX C/C++ Compiler, File: RX C/C++ Compiler, dependency scan error
c:\workspace\backup of freertos qac test\demo\rx600_rx62n-rdk_renesas\rtosdemo\stackmacros.h(112) :  DC307 (F) Illegal expression
Phase: RX C/C++ Compiler, File: RX C/C++ Compiler, dependency scan error
c:\workspace\backup of freertos qac test\demo\rx600_rx62n-rdk_renesas\rtosdemo\port.c(337) :  DC306 (F) Syntax error
Phase: RX C/C++ Compiler, File: RX C/C++ Compiler, dependency scan error
c:\workspace\backup of freertos qac test\demo\rx600_rx62n-rdk_renesas\rtosdemo\stackmacros.h(112) :  DC307 (F) Illegal expression
Building - RTOSDemo - Blinky

Any idea on what is causing these errors?SOMETHING HERE

rtel wrote on Thursday, August 29, 2013:

Yes - the dependency scanner is eccentric.  By default it ignores the preprocessor directives and tries to includes files from all the FreeRTOS ports.  You can ignore these warnings (I think the documentation page for the official demo says as much) because they are not compile or linker errors - you should find the code compiles and links without any problems. 

Also, if you dig deep enough into the IDE options you will find an option that requests the dependency scanner includes processing of the pre-processor directives, selecting that option makes it much quieter.

Regards.

faz99 wrote on Friday, August 30, 2013:

Hi Richard

In your reply are you refering to when an #include is made within a #ifdef of #ifndef statement, i.e. as in portable.h
I have temporarily modified code so no header files are included in this way. However I still get the errors.

The first error (DC306), seems to be associated with the following lines in port.c

MVTIPL #configMAX_SYSCALL_INTERRUPT_PRIORITY
MVTIPL #configKERNEL_INTERRUPT_PRIORITY

rtel wrote on Friday, August 30, 2013:

In future it would be helpful if you could post the error text, rather than just the error number, so I don’t have to look it up.  In this case it appears to just be “syntax error”.

Can you post the definitions of configMAX_SYSCALL_INTERRUPT_PRIORITY and configKERNEL_INTERRUPT_PRIORITY.  They should be in FreeRTOSConfig.h.

Which compiler version are you using?

Regards.

faz99 wrote on Monday, September 02, 2013:

Hi Richard

#define configKERNEL_INTERRUPT_PRIORITY         1
#define configMAX_SYSCALL_INTERRUPT_PRIORITY    4

compiler = Renesas RX Family V.1.02.01.000

rtel wrote on Monday, September 02, 2013:

I am using the same compiler version.  This is the output I get when I build the HEW project located in FreeRTOS/Demo/RX600_RX62N-RDK_Renesas (unmodified, so with the same configKERNEL_INTERRUPT_PRIORITY and configMAX_SYSCALL_INTERRUPT_PRIORITY settings as you:

Phase RX C/C++ Library Generator starting
Phase RX C/C++ Library Generator finished

Phase RX C/C++ Compiler starting
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\BlockQ.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\GenQTest.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\IntQueue.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\PollQ.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\QPeek.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\blocktim.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\death.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\flash.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\flop.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\integer.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\recmutex.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\Minimal\semtest.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\apps\httpd\http-strings.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd-fs.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\apps\httpd\httpd.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\psock.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\timer.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\uip.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\Common\ethernet\FreeTCPIP\uip_arp.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\IntQueueTimer.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\ParTest.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\intprg.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\main-full.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\uIP_Task.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\webserver\EMAC.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\webserver\httpd-cgi.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\webserver\phy.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\list.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\portable\MemMang\heap_2.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\portable\Renesas\RX600\port.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\queue.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\tasks.c
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\timers.c
Phase RX C/C++ Compiler finished

Phase RX Assembler starting
C:\temp\752\FreeRTOSV7.5.2\FreeRTOS\Source\portable\Renesas\RX600\port_asm.src
Phase RX Assembler finished

Phase OptLinker starting
Phase OptLinker finished

Build Finished
0 Errors, 0 Warnings

Regards.

faz99 wrote on Monday, September 02, 2013:

The DC306 syntax error, is displayed for the “Blinky” build.
I think the output you have shown is for the “Debug” build, if possible can you try again using the “Blinky” build

Note: Blinky build also throws up a L3100 (F) Section address overflow out of range : “L” but this can be rectified by adding the “L” section using the RX standard toolchain.

Best Regards

rtel wrote on Monday, September 02, 2013:

Note: Blinky build also throws up a L3100 (F) Section address overflow out of range : “L” but this can be rectified by adding the “L” section using the RX standard toolchain.

Confirm I can replicate that, and fixed it by adding in the L* section.  I then get:

Phase OptLinker starting
L2201 (E) Illegal library file : “C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX600_RX62N-RDK_Renesas\RTOSDemo\Blinky\RTOSDemo.lib”
Optimizing Linkage Editor Abort

Going to the options dialogue, standard library tab, standard library category, and selecting “match.h” in the category window (so the selections match those used by the debug build configuration) fixed that.

After that my output from the build is as per my previous post.

Regards.