Programování - Projekt a jeho adresářová struktura

Ahoj všem,
rád bych požádal zkušenější o radu. Když píšete větší program pro MCU v jazyce C, jak si rozvrhujete adresářovou strukturu projektu? Zatím projekt píšu tak, že všechny zdrojové *.c a hlavičkové soubory *.h mám chaoticky v jednom adresáři bez podadresářů. Soubory samotného aplikačního programu, knihoven pro MCU a driverů jsou tak smíchané v jednom adresáři. Je to nepřehledné, ale zase nemám problém s tím, že by kompilátor neviděl nějaký hlavičkový soubor.
Jak tak procházím jiné projekty, tak koukám, že jsou většinou zdrojové soubory projektu rozděleny do podadresářů Inc a Src a soubory jednotlivých driverů nebo RTOS mají vlastní podadresáře a v nich opět tématicky rozdělené soubory do podadresářů a přesto ve zdojových souborech je jen #include"soubor.h" bez uvedení cesty.
Jaký způsob organizace zdrojových souborů volíte? Jak nakonfigurovat projekt třeba v EmBlocks nebo CrossStudiu aby kompilátor viděl všechny hlavičkové soubory i v jiných adresářích než je kompilovaný *.c soubor?
Budu vděčný, pokud mě nakopnete správným směrem.

Sice se často používá rozdělení H a C do zvláštních adresářů, ale raději je nechávám spolu - obvykle je potřebuji používat současně a nechce se mi každý hledat jinde. Rozděluji tématicky, např. složka “displej” obsahuje obsluhu displeje (C i H), “main” jsou hlavní soubory, “com” komunikace atd. Soubor H se vyhledává relativně k aktuálnímu souboru, proto nemusí být cesta když je ve stejné složce.

Obvykle u projektů neincluduji do C každý H zvlášť, ale mám jeden globální include.h, ve kterém jsou zahrnuté všechny H, do C pak uvádím jen odkaz na tento společný H. Překlad je sice trochu pomalejší, ale to pohodlí nemuset stále všude řešit které H použít a v jakém pořadí, to mi za to rozhodně stojí.