This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]