This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
eCos hello world problem MIPS IDT334
- From: "Avinash S." <avinash dot s at inspiretech dot com>
- To: "Tim michals" <tcmichals at yahoo dot com>, "ecos"<ecos-discuss at sources dot redhat dot com>
- Date: Thu, 05 Jun 2003 15:44:27 +0530
- Subject: [ECOS] eCos hello world problem MIPS IDT334
Hello,
With the kernel package of eCos, the program basic is executing
well. but the hello world program is not running. I trace the program
with asserts and Tracing. After HAL initialization , the function
cyg_start is invoked which invokes cyg_prestart, cyg_package_start,
cyg_user_start. Then fn start() is invoked There is nno SMP support
here. it calls start_cpu(). start_cpu calls schdule for schduling the
thread, after that the program is stop at the function
hal_thread_load_context.
So the problem is the flow control ,it does not come out from the
hal_thread_load_context and "Hello eCos world" is not displayed.
********************************************************
hello with trace msg - thread context
********************************************************
here is the output with asserts and tracing
TRACE: startup.cxx [ 96] void cyg_start()
{{enter
TRACE: startup.cxx [ 96] void cyg_start()
(((void)))
TRACE: prestart.cxx [ 76] void cyg_prestart()
{{enter
TRACE: prestart.cxx [ 76] void cyg_prestart()
(((void)))
TRACE: prestart.cxx [ 79] void cyg_prestart()
'This is the system default cyg_prestart()'
TRACE: prestart.cxx [ 83] void cyg_prestart()
}}return void
TRACE: pkgstart.cxx [ 85] void cyg_package_start()
{{enter
TRACE: pkgstart.cxx [ 85] void cyg_package_start()
(((void)))
TRACE: pkgstart.cxx [ 88] void cyg_package_start()
'This is the system default cyg_package_start()'
TRACE: pkgstart.cxx [ 96] void cyg_package_start()
}}return void
TRACE: userstart.cxx [ 75] void cyg_user_start()
{{enter
TRACE: userstart.cxx [ 75] void cyg_user_start()
(((void)))
TRACE: userstart.cxx [ 78] void cyg_user_start()
'This is the system default cyg_user_start()'
TRACE: userstart.cxx [ 82] void cyg_user_start()
}}return void
TRACE: sched.cxx [ 318] static void Cyg_Scheduler::start()
{{enter
TRACE: sched.cxx [ 345] static void Cyg_Scheduler::start_cpu()
{{enter
TRACE: mlqueue.cxx [ 119] Cyg_Thread*
Cyg_Scheduler_Implementation::schedule() {{enter
ASSERT FAIL: <FFFF>mlqueue.cxx[126]Cyg_Thread*
Cyg_Scheduler_Implementation::schedule() Run queue empty
ASSERT FAIL: mlqueue.cxx [ 126] Cyg_Thread*
Cyg_Scheduler_Implementation::schedule() Run queue em
pty
********************************************
Hello program with initialization context
****************************************
I changed the eCos configuration such that it doesnt execute main as a
thread ,instead I checked the box for "initialization context"(ISO C
library---statup/termination options). this is for single threaded
application. With this the 'Hello eCos world" message is still not
displayed. I tried all packages, but none display hello ecos world. In
hello.c , a diag_write_string was written before the printf and after it
too, and both these messages were printed but the printf statement does
not.
****************************************************
Trace msg for hello, with initialization context
****************************************************
TRACE: startup.cxx [ 96] void cyg_start()
{{enter
TRACE: startup.cxx [ 96] void cyg_start()
(((void)))
TRACE: prestart.cxx [ 76] void cyg_prestart()
{{enter
TRACE: prestart.cxx [ 76] void cyg_prestart()
(((void)))
TRACE: prestart.cxx [ 79] void cyg_prestart()
'This is the system default cyg_prestart()'
TRACE: prestart.cxx [ 83] void cyg_prestart()
}}return void
TRACE: pkgstart.cxx [ 85] void cyg_package_start()
{{enter
TRACE: pkgstart.cxx [ 85] void cyg_package_start()
(((void)))
TRACE: pkgstart.cxx [ 88] void cyg_package_start()
'This is the system default cyg_package_start()'
TRACE: pkgstart.cxx [ 96] void cyg_package_start()
}}return void
TRACE: invokemain.cxx [ 101] cyg_libc_invoke_main()
{{enter
TRACE: invokemain.cxx [ 101] cyg_libc_invoke_main()
((argument is ignored))
before printf
ASSERT FAIL: <FFFF>stream.cxx[585]Cyg_ErrNo Cyg_StdioStream::write()
Stream object is not a valid stream!
ASSERT FAIL: stream.cxx [ 585] Cyg_ErrNo
Cyg_StdioStream::write() Stream object is not a valid stream!
Thanks in Advance
Avinash
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss