Sub modules are a feature in GIT to link in external libraries, such as MAVLink or the NuttX OS. We use this feature to make sure a specific (tested) version of them is used when compiling the Firmware.
If you have linked to this page by an error message, its likely one of them is out of date and needs to be updated. To do so, please run this command on the shell (PX4 console on Windows).
Make sure to be in the Firmware folder
git submodule update
Alternatively you can update the submodule via a GUI, such as TortoiseGIT: