Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2026, o 09:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 15 lut 2017, o 16:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Środowisko Eclipse Neon, Atmel Toolchain 3.5.4, raczej poprawnie skonfigurowane ponieważ inne projekty kompilują się poprawnie.
Natrafiłem na przeszkodę, z którą nie mogę sobie poradzić.
Taki oto prosty kod, wykorzystujący funkcję wbudowaną w AVR-GCC itoa()

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Przy próbie komplikacji dla maluśkich Attiny5 czy Attiny10, kompilator zatrzymuje się na błędzie:
main.c:(.text.startup.main+0xe): undefined reference to `__itoa_ncheck'
Cały zapis z konsoli:
Kod:
15:52:58 **** Build of configuration Release for project Attiny5 ****
make all
'Building file: ../main.c'
'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=attiny5 -DF_CPU=8000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
'Finished building: ../main.c'
' '
'Building target: Attiny5.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,Attiny5.map -mmcu=attiny5 -o "Attiny5.elf"  ./main.o   
./main.o: In function `main':
main.c:(.text.startup.main+0xe): undefined reference to `__itoa_ncheck'
collect2.exe: error: ld returned 1 exit status
make: *** [Attiny5.elf] Błąd 1

15:52:58 Build Finished (took 450ms)


Występujący błąd prowadzi do biblioteki stdlib.h, a tutaj nie za bardo wiem co może być problemem.
Co ciekawe, dla testu, skompilowałem ten sam kod dla Attiny13 i ten przechodzi cały proces bez błędów.

Proszę o podpowiedź co może być tutaj problemem, gdzie można szukać rozwiązania. Będę wdzięczny za każdą wskazówkę.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2017, o 18:53 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Sprawdziłem u mnie jest tak samo (najnowszy toolchain Atmela).
Powód? Ile pamięci RAM mają te Tiny (dziwne, że w ogóle obsługuje je gcc)?
Prawdopodobnie funkcje te: "x"toa nie są zamieszczone w standardowej bibliotece gcc dla tych kontrolerów.

ps.
powinni (np. Atmel) jednak dać gdzieś o tym wzmiankę ( a nie spotkałem się).


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2017, o 08:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 448
Lokalizacja: DKL
Pomógł: 53

Dziękuję za odpowiedzi.

@krish, faktycznie chyba funkcje (x)toa nie są dostępne w tych maleńkich procesorach. A Mają one tylko 32 bajty RAM.

@Jazio, dzięki za tą funkcję, po lekkim jej tuningu do potrzebnego mi tylko uint8_t w, działa jak należy.

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO