procesor attiny2313 ma?o pami?ci :(

Feb 07, 2012 6 Replies

Piszę program na procesor ATTINY2313 i niestety zabrakł mi kilku bajtów pamięci programu na dokończenie zadania. Czy jest jakiś odpowiednik tego procesora, który ma też 20 nóżek i trochę więcej pamięci programu niż 2kB dostępne w ATTINY2313?


Zbin snipped-for-privacy@wp.pl napisał(a):

W jakim sensie odpowiednik? atmel.com mówi: ATtiny40 ATtiny4313 ATtiny43U ATtiny461 ATtiny461A ATtiny861 ATtiny861A ATtiny87 Pierwsza cyferka to liczba kB.

Użytkownik "Zbin" snipped-for-privacy@wp.pl napisał w wiadomości news: snipped-for-privacy@db5g2000vbb.googlegroups.com... Piszę program na procesor ATTINY2313 i niestety zabrakł mi kilku bajtów pamięci programu na dokończenie zadania. Czy jest jakiś odpowiednik tego procesora, który ma też 20 nóżek i trochę więcej pamięci programu niż 2kB dostępne w ATTINY2313?

Jeśli win-AVR to starsze wersje generowały krótszy kod...

Może prościej byłoby zoptymalizować program i spróbować upchnąć go w tej pamięci? Często przyglądając się programowi można znaleźć miejsca, w których da się uzyskać parę bajtów mniej.

Zbin pisze:

  1. Zajrzyj na
    formatting link
  2. Jesli piszesz w C pod GCC to możesz spróbować zmienić sposób optymalizacji kodu. W przypadku AVR-studio jest to gdzieś w jakiś opcjach projektu. Jeśli IDE jest inne to trzeba zmienić w parametrach wywołania kompilatora na o3 zamiast o1 czy też os (jeśli dobrze pamiętam).
  3. Jeśli piszesz w assemblerze (zresztą w C również) to przejrzyj kod - może da się zaoszczędzić ciut miejsca.

pzdr - BS

Dziękuję wszystkim (poniżej również) za porady. Program piszę w asemblerze na Attiny2313 ale ciagłe dodawanie nowych funkcjonalności wydłuża kod niemiłosirnie. Odzyskałem już co się dało. Wszystkie powtarzające się fragmenty kodu zamieniłem na podprogramy, mniej ważne funkcjonalności usunąłem. Teraz zostaje zmiana procka na ATTINY4313. Z tego co się doczytałem to jest ona odpowiednikiem Attiny 2313A i różni sie tylko ilościa pamięci. Wydaje mi sie również, że pomiędzy Attiny2313, a Attiny2313A nie ma żadnych różnic poza minimalnym napięciem zasilania (chyba że się mylę). Wychodzi więc na to, że program powinien działć po zmianie procesora z 2313 na 4313. Zbyszek

Zbin snipped-for-privacy@wp.pl napisał(a):

Dlatego pytałem o zamiennik. W obrębie danej rodziny możesz łatwo wymieniać kostki, różnią się właśnie obudową, dostępną pamięcią i peryferiami, ale w sumie to ciągle ten sam procek. Przesiadka z "mniejszego" na "większy" jest zwykle bardzo prosta. Zmiana z 2313 na 4313 sprowadzi się pewnie tylko do zmiany w ustawieniach kompilatora. ZTCP wersje A są troszkę nowocześniejsze, pozostając binarnie zgodne. Podobnie wersje P mające obniżony pobór prądu (pico power).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required