You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I followed the advice given in issue #237 and was able to get my project behaving properly on a pi4, with the timer ticking nicely.
However, I've run into an odd problem with the scheduler. Using most of the code from Lesson04 I have built a primitive scheduler in my project, and things are now behaving strangely. Here is some output with helpful debugging printf()s:
Current Exception Level is: 1
Enabling interrupt 97
EnableRegister: ff84110c
About to call enable_irq()...
Calling switch_to()...
1234512345123451234512In handle_irq()...
In timer_tick()....
About to call enable_irq()...
Calling switch_to()...
abcdeabcdeabcdeabcdeabcdeabcd[...]
As you can see, everything is just peachy until timer_tick() is called by the interrupt handler. Thereafter, it seems that even though interrupts are re-enabled, the interrupt handler never gets called again. My handle_irq() function is using the fix described by @maxstreitberger in issue #237, and my timer_tick() function and enable_irq() assembler function are identical to those in Lesson04.
I'm very confused!
The text was updated successfully, but these errors were encountered:
I followed the advice given in issue #237 and was able to get my project behaving properly on a pi4, with the timer ticking nicely.
However, I've run into an odd problem with the scheduler. Using most of the code from Lesson04 I have built a primitive scheduler in my project, and things are now behaving strangely. Here is some output with helpful debugging printf()s:
As you can see, everything is just peachy until timer_tick() is called by the interrupt handler. Thereafter, it seems that even though interrupts are re-enabled, the interrupt handler never gets called again. My handle_irq() function is using the fix described by @maxstreitberger in issue #237, and my timer_tick() function and enable_irq() assembler function are identical to those in Lesson04.
I'm very confused!
The text was updated successfully, but these errors were encountered: