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