Problém s kompilací programu nf DDS generátoru na ATmega16
Moderátor: Moderátoři
- Milda134
- Příspěvky: 65
- Registrován: 11 zář 2013, 02:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
Problém s kompilací programu nf DDS generátoru na ATmega16
Mám doma tento oscilátor:
https://chinese-electronics-products-te ... ested.html
, který je funkční, ale na stránce níže je nová verze firmware
https://github.com/dev26th/avr_dds_20
při otevření souboru makefile ve winawr a pokusu o kompilaci vypíše hlášku viz obrázek níže. ve všech verzích winawr je to stejné a v AVR Studiu taktéž
starší verze fw šly bez problému, ale tady fakt nevím, soubor jsem také připojil.
Dnes bych to už neřešil, ale když už to leží doma . . .
Díky za případnou pomoc.
https://chinese-electronics-products-te ... ested.html
, který je funkční, ale na stránce níže je nová verze firmware
https://github.com/dev26th/avr_dds_20
při otevření souboru makefile ve winawr a pokusu o kompilaci vypíše hlášku viz obrázek níže. ve všech verzích winawr je to stejné a v AVR Studiu taktéž
starší verze fw šly bez problému, ale tady fakt nevím, soubor jsem také připojil.
Dnes bych to už neřešil, ale když už to leží doma . . .
Díky za případnou pomoc.
- Přílohy
-
- avr_dds_20-master.zip
- (89.8 KiB) Staženo 52 x
asi by som skúsil novší WinAVR, ten čo máš rozbehaný je z 2007 so starým gcc. Alebo skús upraviť v makefile riadok 125 zo -std=gnu99 na -std=c99 , i keď to je taký mačkopes trocha (gnu99 má znamenať c99 s gnu extensions) a napriek tomu, že je ten gnu99 svič na commandline, tak naň hádže fekál: "using gnu89".
//edit: podľa tohto changelogu majú byť inline funkcie podporované až od 4.3, vo WinAVR ti beží GCC 4.2.2, takže jednoznačne stiahni novšiu verziu, táto verzia kompilátora z 2007 ešte nemá plne implementovaný C štandard 1999.
Možno bude stačiť vymeniť iba samotný gcc toolchain, ale to radšej asi stiahni celý winavr v celku.
Novšia verzia avr-gcc by mala tiež adresovať tie neexistujúce definicie infinity
//edit: podľa tohto changelogu majú byť inline funkcie podporované až od 4.3, vo WinAVR ti beží GCC 4.2.2, takže jednoznačne stiahni novšiu verziu, táto verzia kompilátora z 2007 ešte nemá plne implementovaný C štandard 1999.
Možno bude stačiť vymeniť iba samotný gcc toolchain, ale to radšej asi stiahni celý winavr v celku.
Novšia verzia avr-gcc by mala tiež adresovať tie neexistujúce definicie infinity
- Milda134
- Příspěvky: 65
- Registrován: 11 zář 2013, 02:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
Omlouvám se ta chyba byla kvůli tomu, že jsem zkoušel starší verze a tak to přehrálo novější
ve verzi
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
stále zůstává ta chybová hláška o kterou mi jde především
Compiling C: main.c
avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main.o
main.c: In function 'pulse_updateDisplay':
main.c
error: 'INFINITY' undeclared (first use in this function)
main.c
error: (Each undeclared identifier is reported only once
main.c
error: for each function it appears in.)
main.c: In function 'pulse_onLeft':
main.c
error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onRight':
main.c
error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onStart':
main.c
error: 'INFINITY' undeclared (first use in this function)
make.exe: *** [main.o] Error 1
hledal jsem, zkoušel a nic jsem nenašel, jestli je tam nějaké kurvítko tak jsem ho nenašel
ve verzi
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
stále zůstává ta chybová hláška o kterou mi jde především
Compiling C: main.c
avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main.o
main.c: In function 'pulse_updateDisplay':
main.c
main.c
main.c
main.c: In function 'pulse_onLeft':
main.c
main.c: In function 'pulse_onRight':
main.c
main.c: In function 'pulse_onStart':
main.c
make.exe: *** [main.o] Error 1
hledal jsem, zkoušel a nic jsem nenašel, jestli je tam nějaké kurvítko tak jsem ho nenašel
Okej, to zmizli už problémy s inline. Hoď navrch do main.c, napríklad na riadok 25 za includy, nasledovné
alebo, ak to nepomôže,
a malo by to zbuildiť.
Znova, schopný C99 kompilátor takéto makro musí poznať.
Kód: Vybrat vše
#include <math.h>
Kód: Vybrat vše
#ifndef INFINITY
#define INFINITY (1.0/0.0)
#endif
Znova, schopný C99 kompilátor takéto makro musí poznať.
- Milda134
- Příspěvky: 65
- Registrován: 11 zář 2013, 02:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
Teď to v pohodě prošlo, jenom to nevleze do ATmega16, bin má 121,2%
oba ty zápisy fungovaly téměř stejně. Rozdíl byl v desetinkách procenta zaplnění paměti
oba ty zápisy fungovaly téměř stejně. Rozdíl byl v desetinkách procenta zaplnění paměti
Naposledy upravil(a) Milda134 dne 07 říj 2022, 16:14, celkem upraveno 1 x.
Jo, profesná deformácia. Stále viac tolerujem slová ako "thready" či "interfejs" než ako "vlákna", "nite" či nebodaj dokonca "medzitvárie", dybagovanie ako "odchrobákovanie", shell ako "škrupina" a tak ďalej podobným štýlom.
Výnimka 0x01DEADBEEF - neplatný popisovač vlákna. A babo raď, čo sa tým myslelo, keďže je to v slovenčine mišmaš a technik si musí invalid thread handle domyslieť.
No a ešte tí, ktorí puritánsky volajú po Jazyku Symbolických Adries, pretože asembler je predsa nástroj, ktorý to tam prevedie...
@Milda, čas zaviesť kód do nejakej namapovanej ROM![Smile :)](./images/smilies/icon_smile.gif)
Výnimka 0x01DEADBEEF - neplatný popisovač vlákna. A babo raď, čo sa tým myslelo, keďže je to v slovenčine mišmaš a technik si musí invalid thread handle domyslieť.
No a ešte tí, ktorí puritánsky volajú po Jazyku Symbolických Adries, pretože asembler je predsa nástroj, ktorý to tam prevedie...
@Milda, čas zaviesť kód do nejakej namapovanej ROM
![Smile :)](./images/smilies/icon_smile.gif)
Naposledy upravil(a) nixdorf dne 07 říj 2022, 16:20, celkem upraveno 1 x.