Global Variables in Simulink with Multiple Instances
Show older comments
I'm modeling a company's product in Simulink, and have written a C SFunction that runs the firmware successfully. The firmware is compiled from many header/source files, and makes extensive use of global variables. This is fine for single instances, but when I run simulations with more than 1 instance of my custom block there are problems. I believe this is because the global variables are being shared between the blocks. I know DWork vectors are the way around this, but I'm also trying to modify the firmware as little as possible. Does anyone know if Simulink runs single-threaded or multi-threaded (or if I can force it to run single threaded)?. Then I could just load the globals from DWork vectors before each call in mdlOutputs, then update the DWorks after.
Answers (0)
Categories
Find more on Model, Block, and Port Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!