Firmware can be the most difficult part of the project and usually the most time consuming.
Bad firmware can mean trouble. Let my many years experience with coding, debugging and maintaining firmware in c and assemble work for you. Use existing code you may have or make a fresh start with new code. Experience also with revision control systems like RCS and SVN , coding standards and code organization as well as integrating code from third party code generators like EasyGui for LCD graphics , IAR's Visual State or uCOS. I have worked with many IDE's and editors and development environments.
I have more than 20 years experience in programming , learnt many languages over the years and understand what it takes to write robust reliable firmware.