This discussion is confusing, because there are at least 4 different types of licenses that might be called "GPL", and many meanings to the word "free". The advice I would give depends on the type of company, a "traditional" engineering company probably couldn't cope, other companies who already contribute to Open Source projects might have no problems.
As someone with a foot in both camps, I would be wary about including any GPL code in a proprietary microcontroller program. I'm not saying it can't or shouldn't be done, it just requires careful checking of the actual license and how that would impact the product, e.g. if it says "GPLv2" or "GPLv2 or later", there is a significant difference. Even if I am satisfied myself it is OK, I would still want to run it past legal dept. Everyone including management needs to be on board with the idea of using GPL code, and what requirements and responsibilities that entails, if there is *any* risk that proprietary code might need to be published. I don't want to be doing a hurried rewrite because someone misunderstood, nor find myself on the block for pushing "company code" to a public repo because the GPL requires it.
Even BSD code could be problematic, if it requires notices in the product manual for example.
tldr; Open Source code can bring a big advantage in development time to proprietary products, but be very aware of all the implications first.