trouble with application programe of serial port (use bsp of pc386)
Joel Sherrill
joel.sherrill at OARcorp.com
Thu Feb 16 15:53:49 UTC 2012
On 02/16/2012 09:43 AM, zhoupeng wrote:
> Excuse me.
> I will add a brief postscript to my question ,can i use
> rtems_io_open() ...directly?
> I think ,in this situation , we may use arguments just i give.
Please just use the POSIX calls. :)
> Thanks.
>
>
> At 2012-02-16 21:37:51,"Joel Sherrill" <joel.sherrill at oarcorp.com> wrote:
>
> The short answer is that you shouldn't be programming it at this
> level.
> You should be doing something like this:
>
> int fd;
>
> fd = open( "/dev/xxx", ...);
> write( fd, buffer, length );
>
> It doesn't matter to you what the interface between the driver and
> termios framework is. You should be using POSIX calls like open, read,
> write, and ioctl. The Termios API is used for changing things like
> baud
> rate, bits per character, etc.
>
> I don't know how good this is but a google turned up this which
> doesn't
> look too bad at first glance as an introduction to termios
> capabilities:
>
> http://en.wikibooks.org/wiki/Serial_Programming/termios
>
> --joel
>
> On 02/16/2012 07:29 AM, zhoupeng wrote:
>>
>> Hello guys,
>>
>> I am a student. Now i have take part in a project which is based
>> on x86 cpu. So i study BSP of PC386. Precently,i want to write a
>> application program of serial port. Because,the BSP of PC386 is
>> provide the serial port driver. So we can use the serial port
>> driver directly.
>>
>> The soruce code of this drive programe include tty_drv.c\
>> termios.c\ uart.c... Before i write the application programe , i
>> made a analysis about this driver. Let's look some code whic is
>> come out of these files.
>>
>> rtems_device_driver
>> tty_read(rtems_device_major_number major,
>> rtems_device_minor_number minor,
>> void *arg)
>> {
>> return rtems_termios_read (arg);
>> } /* tty_read */
>>
>> rtems_status_code
>> rtems_termios_read (void *arg)
>> {
>> rtems_libio_rw_args_t *args = arg;
>> struct rtems_termios_tty *tty = args->iop->data1;
>> uint32_t count = args->count;
>> char *buffer = args->buffer;
>> rtems_status_code sc;
>>
>> ...}
>>
>> we can find a important arguements *arg , it's a pointer point to
>> a struct .This struct have three member ,they are
>>
>> args->iop->data1 \ args->count \ args->buffer
>>
>> who know their funcations??? I believe in application programe
>> ,we have to provide these arguements!
>>
>> Can you provide a test programe of serial port with this drive in
>> bsp of pc386.?
>>
>> Thanks so much!
>>
>> Best wish!
>>
>> zhoupeng
>>
>>
>>
>
>
> --
> Joel Sherrill, Ph.D. Director of Research& Development
> joel.sherrill at OARcorp.com On-Line Applications Research
> Ask me about RTEMS: a free RTOS Huntsville AL 35805
> Support Available (256) 722-9985
>
>
>
>
--
Joel Sherrill, Ph.D. Director of Research& Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20120216/38958538/attachment-0001.html>
More information about the users
mailing list