Problém s kompilací programu nf DDS generátoru na ATmega16
Moderátor: Moderátoři
- Milda134
- Příspěvky: 74
- Registrován: 11 zář 2013, 00:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
Problém s kompilací programu nf DDS generátoru na ATmega16
https://chinese-electronics-products-tested.blogspot.com/p/fg-050-function-generator-tested.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 167 x
//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: 74
- Registrován: 11 zář 2013, 00:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
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:1082: error: 'INFINITY' undeclared (first use in this function)
main.c:1082: error: (Each undeclared identifier is reported only once
main.c:1082: error: for each function it appears in.)
main.c: In function 'pulse_onLeft':
main.c:1096: error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onRight':
main.c:1115: error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onStart':
main.c:1138: 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
Kód: Vybrat vše
#include <math.h>alebo, ak to nepomôže,
Kód: Vybrat vše
#ifndef INFINITY
#define INFINITY (1.0/0.0)
#endif
a malo by to zbuildiť.
Znova, schopný C99 kompilátor takéto makro musí poznať.
- Milda134
- Příspěvky: 74
- Registrován: 11 zář 2013, 00:00
- Bydliště: jižně od Vyškova
- Kontaktovat uživatele:
oba ty zápisy fungovaly téměř stejně. Rozdíl byl v desetinkách procenta zaplnění paměti
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