MQX 4.2 C++ RTCS

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MQX 4.2 C++ RTCS

1,221 Views
Mike_d
Contributor IV

Hello,

I cannot build an MQX 4.2 C++ project in CW 10.6.4 if I include rtcs.  Using the project wizard I create a basic application/cplus project, confirm it runs then add rtcs to the project.  I get the following errors:

C:/Freescale/Freescale_MQX_4_2/lib/frdmk64f.cw10gcc/debug/rtcs/rtcs_sock.h:626:39: error: expected ',' or '...' before 'readfds'
C:/Freescale/Freescale_MQX_4_2/lib/frdmk64f.cw10gcc/debug/rtcs/rtcs_sock.h:636:37: error: expected ',' or '...' before 'option_value'

Regards,

-Mike

0 Kudos
6 Replies

676 Views
igorshakirov
Contributor II

Add  "--restrict" to compiler misc control.

See ARM Information Center 

0 Kudos

676 Views
diego_augustus
Contributor II

Hi Michael, did you solve the problem?

I'm with exactly the same problem.

C:/Freescale/Freescale_MQX_4_2/lib/frdmk64f.cw10gcc/debug/rtcs/rtcs_sock.h:626:39: error: expected ',' or '...' before 'readfds'
C:/Freescale/Freescale_MQX_4_2/lib/frdmk64f.cw10gcc/debug/rtcs/rtcs_sock.h:636:37: error: expected ',' or '...' before 'option_value'

I tried all the things above and didn't solve the compiler error.

I'm developing a custom board and a custom project derived from MQX 4.2 and cplus example.

I'm using CW 10.6.

Regards,

Diego

0 Kudos

676 Views
diego_augustus
Contributor II

I solved the problem.

The problem is the "restrict" keyword in the declaration of the functions select() and getsockopt() in the rtcs_sock.h file.

I suppose that is any incompatibility between the "restrict" keyword and the C++ compiler.

So, I just remove the keyword and it works.

676 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi Michael:

Please refer to the following document for creating a new MQX project using GCC C++

https://community.nxp.com/docs/DOC-101405 

Regards

Daniel

676 Views
Mike_d
Contributor IV

Hi Daniel,

I'm getting compile errors with rtcs because MQX_SUPPRESS_STDIO_MACROS = 1 excludes this list below.  I use these functions as well in my application so I'm wondering how will I be able to use them now.  I'm trying to create an application with both c and c++ code.

#if !defined(MQX_SUPPRESS_STDIO_MACROS) || MQX_SUPPRESS_STDIO_MACROS == 0
#define clearerr _io_clearerr
#define fclose _io_fclose
#define feof _io_feof
#define ferror _io_ferror
#define fflush _io_fflush
#define fgetc _io_fgetc
#define fgetline _io_fgetline
#define fgets _io_fgets
#define fopen _io_fopen
#define fprintf _io_fprintf
#define fputc _io_fputc
#define fputs _io_fputs
#define fscanf _io_fscanf
#define fseek _io_fseek
#define fstatus _io_fstatus
#define ftell _io_ftell
#define fungetc _io_fungetc
#define ioctl _io_ioctl
#define printf _io_printf
#define putc _io_fputc
#define read _io_read
#define scanf _io_scanf
#define sprintf _io_sprintf
#define snprintf _io_snprintf
#define sscanf _io_sscanf
#define vprintf _io_vprintf
#define vfprintf _io_vfprintf
#define vsprintf _io_vsprintf
#define vsnprintf _io_vsnprintf
#define write _io_write
/* fread and fwrite do not read/write chars but objects */
#define fread(ptr,so,no,f) (_io_read(f,ptr,(so)*(no))/(so))
#define fwrite(ptr,so,no,f) (_io_write(f,ptr,(so)*(no))/(so))
#endif

0 Kudos

676 Views
Mike_d
Contributor IV

Hi Daniel,

This procedure worked but only if I use the "ARM_GCC_Support" folder and not the "ARM_EABI_Support" as mentioned in the document.

Regards,

-Mike

0 Kudos