Но один файл — это ни о чём. Туда пихать затуднительно что-то большее. Потому попробуем скомпилить проект из нескольких файлов.

Исходники я перенёс в папку source, чтоб оно не мешалось с другими папками. Там же организована такая структура:
main.c
drivers.c
drivers.h
drivers/gpio.c
drivers/gpio.h


читать дальше