From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32485 invoked by alias); 9 Jul 2002 10:49:11 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 32473 invoked from network); 9 Jul 2002 10:49:08 -0000 Received: from unknown (HELO www.jennic.com) (213.143.5.74) by sources.redhat.com with SMTP; 9 Jul 2002 10:49:08 -0000 Received: from jensun01.jennic.com (jensun01.jennic.com [99.99.98.151]) by www.jennic.com (8.9.3/8.9.3) with ESMTP id LAA12674; Tue, 9 Jul 2002 11:18:06 +0100 Received: from jenpc60 (jenpc60 [99.99.98.60]) by jensun01.jennic.com (8.9.3/8.9.3) with SMTP id LAA07103; Tue, 9 Jul 2002 11:49:05 +0100 (BST) From: "Robert Cragie" To: "George Sosnowski" , , Date: Tue, 09 Jul 2002 03:49:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 Importance: Normal Subject: RE: [ECOS] Serial getc problem X-SW-Source: 2002-07/txt/msg00092.txt.bz2 I have not used this platform (860T), but essentially I did the following (for ARM Integrator) using the GUI config. tool: 1) In the "Serial device drivers" section, I enabled the "TTY-mode serial device drivers" subsection (CYGPKG_IO_SERIAL_TTY = 1). 2) In the "TTY-mode serial device drivers" subsection, I enabled the "TTY-mode channel #0" subsection (CYGPKG_IO_SERIAL_TTY_TTY0 = 1). 3) In the "TTY-mode channel #0" subsection, I specified "TTY-mode device channel #0 device" as "/dev/ser0" (CYGDAT_IO_SERIAL_TTY_TTY0_DEV = "/dev/ser0") 4) I also did 2 and 3 for "TTY-mode channel #1" subsection, but this may not be necessary 5) Check the "Hardware serial device drivers" sections thoroughly to make sure they are what you want for /dev/ser0 (and /dev/ser1 maybe) 6) In the "ISO C Library" section, "ISO C Library standard input/output functions" subsection, I specified "Default console device" to be "/dev/tty0" (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE = "/dev/tty0") This allowed me to use printf() and scanf() etc. on /dev/tty0 (and ultimately /dev/ser0), which should be fully interrupt driven and thus allow blocking (sleeping) in a thread which is waiting for user input. IIRC, /dev/ttydiag does a busy polling wait on data on the UART Rx side, which prevents it from being used effectively in a thread. HTH Robert Cragie, Design Engineer Direct: +44 (0) 114 281 4512 ________________________________________________________ Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK www.jennic.com Tel: +44 (0) 114 281 2655 Confidential > -----Original Message----- > From: ecos-discuss-owner@sources.redhat.com > [mailto:ecos-discuss-owner@sources.redhat.com]On Behalf Of George > Sosnowski > Sent: 08 July 2002 17:35 > To: ecos-discuss@sources.redhat.com > Subject: RE: [ECOS] Serial getc problem > > > I have come across a similar situation using the 860T. My platform has > one serial port (SMC1 used as diag and console port) and currently I > inherit the serial channel from redboot. Is it still possible to have a > 'proper' /dev/tty0 that uses the inherited serial channel (diag/console) > from redboot? Or does the ecos ram image have to install its own > /dev/ser0 for console and diag channels since these are the same device? > > Thanks, > George > > -----Original Message----- > From: Robert Cragie [mailto:rcc@jennic.com] > Sent: Thursday, July 04, 2002 10:26 AM > To: Daniel Lidsten; ecos-discuss@sources.redhat.com > Subject: RE: [ECOS] Serial getc problem > > You need to use a 'proper' serial driver (/dev/tty0 or /dev/tty1), not > /dev/ttydiag. These allow blocking reads which will allow other threads > to > run; as you have seen, /dev/ttydiag does a busy wait on a character > which > will stop other threads from running. You can configure eCos so that > stdio > uses /dev/tty0 or /dev/tty1. > > Regards, > > Robert Cragie, Design Engineer > > Direct: +44 (0) 114 281 4512 > ________________________________________________________ > Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK > www.jennic.com Tel: +44 (0) 114 281 2655 > > > > -----Original Message----- > > From: ecos-discuss-owner@sources.redhat.com > > [mailto:ecos-discuss-owner@sources.redhat.com]On Behalf Of Daniel > > Lidsten > > Sent: 04 July 2002 17:19 > > To: ecos-discuss@sources.redhat.com > > Subject: [ECOS] Serial getc problem > > > > > > Hi, > > > > I am running a MPC850 with a few different threads in the application. > > The network stack is also enabled and up and running. However, when a > > thread calls the HAL_DIAG_READ_CHAR to wait for input from the user > then > > my net stack stops working. I cant reach it with a ping from my local > > host. > > > > My first thought was that the application was running with a higher > > priority (lower value) then the net stack but that was not the case. > The > > application runs at prio 8 and net at 6 and 7 (background). > > > > I have seen in the serial driver that when reading a char from the > port > > then the following is done: > > > > while ( !getc_non_block(..) ) > > > > Can the problem be that this code is running in some form of "kernel > > state" i.e. in a very high prio state since the driver lies within > eCos? > > > > Regards, Daniel > > > > -- > > Before posting, please read the FAQ: > http://sources.redhat.com/fom/ecos > > and search the list archive: http://sources.redhat.com/ml/ecos-discuss > > > > > > > -- > Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos > and search the list archive: http://sources.redhat.com/ml/ecos-discuss > > > -- > Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos > and search the list archive: http://sources.redhat.com/ml/ecos-discuss > > -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss