Re: Couple of porting questions

John Dallaway <[email protected]>
Newsgroups gmane.os.ecos.general
Message-ID <[email protected]>
Hi Andrew

On 24/06/14 16:01, Andrew Hannam wrote:

> 1/ Is there any method of detecting from a thread handle whether the thread
> that handle refers to is still runnable ie. hasn't exited or been killed?

Take a look at cyg_thread_get_info().

> 2/ Is there any way of detecting if cyg_scheduler_start() has already been
> called or, is it safe to call it multiple times with no side effects or, can
> it be assumed that cyg_scheduler_start() has already been called when main()
> is invoked (if the kernel is included)?

In general, the eCos application developer creates threads within the
cyg_user_start() function and the scheduler is started by system code
when cyg_user_start() exits. Support for main() is dependent on the
CYGPKG_LIBC_STARTUP package being included and the context in which
main() is called is configurable. It would be better to avoid reliance
on C library startup in system-level code if at all possible. If you
must use main() as an entry point for some reason, take a look at the
descriptions of the CYGSEM_LIBC_STARTUP_MAIN_INITCONTEXT and
CYGSEM_LIBC_STARTUP_MAIN_THREAD options.

> 3/ Is there any approved method of halting the system (eg due to an
> unrecoverable soft error) or is calling the C library exit() or _exit()
> sufficient?

The C library might not be present. You might simply enter a tight loop:

  for (;;) CYG_EMPTY_STATEMENT;

> 4/ Can stdout output be relied upon on all platforms? Is stdout and/or
> stderr assumed to be a debug/monitor output stream?

Again, the C library might not be present. You can use diag_printf() for
debug output or one of the configurable CYG_TRACE*() macros.

I hope this helps...

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.