Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmel studio 6.2.1563 brak typów.

zbyrek 11 Kwi 2015 01:38 744 5
  • #1 11 Kwi 2015 01:38
    zbyrek
    Poziom 23  

    Witam, od niedawna zacząłem naukę C dla mikrokontrolerów AVR wraz z książką Pana Tomasza, i niestety gdy próbuję odpalić, niektóre z przykładów, to kompilator nie rozpoznaje typów takich jak _Fract _Accum czy też __uint24, które to powinny być rozpoznawane przez wbudowany w Atmel Studio kompilator avr-gcc (wersja 4.8.1) w związku z tym chciałem spytać, czy komuś jeszcze przytrafił się ten problem, czy jest to wynik błędu w danej wersji Atmel Studio, czy może raczej problem występuje jedynie u mnie, równocześnie prosiłbym o ewentualne rady, co do rozwiązania problemu.

    Załączone pliki nagłówkowe:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Całości kodu nie mogę podać, ze względu na prawa autorskie, jednak nie powinien on nic wnosić w tej sytuacji.

    0 5
  • #2 11 Kwi 2015 02:15
    Wojtek75
    Poziom 23  

    Wszystkie przykłady z książek kolegi tmf są powrzechnie dostępne w internecie na stronie wydawcy (Helion). Jak wrzucisz cały konkretny przykład (albo napiszesz o który chodzi) to raczej łatwiej będzie stwierdzić co może być nie tak.

    0
  • #3 11 Kwi 2015 08:49
    tmf
    Moderator Mikrokontrolery Projektowanie

    @zbyrek 1563 to najnowsza wersja, u mnie wszystko jest ok. Pokaż cały raport z kompilacji. Być może masz w systemie jeszcze inne wersje gcc, czy może WinAVR, albo program make z innego środowiska i do kompilacji nie wywołuje ci avr-gcc z pakietu AS?

    Dodano po 4 [minuty]:

    zbyrek napisał:

    Całości kodu nie mogę podać, ze względu na prawa autorskie, jednak nie powinien on nic wnosić w tej sytuacji.


    Tak jak pisze kolega powyżej kody są publicznie dostępne, najnowsze wersje możesz pobrać też z:
    https://spaces.atmel.com/gf/project/jcmikrii/scmsvn/
    Kody do pozostałych moich książek też znajdują się w repo na Atmel Spaces:
    https://spaces.atmel.com/gf/user/tmf/?action=Projects

    0
  • #4 11 Kwi 2015 11:01
    zbyrek
    Poziom 23  

    Kod, w którym testowałem liczby stałopozycyjne:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Okazało się, że jednak kod kompilowany jest poprawnie (tak mi się wydaje), dopiero teraz zajrzałem do logu, który pokazuje build success:

    Code:
    ------ Build started: Project: FFP, Configuration: Debug AVR ------
    
    Build started.
    Project "FFP.cproj" (default targets):
    Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
    Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.2\Vs\Compiler.targets" from project "C:\Users\Zbyr!\Desktop\avr biblioteki\Przyklady\Typy\FFP\FFP\FFP.cproj" (target "Build" depends on it):
       Task "RunCompilerTask"
          Shell Utils Path C:\Program Files (x86)\Atmel\Atmel Studio 6.2\shellUtils
          C:\Program Files (x86)\Atmel\Atmel Studio 6.2\shellUtils\make.exe all -j
          Building file: .././FFP.c
          Invoking: AVR/GNU C Compiler : 4.8.1
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe"  -x c -funsigned-char -funsigned-bitfields -DDEBUG -DF_CPU=2000000UL  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega168pa -c -std=gnu99 -MD -MP -MF "FFP.d" -MT"FFP.d" -MT"FFP.o"   -o "FFP.o" ".././FFP.c"
          .././FFP.c: In function 'main':
    C:\Users\Zbyr!\Desktop\avr biblioteki\Przyklady\Typy\FFP\FFP\FFP.c(31,2): warning: unknown conversion type character 'r' in format [-Wformat=]
            sprintf(bufor, "%r", f);
            ^
    C:\Users\Zbyr!\Desktop\avr biblioteki\Przyklady\Typy\FFP\FFP\FFP.c(31,2): warning: too many arguments for format [-Wformat-extra-args]
    C:\Users\Zbyr!\Desktop\avr biblioteki\Przyklady\Typy\FFP\FFP\FFP.c(34,6): warning: variable 'res' set but not used [-Wunused-but-set-variable]
            int res=f*100;
                ^
          Finished building: .././FFP.c
          Building target: FFP.elf
          Invoking: AVR/GNU Linker : 4.8.1
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe" -o FFP.elf  FFP.o   -Wl,-Map="FFP.map" -Wl,-u,vfprintf -Wl,--start-group -Wl,-lm -Wl,-lprintf_flt  -Wl,--end-group -Wl,--gc-sections -mrelax -Wl,-section-start=.bootloader=0x2000  -Wl,-section-start=.XMEM=0x804000  -mmcu=atmega168pa -Wl,-u,vfscanf 




          Finished building target: FFP.elf
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures  "FFP.elf" "FFP.hex"
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom  --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0  --no-change-warnings -O ihex "FFP.elf" "FFP.eep" || exit 0
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "FFP.elf" > "FFP.lss"
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "FFP.elf" "FFP.srec"
          "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-size.exe" "FFP.elf"
             text      data       bss       dec       hex   filename
             4902         4         2      4908      132c   FFP.elf
       Done executing task "RunCompilerTask".
       Task "RunOutputFileVerifyTask"
                Program Memory Usage    :   4906 bytes   29,9 % Full
                Data Memory Usage       :   6 bytes   0,6 % Full
       Done executing task "RunOutputFileVerifyTask".
    Done building target "CoreBuild" in project "FFP.cproj".
    Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
    Target "Build" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.2\Vs\Avr.common.targets" from project "C:\Users\Zbyr!\Desktop\avr biblioteki\Przyklady\Typy\FFP\FFP\FFP.cproj" (entry point):
    Done building target "Build" in project "FFP.cproj".
    Done building project "FFP.cproj".

    Build succeeded.
    ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========


    Zmyliła mnie zakładka Error list, w której pojawiły się błędy i ostrzeżenia.

    Atmel studio 6.2.1563 brak typów.

    0
  • Pomocny post
    #5 11 Kwi 2015 20:19
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak, kod skompilowany jest ok, problem w tym, że sprintf z avr-libc jeszcze nie rozpoznaje nowych formatów stałopozycyjnych. Póki co obejściem są własne funkcje konwersji i molestowanie developerów, lub zabranie się za to samemu.

    0
  • #6 11 Kwi 2015 20:22
    zbyrek
    Poziom 23  

    Dziękuję, problem uważam za rozwiązany.

    0