Colibri T20 Version OS image 1.2 and in 1.4 the display is not updated properly and Sound files are not reproduced properly

We have Colibri T20 boards.
Some of the boards displays the application windows properly and the sound sequence is good and some of the boards the application window is not properly loaded and sound sequence is not good. Once we check the good board and bad board we have noticed the following.
while running Colibri Monitor 1.7
Good board consumes - 12-20 % of CPU for NK.exe and our APlink textP O-App1 consumes 50-60%.
Bad board consumes - 60-70 % of CPU for NK.exe and our APP O-App1 consumes 12-20%.
Screen shots attached.
Why 60-70% of NK.exe is consumed in bad boards with the same APP O-App1.
In the app, We run ADC functions and GPIO functions.

The high workload on NK.exe could be related to an interrupt that is triggered periodically.

Could you once try run these tests on one of our carrier boards (Evaluation Board, Iris, …)? Do you see the same there on “bad” modules?

If the issue is disapeard on our carrier board, you have to check if you have any floating pin that triggers interrupts. Disable all drivers you don’t need (SDCard, Uart, …) and check again.

If the issue is still there also on our carrier boards, it could be related to a ADC / Audio issue: Are you using the latest library package (V2.0 bis)?

Hai Samuel,

We have disabled the drivers and found the cause. The cause is “SERIAL2”.
While disabling the serial2 the NK.EXE is not overloaded.

When we enabling the serial2 the NK.EXE is overloaded with 68%.

Hai samuel,

Please tell us the solution for further checkings.

Hai Samuel,

With your most useful input we have confirmed that the 7 defective colibri T20 boards are working good if we disable the driver “SERIAL2”.

But we cannot progress it further as a solution of disabling the SERIAL2 because, we are using it in our power supply processor communication. It generates an alarm for the SERIAL2 disabling.

Waiting for your reply!

@Mahalkshmi: I assume you are using only TX and RX of Serial2, right? Probably the CTS and / or RTS pins are floating and so the CPU is getting loaded with fake Interrupts. Seems these pins are close to an interrupt level, so you see that only on some modules.

Try once to manually set the SODIMM 34 and 32 to a defined state either by external pull down / up or once by internal pull ups / downs. If this helps, you can run a small application in AutoRun and configure these pins on bootup.

Hai Samuel,
Thank you so much for the reply!

I have tried with Pull up and Pull down… I could see the slight differences,

Result of SODIMM 34and 32 Pull Up >>the NK.EXE is increased slowly from 20 to 77% (i.e while booting the application it is faster later it is slow). Previously NK.EXE is directly 77%.

Result of SODIMM 34and 32 Pull Down >> No effect, not solved, it is as such how it was before.
Pull up and Pull down are done with 4.7K.
Any other points are there to check in our application side?

Dear Samuel,
Can we disable the CTS and RTS interrupts without affecting Serial 2 communication?

@Mahalakshmi:

Did you ever let your application run on the Evaluation Board? Did it work there?

First I would suggest to test if the issue is really caused by the second UART. Therefore you disable once the Serial 2 in the registry. Just rename the DLL from “libnvuart.dll” to “libnvuart2.dll” in registry [HKLM\Drivers\BuiltIn\Serial2]. Flush the registry and reboot. After that Serial 2 will not work.

If the steps above solve your issue, please try once to use the UART driver from Image 2.0 beta 4, which will be released soon. This driver includes some fixes about Interrupt handling. Just keep the registry as it is, put this DLL to “\FlashDisk\System”. After that the UART should work again. Does this change anything?

I have tried the second paragraph action, But the Serial 2 is still disabled. Do we have to copy the dll in windows folder…?

Copied the windows folder using auto copy

But even after the Uart_B is in disabled state

You have to copy the dll into the \FlashDisk\System" folder. Create a folder System, if it does not yet exist. The system folder is also in the driver search path. If you rename the driver in the DLL to libnvuart2.dll, it will not be found in the Windows folder, so it goes to \FlashDisk\System and will find the driver there. Autocopy does not work, as the driver gets loaded before auto copy get into action.

First I would suggest to test if the issue is really caused by the second UART. Therefore you disable once the Serial 2 in the registry. Just rename the DLL from “libnvuart.dll” to “libnvuart2.dll” in registry [HKLM\Drivers\BuiltIn\Serial2]. Flush the registry and reboot. After that Serial 2 will not work.

We renamed the DLL to “libnvuart2.dll”, the NK.EXE is not overloaded which is less than 10%. But in our application raises an alarm since the serial2 is disabled.

If the steps above solve your issue, please try once to use the UART driver from Image 2.0 beta 4, which will be released soon. This driver includes some fixes about Interrupt handling. Just keep the registry as it is, put this DLL to “\FlashDisk\System”. After that the UART should work again. Does this change anything?

We copied the “libnvuart2.dll” DLL to FlashDisk\System, even then also serial2 not working.

And we tried one more thing, again copied the “libnvuart2.dll” DLL to FlashDisk\AUTOCOPY\WINDOWS\System after that also serial2 is not working.

For your kind information, in our application we are using V1.2 bootloader and V1.2 OS image since V1.4 is giving touch freeze and hanging issue.

Please check again the DLL name you have used in the registry as well as the the one in \FlashDisk\System. Also try once to rename the DLLs of all Serial drivers to libnvuart.dll . Please enable the debug ouput and send me the result if it still does not work. More details on enabling debug port you find here.

@ Samuel,
The status what we explained above is clear to you? Is there any other thing needs to be done?
Waiting for your reply!

The file name is same in the \FlashDisk\System folder. I have attached the images.
link text

Dear Samuel,
I have attached the txt file output of debug messages from the board,

  1. With_libnvuart.txt - All the serial port dlls are with the name libnvuart.dll
  2. With_libnvuart2.txt - Serial2 dll renamed with libnvuart2.dll and registry saved. (I could see in debug messages Serail 2(UART_B) is not loaded)

link text

Dear Samuel, I have attached the txt file output of debug messages from the board, 1. With_libnvuart.txt - All the serial port dlls are with the name libnvuart.dll 2. With_libnvuart2.txt - Serial2 dll renamed with libnvuart2.dll and registry saved. (I could see in debug messages Serail 2(UART_B) is not loaded) link text

Dear Samuel, I have attached the txt file output of debug messages from the board, 1. With_libnvuart.txt - All the serial port dlls are with the name libnvuart.dll 2. With_libnvuart2.txt - Serial2 dll renamed with libnvuart2.dll and registry saved. (I could see in debug messages Serail 2(UART_B) is not loaded). link text