-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PRU-to-Xenomai interrupt #171
Comments
This already exists. It can be enabled by The performance of this is better insofar as you can get even more oscillators running on the oscillator bank before it breaks up. The problem was that it used the CPU so efficiently that under some circumstances, you could lock the board solid because the audio task would never return enough CPU to the rest of Linux to interact with it. That's why I ultimately turned it back off. An alternative might be to put a single short delay at the end of each block to force a certain amount of non-Bela time, then listen for an interrupt after that. But I haven't tested it. |
I am fairly sure that that kernel never made its way to the board.
If it requires more than this, could you please provide your kernel config file ? current XENO-related config options are these:
|
I enabled This was on the board for a while; it probably dropped off sometime before the first Bela release when the kernel got rebuilt. |
Good I'll try to rebuild with these. One more thing on the topic of Xenomai eating my board's CPU: what is more difficult to account for is that the audio thread is not everything. If anyone has an expensive AuxiliaryTask running, which still runs at higher priority than the kernel, then that would potentially fill all the CPU time left available from the audio thread. |
Agreed about the sleep times. Another feature that would address the AuxiliaryTask situation while also being useful in other contexts: a short push (say 0.5s) of the button on the cape could stop the program. A long hold (say 3s) could shut down the board. If the core Bela software monitors the button, no user interaction would be needed to stop it. Xenomai is already savvy enough to kill a task that takes up all the CPU; the problem I had was that it left some CPU, but not enough to effectively run the USB-network link. |
Performance comparison at blocksize 2 for the bypass program:
with polling
Not sure how to interpret the |
Here is the advice for Xenomai 3 |
done a while ago |
This seemed like a promising way of getting more out of the CPU. @apmcpherson where did we get stuck with this? Does it require a recompiled kernel?
The text was updated successfully, but these errors were encountered: