Hello 1750632@tongji.edu.cn ,
The function call generator is going to trigger a subsystem by a 'software interrupt' if you may, while the PIT block will use a hardware trigger to call your subsystem. This is the main difference between them - software vs hardware scheduling.
Now for the fixed-step size, that is the parameter that controls the main loop period. Let me quickly go over the main parts of the code generated by our toolbox:

- Step – a function called periodically, with a frequency controlled by the Discrete Step value set in the model -- this is the main loop
- Interrupts – asynchronous events that can be further grouped into 2 categories:
- Events that occur at a known period – e.g. a LPIT block that is used to trigger the Fast loop system for motor control applications – the important part is that you control the frequency at which this event occurs
- Events that have an unknown period – e.g. receiving a message via UART/SPI/I2C/etc. – this is something that you have no control over, it can happen any time
- Initialization – this is a function called only once, at the beginning
- IDLE – this is the time period in which the Step function finished execution and awaits to be re-triggered and you have no ISR to execute (no such events were generated)
As for the main function, you can find it implemented in mbd_main.c file - there you'll see the initialization for the PIT block that will control the main loop.
Hope this is helpful.
Kind regards,
Razvan.