I will keep it short. On the one hand you have an embedded controller running embedded software, some call it firmware, some embedded software. Lot of terminology which is not consistent. The embedded controller can be programmed with application specific code. Hence application firmware pertains to the code running on the controller. But usually, application software, aside from terminology, probably refers to the other side of the connection. The system with an embedded controller is connected (wireless or wired) to another side. Let’s assume a USB device which has an embedded controller and the host side could be a desktop PC. On the PC you will need hardware specific software, drivers for the lower layers (example physical layer). The useful data is extracted by the driver and handed over to a program, an application. It is a bit of a short simplified answer and my terminology probably is not equal to yours. But I tried to depict the places and types of code. Hope it helped.