I am developing using VisualDSP++ with a BF547 target on a custom board.
I need to synchronize three threads to a live callback. The callback services an interrupt generated by Timer 4 after Timer 4 has output a single pulse in Single Pulse Mode. I am attempting to use a Device Flag to do this. All three threads pend on the call to VDK_PostDeviceFlag() in this callback. I find that when VDK_PostDeviceFlag() is called within the callback the call to VDK_PostDeviceFlag() causes Kernel Panic on the first call. When VDK_PostDeviceFlag() is called from outside the callback in a thread the call to VDK_PostDeviceFlag() works as it should.
The callback is called at a rate of 200kHz. The CCLK is 500MHz and SCLK is 125MHz. The output pulse is 100ns.
The three threads need to react quickly to keep up and so are given the highest priority of 1.
Is it supposed to be possible to call VDK_PostDeviceFlag() within a live callback? If not what are the alternatives to synchronizing the three threads with the completion of the output pulse?