Update of WinCE 6.0 image can fail with Asian languages

We’ve encountered problems updating the OS (switch between BSP V4.2 and V4.5) if our application is running with an Asian language (and font). The update is stopping (display freeze) towards the end of the update procress (see attached movie) and after a reboot Windows cannot start anymore. The bootloader is still functional.
Here is the output after a failed update:

Toradex Bootloader 4.2 for Colibri Built Jun 11 2013
Press [SPACE] to enter Bootloader Menu

Colibri PXA320 806MHz V2.0C  SerialNo: 6451881
NAND Flash UNKNOWN: 1003 MB, SDRAM: 128 MB
Core Voltage: 1400 mV
CPU: PXA320 C0 806 (403), HSIO: 208, MEM: 208, DDRRAM: 260, SRAM: 312, LCD: 208
Set MAC: 00:14:2D:62:72:A9
WinCE image found.
Error reading pToc from FLASH.
Fatal Error: 2

The problem does not always happen. The update is triggered from within the application, calling a .bat file on a USB memory stick. The .bat file contains all calls for update.exe. In Asian languages the QT application is loading special fonts, which are located in a subdirectory of /FlashDisk/.

What could be the problem?

Hi @widtmann ,

What kind of update are you doing? Only WinCE Image, or everything (including FlashFilesystem?)
During an update access to the FlashFilesystem is locked and this could be a problem if your application is running from there (especially if Demand Paging is triggered while flash is locked, it might crash or freeze).
The safest way for doing a system Update is to make sure that nothing is accessing FlashDisk (or running from it)

Hello @germano.tx
Thank you for your feedback. The update script runs through following steps:

SET SourcePath=na

IF EXIST "\USB HD\BinaryFiles\factory_install.bat" SET SourcePath=\USB HD\BinaryFiles
IF EXIST "\USB HD2\BinaryFiles\factory_install.bat" SET SourcePath=\USB HD2\BinaryFiles

IF %SourcePath%==na GOTO FINISH

ECHO Cleaning target flash registry...
"%SourcePath%\Update_5.11.0.exe" /cu

ECHO Programming bootloader...
"%SourcePath%\Update_5.11.0.exe" /u %SourcePath%\eboot_4.5.bin

ECHO Programming flash config block...
"%SourcePath%\Update_5.11.0.exe" /u %SourcePath%\ConfigBlock.bin

ECHO Programming windows ce image...
"%SourcePath%\Update_5.11.0.exe" /u %SourcePath%\nk.bin

ECHO Checking File System
IF EXIST \FlashDisk\mt4.fmt GOTO SKIP_FORMAT
"%SourcePath%\Update_5.11.0.exe" /u %SourcePath%\fs.bin /cu /rc
GOTO FORMAT_DONE

:SKIP_FORMAT
ECHO FileSystem is up-to-date
:FORMAT_DONE

:FINISH

As far as I could see the crash happens while updating nk.bin and the file system is not being updated (\FlashDisk\mt4.fmt still existing).

Hi @widtmann,

Can you try to reproduce the error while enabling serial debug output?
This would most probably give much more information on what is going on (i expect some crash dump on the debug serial output)

https://developer.toradex.com/knowledge-base/enable-the-debug-messages#Debug_Messages_over_Serial

Dear @germano.tx
I was able to reproduce the error with enabled serial debug output. Unfortunately there was no additional information given on the debug output.

Hi @widtmann,

Sorry but i don’t have any other ideas on what to test more… i think the only safe way is probably to exit the QT app before doing the update.