Can you explain the difference between static and dynamic memory allocation in your embedded projects?