Elszállt a tegnapi válaszom...
Az Arduino C++ nylevet használ, amit AVR-GCC-vel fordít le a mikrokontrollerre. Annyi extra van benne, hogy raktak mögé egy (egyre csak hízó), könyvtárstruktúrát a különféle perifériák és modulok programozásához. Ezt aztán portolták több platformra is (pl egyes ARM MCU-k), de PIC-ről nem tudok.
Az MPU6050 az egy külön mikrokontroller (Digital Motion Processor), amit fel kell programozni, hogy működjön például a szenzor fúzió. Nincs hozzá nyilvános API, a programot bináris objektumként kapod.
"The MPU-6050 devices combine a 3-axis gyroscope and a 3-axis accelerometer on the same silicon die, together with an onboard Digital Motion Processor"
https://www.invensense.com/products/mot ... /mpu-6050/
Ebben az Arduino driver fájlban például jól látszik az DMP binárisa (133.sortól):
https://github.com/jrowberg/i2cdevlib/b ... onApps20.h
Nincs benne flash, így a programot az Arduino-ban kell tárolni, és minden induláskor feltölteni.