This is the mail archive of the ecos-devel@sourceware.org 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]

Changing tick interval - MIPS


I have a MIPS platform running ECOS v2.0. Default tick interval is 10ms. There are a few tasks at equal priority, and time slicing is enabled (5 ticks). At 10ms tick interval, everything works fine. All equal priority tasks get a chance to run.
 
I tried changing tick intervals by modifying CYGNUM_HAL_RTC_DENOMINATOR value.
 
First, i lowered the tick interval to 1ms. After this, i see only one task is running. None of the other tasks are getting a chance to run. Then i changed tick interval to 5ms. Same result. It seems like context switch is not happening.
 
Secondly, i increased the tick interval to 50ms and 100ms. And, the system hangs on boot up. Nothing runs.
 
As soon as i change the CYGNUM_HAL_RTC_DENOMINATOR value to 10ms (default), things get back to normal. I am not sure why changing the tick interval has such a big impact on scheduling. The RTC interrupt on MIPS is derived from count and compare register, which i would assume can handle 1ms or 5ms or 50ms durations. In other words, i am not suspecting the RTC interrupt itself.
 
Any clues on why this is happening? The only value that i change is CYGNUM_HAL_RTC_DENOMINATOR. I do see that CYGNUM_HAL_RTC_PERIOD changes based on the denominator value.
 
Are there any other dependencies to change tick interval? I wonder what is so special about the default 10ms tick interval?

Thanks in advance.
Santosh



      


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