I'm using KDS 3.0 with KSDK 1.2 and MQX built with IAR.
I want to poll the stdin port to see if a character has been received so I can process code in a loop until the user presses a key in the console. I am using the shell to launch the code hence why I'm using stdin rather than other methods to access the ports.
So far the only way I can find to do this is to modify the nio_tty.c file so the nio_tty_ioctll function supports IO_IOCTL_CHAR_AVAIL as follows:
case IOCTL_ABORT:
retval = _nio_vioctl(devc->fd, error, IOCTL_ABORT, ap);
break;
//Added support for checking if characters are available
case IO_IOCTL_CHAR_AVAIL:
retval = _nio_vioctl(devc->fd, error, IO_IOCTL_CHAR_AVAIL, ap);
break;
Then in my code I can use:
if ((_nio_ioctl( stdin->_FD, &err, IO_IOCTL_CHAR_AVAIL, &cnt ) == 0) && (cnt > 0) && (fgetc( stdin ) == 27 ))
{
break;
}
Have I missed another currently supported method or can this be added to the KSDK / MQX by freescale in the next update?
Best regards,
Adrian.