Lotta moving parts here -- but here's the code, fresh on GitHub.
I'm working on Rust bindings for the C API, and would love a hand solving one particular problem. For whatever reason, my render() callback is not being called until I hit Ctrl-C and abort the program. I'm seeing bela-audio in stat and sched, so the thread is spawning and all that. The setup() callback is also being called, which I know because when I put a panic!() (Rust's version of aborting) in that function it gets called right away. And finally, I am actually calling render(), but it only gets called when I call Bela_stopAudio(); it seems something is getting flushed at the last second there.
It's totally possible that I have a problem with linking to the wrong libraries. I'm cross-compiling this from a Windows 10 machine using LLVM and Clang 6.0. I copied over all the include/ and lib/ directories from the various xenomai stuff to my local search paths (pretty much what's suggested in the compiling on Eclipse guide).
Thoughts? I'd love to organize all this and contribute to the documentation, not to mention make a safe Rust wrapper for the Bela C API.
stat and sched
CPU PID CLASS PRI TIMEOUT TIMEBASE STAT NAME
0 0 idle -1 - master R ROOT
0 5345 rt 95 31us master D bela-audio
CPU PID MSW CSW PF STAT %CPU NAME
0 0 0 111398906 0 00500080 83.8 ROOT
0 5345 0 86424 0 00300184 13.7 bela-audio
0 0 0 118857782 0 00000000 1.8 IRQ67: [timer]
Addition: the output when verbose = 1
root@bela ~$ LD_LIBRARY_PATH=/root/Bela/lib ./hello
Starting with period size 16; analog enabled
DAC level 0dB; ADC level -6dB; headphone level -6dB
Warning: couldn't export amplifier mute pin 61
Using embedded PRU code
_________________Audio Thread!
^Caudio thread ended
Stopping audio...
thread 'main' panicked at 'panic in render', src/main.rs:34:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Illegal instruction