Stránka 1 z 1

Chyba při kompilaci *vyřešeno*

Napsal: 20 črc 2019, 15:12
od hafca
Chtěl jsem si postavit detektor blesků s AS3935. Při kompilaci mi to hází chybu
uvod_logo.c:3:9: error: variable 'uvod_logo' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
uint8_t uvod_logo[] PROGMEM={

Může mi někdo zkušenější poradit, jak to opravit?

Napsal: 20 črc 2019, 15:23
od Hill
Zkus deklarovat "uvod_logo" jako konstantu a vlož do ní adresu v paměti, kde je logo.

Napsal: 20 črc 2019, 15:32
od hafca
Zkoušel jsem to, ale Arduino moc neumím a výsledek tomu odpovídá. Víc chyb než bez úprav. :(

Napsal: 21 črc 2019, 10:05
od frpr666
Podívej se do dokumentace k avr-libc.
Tam je příklad jak nakládat s makrem PROGMEM.
avr-libc-user-manual.pdf
Podle mě je možné, že ti v hranatých závorkách chybí velikost pole. Kompilátor neví, jakou velikost flash paměti alokovat.

Napsal: 21 črc 2019, 10:23
od lesana87
Tak překladač hlásí, co je tam za chybu, má to být definované jako konstanta, chybí tam const.

Kód: Vybrat vše

const uint8_t uvod_logo[] PROGMEM = { 

Napsal: 21 črc 2019, 10:48
od hafca
To bylo první, co jsem zkusil. Ale jak jsem psal, jen víc chyb.

Napsal: 21 črc 2019, 11:13
od lesana87
Ta chyba, co jsi sem vložil, je chybějící const, pokud ti to pak hlásí další chyby (třeba že do té konstanty zapisuješ), tak tam máš asi další chyby, ale ty se z té jedné chybové hlášky nevyčtou. Takže buď sem vložíš celý program nebo budeš muset počkat na někoho s věšteckou koulí.

Napsal: 21 črc 2019, 11:20
od hafca
Kouli netřeba, programy jsou tady:
http://hafca.h.sweb.cz/Storm/Lightning_Detector.ino
a
http://hafca.h.sweb.cz/Storm/uvod_logo.c

Edit
Asi těch chyb tam bude víc. Zkusil jsem vyřadit načítání toho loga a objevily se další chyby. Nebo to dělám blbě. :(

Napsal: 21 črc 2019, 20:34
od frpr666
Nezbývá než program rozdělit na menší části a hledat, kde je chyba.
Nevím jak teď, ale dříve se vyžadovalo pro přidávání vlastního .h souboru do projektu arduina použít direktiva:
extern "C"
{}
Aby kompilátor nějak věděl, že v onom modulu je kód napsaný v C. Viz. URL:
https://stackoverflow.com/questions/288 ... in-arduino

Napsal: 22 črc 2019, 14:21
od hafca
Po velkém bádání a hledání se vše v dobré obrátilo. Chyba byla v jedné knihovně, konkrétně v Nokia-5110-LCD. Zkusil jsem jinou verzi a kompilace proběhla bez chyb.
Děkuji všem za pomoc hafca

Napsal: 22 črc 2019, 23:34
od Celeron
Jo, v těch Hajduríno knihovnách je docela bordel, taky jsem se s tím setkal. Stejnej název, dokonce stejná dýlka a podobný chyby co ti to psalo. Asi nesouhlas definic.