Hi,
I Think that a found a bug in the file serl_int.c in:
C:\Program Files\Freescale\Freescale MQX 3.3\mqx\source\io\serial\int
in line 226/227 is write:
226: int_io_dev_ptr->FLAGS = (_mqx_uint)flags;
227: fd_ptr->FLAGS = (_mqx_uint)flags;
But, it's incorrect because "flags" its a pointer to char and not a unsigned int. The correct is:
226: int_io_dev_ptr->FLAGS = (_mqx_uint)(*flags);
227: fd_ptr->FLAGS = (_mqx_uint)(*flags);
The code is correct, there is no bug. The parameter passed to the open is a combination of flags resulting to 32-bit number, which is for sure not pointer. The function takes indeed pointer param, but it is for API, compatibility with installing a driver.