Persze, csak amikor a DMA-val behozott adathalmazodon azért mész végig minden második mintát feldolgozva, mert nem fér bele az, hogy minden mintát feldolgozzál, akkor nem az lesz a legnagyobb problémád, hogy mit fog írni az UART-ra meg I2C-re, hanem az, hogy nem lehet általános a DMA IT handler, amelyben struktúrából kiveszi a tényleges handler címét, aztán meghívja azt, vagy jó, esetleg ezt még benne hagyod, de eldobod, azt, hogy bármit átadj neki, mert nem kell, ne vigye az időt.
Egyáltalán nem az a probléma, hogy hogyan nézne ki egy printf("Hello world!\n");. És ahogy mondod, a bootloader-t is meg kell írni olyanra, amilyet helyesnek gondolsz.