Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

WinAVR i użycie RAM i FLASH

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:
WinAVR i użycie RAM i FLASH

Postautor: Sławek5 » 25 wrz 2006, o 06:14

Cześć.
Pisząc program kompilowany przez AVR-GCC i środowisku WinAVR (ProgrammersNotepad) po kompilacji gdzie jest podana wartość zajętej pamięci RAM i FLASH?

[ Dodano: 25-09-2006, 07:19 ]
Pytam się ponieważ włąsnie zadeklarowałem sobie talice char o wielkości 2048 bajtów i nie zgłasz błędu kompilacji. Dlaczego

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 09:35

Służy do tego celu program avr-size, trzeba dopisać kilka linijek do makefile.

Kod: Zaznacz cały

size: ${TARGET} @echo @avr-size -C --mcu=${MCU} ${TARGET}
oraz do

Kod: Zaznacz cały

all: $(TARGET) lst text eeprom
dpisać na końcu size

Kod: Zaznacz cały

all: $(TARGET) lst text eeprom size


W efekcie ukaże sie info :

Kod: Zaznacz cały

AVR Memory Usage ---------------- Device: atmega16 Program: 4038 bytes (24.6% Full) (.text + .data + .bootloader) Data: 4 bytes (0.4% Full) (.data + .bss + .noinit)

PS. Kompilator błedu nie zgłosi...
Ostatnio zmieniony 25 wrz 2006, o 09:52 przez radzio, łącznie zmieniany 1 raz.

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 10:08

A w którym miejscu.

Chciałem wstawić plik Makefile ale jest za długi.
Czy wynik pojawi się w pliku dodatkowym, czy gdzie szukać wyników.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 10:17

W załączniku zrzut ekranu dla projektu "largedemo" z katalogu Examples WinAVR.

[ Dodano: 25-09-2006, 11:18 ]
PS. Czy warto męczyć się z PN skoro AVR Studio bezproblemowo współpracuje z WinAVR?
Załączniki
winavr.png

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 10:31

Nigdy nie próbowałem powiązac tego. Po prostu nie wiem jak to zrobić.


A wracając do użycia ramu to ten wynik pojawi mi się w jakimś pliku czy zostanie wyświetlony a dole w okiemku?

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 10:35

Wyświetlony zostanie w okienku Output (widać to na screenie). Ale uważaj... użycie ramu pokazane będzie dla zmiennych globalnych. Zmienne lokalne nie bedą wskazywane.


Powiązanie AVR Studio z WinAVR sprowadza sie w zasadzie do zainstalowania obydwu...

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 13:32

Skompilowałem ten przykładowy plik largedemo.c

Nie znalazłem rzadnej informacji o zajętości pamięci.
W okienku też mi się nie pojawiła. Co jest nie tak.
A czy jest gdzieś jakis opis połączenia WinAVR z AvrStudio.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 13:38

Spróbuj z makefile z załącznika.

AVR Studio w wersji > 4.12 SP2 nie trzeba konfigurować do współpracy z WinAVR. Po prostu instalujesz obydwa programy, włączasz AVR Studio i tworzysz nowy projekt (kreatorem, jak to pokazane jest tu : http://mikrokontrolery.net/avr_avrstudio.htm )
Załączniki
Makefile.rar
(937Bajtów)Pobrany 387 razy

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 13:52

No to działa o co tu chodzi.
w załączniku podsyłam mój plik Makefile, chciałbym wiedzieć ile ten projekt zajmuje miejsca, jak możesz to podpowiedz mi w którym miejscu mam umieścić te linię.
Załączniki
Makefile.zip
(596Bajtów)Pobrany 377 razy

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 13:56

W Twoim przypadku to bedzie tak (od wiersza 20) :

Kod: Zaznacz cały

all: $(PRG).elf lst text size size:${PRG} @echo @avr-size -C --mcu=${MCU_TARGET} ${PRG}.elf

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 14:04

I wyskakuje błąd

Kod: Zaznacz cały

Makefile:24: *** missing separator. Stop.

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 14:13

Linie @echo i @avr-size muszą być wcięte jednym tabem (nie mogą lezeć w pierwszej kolumnie)

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 15:41

Uruhomiłem AvrStudio z nowym projektem w C i .. udało sie, jestem pod wrażeniem.

Mam tylko pytanie, gdzie ustawić typ procesora, częstotliwośc krawrcu i inne rzeczy które zwykle ustawiało się w Makefile i co z takimi poleceniami jak clean i make

Wracajc jeszcze do fragmentu określającego wiekośc FLASH i RAM. Czy ma to znaczenie w którym miejscu wstawie te Twoje linijki?

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 15:46

Mam tylko pytanie, gdzie ustawić typ procesora, częstotliwośc krawrcu i inne rzeczy które zwykle ustawiało się w Makefile i co z takimi poleceniami jak clean i make
Project -> Configuration Options.
Clean jest w menu Build.
Wracajc jeszcze do fragmentu określającego wiekośc FLASH i RAM. Czy ma to znaczenie w którym miejscu wstawie te Twoje linijki?
Nie powinno. Ważne tylko żeby na końcu linijki 'all' : dopisać size

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 16:39

Przy kompilacji w AvrStudio też nie podaje rozmiarów pamieci, czyli tez nie ma mozliwaści sprawdzenia

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 16:45

Wybierasz opcję "Compile" czy "Build"? W pierwszym przypadku nie pokaże (ale też nie utworzy pliku wynikowego) natomiast w drugim pokazuje.

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 25 wrz 2006, o 18:21

Po komendzie Build dostaje w okienku

Kod: Zaznacz cały

Build started 25.9.2006 at 19:18:43 avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -O0 -Wp,-M,-MP,-MT,main.o,-MF,dep/main.o.d -c ../../main.c avr-gcc -mmcu=atmega8 main.o -o test_studio.elf avr-objcopy -O ihex -R .eeprom test_studio.elf test_studio.hex avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex test_studio.elf test_studio.eep Build succeeded with 0 Warnings...

radzio
Moderator
Moderator
Posty:967
Rejestracja:13 maja 2003, o 10:33
Lokalizacja:Sosnowiec
Kontaktowanie:

Postautor: radzio » 25 wrz 2006, o 21:28

Dołączasz do projektu swój makefile? Ja ten kod wyciągłem z makefile który AVR Studio dołącza automatycznie do każdego projektu...

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości