Re: Upgrading software from NDK 1.6 to 2.x
Posted: Wed Jan 19, 2022 4:59 pm
I already have an alternative solution based on a pair of OS_SEM that explicitly blocks/unblocks the threads to alternate between them. Again, to be clear, no spacing out of DACout calls was necessary in 1.6, no delays, no explicit blocking/unblocking. All that was needed was a critical section around each MultiChannel_I2CSendBuf call and both threads ran.
What we are trying to understand is why 1.6 needed no explicit delays, blocking/unblocking, etc. If there is some way to enable similar behavior under 2.x. This has a great impact on some legacy project I do not currently have access to.
My best guess is that MultiChannel_I2CSendBuf used to block under 1.6, and that provided alternating between the two threads. And under 2.9.5 it no longer blocks so the secondary thread is never scheduled.
What we are trying to understand is why 1.6 needed no explicit delays, blocking/unblocking, etc. If there is some way to enable similar behavior under 2.x. This has a great impact on some legacy project I do not currently have access to.
My best guess is that MultiChannel_I2CSendBuf used to block under 1.6, and that provided alternating between the two threads. And under 2.9.5 it no longer blocks so the secondary thread is never scheduled.