Is there a way to detect when the Data Store Memory block contains reads and writes executing in differing tasks in Simulink 6.0 (R14)?

2 views (last 30 days)
I am looking for a way to detect when the reads and writes within data stores are executing in more than one task. Is this possible?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This bug has been fixed for Release 14 SP1 (R14SP1). For previous releases, please read below for any possible workarounds:
It is possible for the data store reads and writes corresponding to a given Data Store Memory block to execute in more than one task. In such a case, the integrity of the data is suspect except in specific cases (e.g. the data store is a scalar boolean whose value is updated by an atomic copy, the tasks involved are known to not preempt one another for a specific target).
We have added a Sample Time diagnostic, "Multitask data store" to detect such a condition. By default the diagnostic is set to "warning". It may also be set to "none" or "error". It should not be set to "none" unless specific situations warrant disabling the diagnostic, e.g. a real-time implementation using a cyclic scheduler where tasks cannot preempt each other. In most cases, the sample time color of the Data Store Memory block now indicates the task(s) its reads and writes are executing in. If the reads and writes execute in a single task the block takes on the color corresponding to that task unless the block lies in a triggered, action, or iteration subsystem or the reads or writes execute in an asynchronous subsystem. If the reads and writes execute in multiple tasks, the color of the block is "yellow" indicating the hybrid nature of its associated sample times.

More Answers (0)

Categories

Find more on Configure and View Diagnostics in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!