MATLAB Answers

The model that you are trying to run in External mode does not match the application running on your target. Checksum test (TARGET_DATA_MAP) failed.

83 views (last 30 days)
Subhadra Mahanti
Subhadra Mahanti on 20 Jun 2019
When I try to simulate in external mode (connecting to a QNX target) I get the following error message (after a rebuild).
The model that you are trying to run in External mode does not match the application running on your target. Checksum test (TARGET_DATA_MAP) failed. The host model's structural checksum is [1038344332, 770696832, 3087214867, 2593530883] and the target application's structural checksum is [2557921303, 471944455, 2932109082, 2461827081]. Rebuild the model, run it on your target, and start External mode simulation again.
Rebuilding doesn't fix the issue. Also removed slprj and other model related files from the host as well as the target.
Also another interesting thing I noticed is that when I ran another Simulink model on the same target, it worked fine. But then I applied the same (custom) system target file (with a few code generation optimizations like inlining and block reduction), then rebuilt and deployed to the target and tried to rerun in external mode, I see the same error about checksum mismatch.?
Is it possible that the code generation settings is optimizing out certain atifacts of the model in the generated code and hence the checksum mismatch?

Answers (2)

Yu-Ru chien
Yu-Ru chien on 29 Aug 2019
Edited: Yu-Ru chien on 29 Aug 2019
Hi,
I have the same error with my external mode.
Do you have any solution to fix it ?
my error is :
The model that you are trying to run in External mode does not match the application running on your target. Checksum test (TARGET_DATA_MAP) failed. The host model's structural checksum is [3983279142, 1550170329, 848274671, 1688896861] and the target application's structural checksum is [383270811, 1049453704, 876952895, 4117075976]. Rebuild the model, run it on your target, and start External mode simulation again.

Subhadra Mahanti
Subhadra Mahanti on 29 Aug 2019
Hi Yu-Ru
Yes I was able to fix this issue. In our case, we were using our own build framework to generate the code and during the build process, we changed some of the model parameters while building (e.g. in our case in our build settings we had the model parameter EnableParallelModelReferenceBuilds as ON while in our system target (TLC) file, this was off. So with structural changes like these, the source model (from which you run the external mode) and the generated code that you run on the target can end up having different checksums.
An easy way to verify is: check the checksum of your model modelName (say) that you are trying to run in external mode by using the following command Simulink.BlockDiagram.getChecksum('modelName'). Next verify that this matches the checksum in the generated code directory. You can also compare other parameters to see what exact parameter is causing this change in structural checksum. HTH.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!