Generated C code inspection helps you check the code created automatically from Simulink models. It ensures the code works as expected and is easy to understand.
Generated C code inspection in Simulink
1. Open your Simulink model. 2. Configure code generation settings. 3. Generate C code using Simulink Coder. 4. Use the Code Inspector tool to review the generated code. 5. Navigate through code files and compare with model elements.
The Code Inspector is a graphical tool inside Simulink for easy code review.
You can link code sections back to model blocks for better understanding.
simulink_model = 'my_model';
rtwbuild(simulink_model);open_system('my_model'); set_param('my_model', 'GenerateCodeOnly', 'on'); rtwbuild('my_model');
codeInspector('my_model_ert_rtw');This example opens a Simulink model called 'simple_model', sets it to generate embedded C code only, builds the code, then opens the Code Inspector to review the generated files.
model = 'simple_model'; open_system(model); set_param(model, 'SystemTargetFile', 'ert.tlc'); set_param(model, 'GenerateCodeOnly', 'on'); rtwbuild(model); codeFolder = [pwd filesep model '_ert_rtw']; codeInspector(codeFolder);
Always check that your model is error-free before generating code.
Use the Code Inspector to trace code back to model blocks for easier debugging.
Generated code may be complex; focus on key functions and variables related to your model.
Generated C code inspection helps verify and understand code from Simulink models.
Use Simulink Coder and Code Inspector tools to generate and review code.
Inspecting code ensures correctness and helps optimize embedded system software.
Practice
Solution
Step 1: Understand the role of generated code inspection
Generated C code inspection is used to check if the code matches the Simulink model's logic and to understand how the model is translated into code.Step 2: Eliminate unrelated options
Creating new blocks, speeding simulation, or converting code back to diagrams are not purposes of code inspection.Final Answer:
To verify the correctness and understand the behavior of the generated code -> Option CQuick Check:
Code inspection = verify and understand code [OK]
- Thinking code inspection creates new blocks
- Confusing code inspection with simulation speedup
- Assuming code inspection converts code back to diagrams
Solution
Step 1: Identify the tool for code generation
Simulink Coder is the tool designed to generate C and C++ code from Simulink models.Step 2: Confirm other tools' purposes
Profiler measures performance, Data Inspector visualizes signals, Real-Time runs models on hardware, none generate code.Final Answer:
Simulink Coder -> Option DQuick Check:
Code generation tool = Simulink Coder [OK]
- Confusing Profiler with code generator
- Mixing Data Inspector with code generation
- Assuming Real-Time generates code
rtU.inputSignal represent?/* Model step function */
void model_step(void) {
real_T output = rtU.inputSignal * 2.0;
rtY.outputSignal = output;
}Solution
Step 1: Analyze variable naming conventions
In generated code,rtUprefix usually denotes inputs to the model, sortU.inputSignalis an input.Step 2: Check usage in code
The code multipliesrtU.inputSignalby 2 and assigns to output, confirming it is an input value.Final Answer:
An input signal to the model -> Option BQuick Check:
rtU = inputs, rtY = outputs [OK]
- Thinking rtU is output or local variable
- Assuming inputSignal is a constant
- Confusing variable scope
int32_T counter = 0 counter += 1;
What is the error here?
Solution
Step 1: Check syntax of variable declaration
The first line declarescounterbut misses a semicolon at the end, which is required in C.Step 2: Validate increment statement
The incrementcounter += 1;is correct syntax and valid for int32_T type.Final Answer:
Missing semicolon after the first statement -> Option AQuick Check:
Every C statement ends with ; [OK]
- Ignoring missing semicolon errors
- Thinking increment syntax is wrong
- Confusing variable types unnecessarily
Solution
Step 1: Understand code optimization options
Simulink allows marking signals as unused in the Code Mappings editor to exclude them from generated code.Step 2: Evaluate other options
Enabling logging increases code size, increasing sample time changes model behavior, disabling coder stops code generation.Final Answer:
Use the Code Mappings editor to mark unused signals as 'Exclude from code' -> Option AQuick Check:
Exclude unused signals via Code Mappings [OK]
- Enabling logging increases code size
- Changing sample time affects model timing
- Disabling coder stops code generation
Ready to prove it?
Pass the test and this pattern moves unknown
