for the first question: grt uses a larger memory model and is a target for generic use (as the name says) mostly on the host PC. ert (embedded real-time target) is using a smaller memory model, and optimizes better for speed and memory. To generate code using ert you might just choose the ert.tlc on the Simulink Parameters page.
Best Answer