Por supuesto que se puede, pero el intrincado sistema interno de archivos de Arduino lo complica bastante.
Para más inri el IDE es tan malo que no te permite saltar directamente a la definición de funciones del sistema para poder trabajar con mayor comodidad.
Lo más complicado será migrar todo lo relacionado con la configuración y uso de periféricos del micro, especialmente interrupciones y timers. Creo recordar que por el directorio Cores de Arduino está todo, con subdirectorios para cada hardware.