We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I'm using LPC2119 microcontroller and RV30 with RTX and ran into several problems.
1) If I use printf(...) inside tasks and use os_dly_wait(...) then as soon as context switching occurs then os_stack_overflow() is called. I tried to set up different stack sizes inside startup.s file but it didn't help a bit. I tried to run the same code inside simulator and it works OK without any stack overflow (which I was getting if I didn't include tsk_lock() and tsk_unlock() around printf(...))
2) If I get rid of os_dly_wait(...) calls and have two tasks running, then if I use printf with this kind of code:
int test = 10; tsk_lock(); printf("test value: %u\n", test); tsk_unlock();
Then the task, which ran that line of code, will get stuck including not context switching. I didn't get any stack overflows that time but it looks like it gets stuck when it tried to do a context switching. If, on the other hand, I put code like that:
tsk_lock(); printf("test value: %s\n", "just some test"); tsk_unlock();
Then it switches just fine. Thanks in advance with any suggestions or explanations, Alexei
Thank you! It really helped. That was the root of the problem.
Once again thank you :-)
Alexei