Arduino - 32 bitu promenna ze 4 byte
Miroslav Mraz
mrazik na volny.cz
Pátek Prosinec 20 09:45:41 CET 2024
Psal jsem, že ne každý překladač to umí. Na AVR se tomu moc nedivte,
tohle je určeno pro dospělé MCU, které mají jednotný adresní prostor. Já
jsem včera zprovoznil i to TABLE pro AVR, patlal jsem se s tím celé
odpoledne protože už to dlouho nedělám.
Nakonec vyhověla kombinace avr-gcc 5.4.0 (prastará, ale já fakt AVR
dělat nechci) a clang 18.0.0. Starší clang - smůla. Takže vidíte, že je
to celé dost vachrlaté a napsat generátor té look-up tabulky v pythonu
je daleko míň práce a je to čistší.
Největší problém je dostat tu tabulku do flash už při překladu. Tohle
gcc nedokáže ani na dospělém procesoru, proto clang. Na AVR je ještě
problém v tom, že překladač C++ nezná adresní prostor __flash, který jde
pro čisté C normálně použít. Zřejmě to souvisí s tím, že v C++ se
používají často odkazy a s tím lze očekávat nesnáze.
Podle toho co píšete, tak to Microchip Studio prostě není určeno pro
moderní C++. Ten příklad s ellipsis přeložím i s tím prastarým avr-g++
se standardem C++11. To je divné.
Mrazík
On 19. 12. 24 23:53, Pavel Hudeček wrote:
> Tak mě to teda dře trochu víc. Červený D_PI, sincos a i_round jsem si
> vyřešil, ale co dělat s červeným TABLE, netuším.
> Error 'TABLE' does not name a type
>
> (C++ v Microchip Studiu, AVR64DD32)
>
> A podobně je to s těma ... Při libovolné snaze o použití v templatu
> červená.
>
> PH
Další informace o konferenci Hw-list