RTV forum PL | NewsGroups PL

Wyjaśnienie nieaktywnej pamięci na AT89C2051 oraz zarządzanie danymi z SDCC

Pamięć at89c2051

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Wyjaśnienie nieaktywnej pamięci na AT89C2051 oraz zarządzanie danymi z SDCC

Goto page Previous  1, 2

Marek
Guest

Fri Mar 24, 2017 9:43 am   



On Fri, 24 Mar 2017 07:05:03 +0000 (UTC), gof@somewhere.invalid (Adam
Wysocki) wrote:
Quote:
Doczytałem resztę wątku, odszczekuję Smile Nie wiedziałem że SDCC robi
takie
sztuczki.

Już coraz więcej kompilatorów wychodzi z tej paranoi odróżniania
wskaźników ram/flash. XC8 też już odpuszcza ten problem programiscie
i sam wew. rozwiązuje ten problem.

--
Marek

Adam Wysocki
Guest

Fri Mar 24, 2017 12:14 pm   



Marek <fake@fakeemail.com> wrote:

Quote:
Doczytałem resztę wątku, odszczekuję Smile Nie wiedziałem że SDCC robi
takie sztuczki.

Już coraz więcej kompilatorów wychodzi z tej paranoi odróżniania
wskaźników ram/flash. XC8 też już odpuszcza ten problem programiscie
i sam wew. rozwiązuje ten problem.

Jak dla mnie to dobrze - po to są języki wysokopoziomowe, żeby ukrywać
szczegóły architektury platformy. Z drugiej strony nie chciałbym, żeby
było to obowiązkowe, bo czasem zależy nam jednak na tym, żeby kod był
tak szybki, jak to możliwe...

--
http://www.chmurka.net/

J.F.
Guest

Fri Mar 24, 2017 6:14 pm   



Użytkownik "Marek" napisał w wiadomości grup
dyskusyjnych:almarsoft.8137914596496756860@news.neostrada.pl...
On Fri, 24 Mar 2017 07:05:03 +0000 (UTC), gof@somewhere.invalid (Adam
Wysocki) wrote:
Quote:
Doczytałem resztę wątku, odszczekuję Smile Nie wiedziałem że SDCC robi
takie
sztuczki.

Już coraz więcej kompilatorów wychodzi z tej paranoi odróżniania
wskaźników ram/flash. XC8 też już odpuszcza ten problem programiscie
i sam wew. rozwiązuje ten problem.

Ten problem rozwiazuje, a rodzi nowe.

Potem sie okazuje program jest wolny, oraz wielki, w pamieci sie nie
miesci.

Jesli chodzi o 8051, to najlepiej po prostu o nim zapomniec.
Byl, teraz jest przestarzaly, do C sie nie nadaje :-)

J.

Atlantis
Guest

Sat Mar 25, 2017 9:53 am   



W dniu 2017-03-24 o 18:14, J.F. pisze:

Quote:
Jesli chodzi o 8051, to najlepiej po prostu o nim zapomniec.
Byl, teraz jest przestarzaly, do C sie nie nadaje Smile

Nie przesadzajmy. Wink Attiny posiadające mniej zasobów programuje się w C.

Kluczową kwestią są zastosowania. Kiedyś lepszych mikrokontrolerów
zwyczajnie nie było. Jeśli nie chciało się podpinać zewnętrznych pamięci
RAM i EPROM przy większych projektach, trzeba było wszystko ręcznie
optymalizować tak bardzo, jak to tylko możliwe.

Gdybym potrzebował więcej zasobów, wykorzystałbym nowocześniejszy
mikrokontroler. Ponieważ jednak już zetknąłem się z tą platformą
(napisanie nowego wsadu do instniejącego urządzenia) i mam prosty
programator, a w szufladzie poniewiera się parę sztuk starych AT89C51 i
AT89C2051 pewnie wykorzystam je w jakichś prostszych projektach. Właśnie
takich, które wymagałyby Attiny.

Nawet konieczność wyjmowania MCU z podstawki celem jego zaprogramowania
nie jest jakoś szczególne uciążliwa przy tak małych ilościach kodu.

Marek
Guest

Sat Mar 25, 2017 10:17 am   



On Sat, 25 Mar 2017 09:53:33 +0100, Atlantis <marekw1986NOSPAM@wp.pl>
wrote:
Quote:
Nie przesadzajmy. Wink Attiny posiadające mniej zasobów programuje
się w C.


J.F. chodziło zapewne o to, że takie skamieniałości nie mają
architektury przyjaznej C. Były projektowane do programowania w
asamblerze. Robienie kompilatora w C do takich archtektur jest
trochę na siłę, bo efekt kompilacji często nie będzie
zoptymalizowany.

--
Marek

Atlantis
Guest

Sat Mar 25, 2017 11:19 am   



W dniu 2017-03-25 o 10:17, Marek pisze:

Quote:
J.F. chodziło zapewne o to, że takie skamieniałości nie mają
architektury przyjaznej C. Były projektowane do programowania w
asamblerze. Robienie kompilatora w C do takich archtektur jest trochę
na siłę, bo efekt kompilacji często nie będzie zoptymalizowany.

Nie zmienia to faktu, że przy małych projektach ten argument nie ma
wielkiego znaczenia. Do dużych użyję zupełnie innego MCU, tudzież
jakiegoś Arduino albo nawet Raspberry Pi.

A co do optymalizacji, to darmowe wersje kompilatorów XC8/XC32 też mają
ograniczone możliwości w zakresie generowania najbardziej optymalnego
kodu. Wink

Grzegorz Niemirowski
Guest

Sat Mar 25, 2017 4:52 pm   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
Nie zmienia to faktu, że przy małych projektach ten argument nie ma
wielkiego znaczenia. Do dużych użyję zupełnie innego MCU, tudzież
jakiegoś Arduino albo nawet Raspberry Pi.
A co do optymalizacji, to darmowe wersje kompilatorów XC8/XC32 też mają
ograniczone możliwości w zakresie generowania najbardziej optymalnego
kodu. Wink

Chodzi o to, że nowoczesność nie polega (lub nie tylko polega) na ilości
peryferiów, szybkości czy rozmiarze pamięci. Polega też na braku potrzeby
rozwiązywania problemów nieznanych gdzie indziej. Jak potrzebujemy prostego
MCU, to bierzemy proste nowoczesne MCU, a nie starocia. I dlatego właśnie
sięgamy po przywołane ATtiny, a nie n-te wcielenie '51.

--
Grzegorz Niemirowski
http://www.grzegorz.net/

Atlantis
Guest

Mon Mar 27, 2017 6:27 am   



On 25.03.2017 16:52, Grzegorz Niemirowski wrote:

Quote:
Chodzi o to, że nowoczesność nie polega (lub nie tylko polega) na ilości
peryferiów, szybkości czy rozmiarze pamięci. Polega też na braku
potrzeby rozwiązywania problemów nieznanych gdzie indziej. Jak

Jak na razie nie natknąłem się na jakieś poważniejsze problemy z
kategorii "kompilator sobie z tym nie poradzi, ten fragment trzeba
napisać w asemblerze". Były to głównie kwestie związane ze specyfiką
platformy i drobnymi różnicami w obsłudze peryferiów, na jakie można się
natknąć przy pierwszym kontakcie z dowolną nową rodziną MCU (pierwszy
przykład z brzegu - odwrócona w stosunku do AVR-ów konwencja ustawiania
kierunku pinów w PIC-ach).


Quote:
potrzebujemy prostego MCU, to bierzemy proste nowoczesne MCU, a nie
starocia. I dlatego właśnie sięgamy po przywołane ATtiny, a nie n-te
wcielenie '51.

To fakt, jednak wygląda na to, że do prostego amatorskiego projektu cały
czas się nadają.
A takie AVR-y (zwłaszcza wcześniejsze, podstawowe modele) wcale nie są
już takie nowoczesne. :)

BTW rodzina 8051 może i została stworzona z myślą o programowaniu w
asemblerze, jednak całe mnóstwo projektów powstawało w BASCOM-ie.

Alojzy
Guest

Mon Mar 27, 2017 12:03 pm   



Użytkownik "Atlantis":
Quote:
Chwilę, a to przypadkiem nie jest tak. że jeśli ustawię 0, to tam jest
dosłownie 0 - pin jest na poziomie masy i nawet jeśli podłączyłbym
zewnętrznego pull-upa, to i tak po stronie pinu będzie on na potencjale
masy i próba odczytania czegokolwiek da zawsze 0.

Tak, jak wpiszesz 0 to będzie stan niski.

Quote:
Natomiast jeśli wpiszę 1, to włącza się słaby, wewnętrzny pull-up. Przy
odczycie normalnie będzie zwracało jedynkę - chyba, że coś z zewnątrz
zewrze pin z masą - wtedy będzie zero.

Tak, ale wpisałeś 0 i oczekujesz, że na TXD będą jakieś dane, a przecież
masz tam stan niski.

Alojzy

Alojzy
Guest

Mon Mar 27, 2017 12:17 pm   



Użytkownik "Grzegorz Niemirowski" napisał:
Quote:
rozwiązywania problemów nieznanych gdzie indziej. Jak potrzebujemy prostego
MCU, to bierzemy proste nowoczesne MCU, a nie starocia. I dlatego właśnie
sięgamy po przywołane ATtiny, a nie n-te wcielenie '51.

Typowa miejska legenda tej grupy. Architektura 8051 na pewno nie jest
najlepsza, ale znacznie bardziej klarowna niż wynalazku AVR. Asemblera
(nawet na poziomie długości cykli rozkazów) można nauczyć się w 1 dzień, a i
C jest całkiem dobre - Keil. Może dlatego do dzisiaj można kupić coś na
bazie 8051 (prawie 40 lat), a i pewnie za 10 lat się uda, ciekawe jak to
będzie z AVR.

Alojzy

J.F.
Guest

Mon Mar 27, 2017 3:48 pm   



Użytkownik "Alojzy" napisał w wiadomości grup
dyskusyjnych:58d902d0$0$15196$65785112@news.neostrada.pl...
Użytkownik "Grzegorz Niemirowski" napisał:
Quote:
rozwiązywania problemów nieznanych gdzie indziej. Jak potrzebujemy
prostego MCU, to bierzemy proste nowoczesne MCU, a nie starocia. I
dlatego właśnie sięgamy po przywołane ATtiny, a nie n-te wcielenie
'51.

Typowa miejska legenda tej grupy. Architektura 8051 na pewno nie jest
najlepsza, ale znacznie bardziej klarowna niż wynalazku AVR.
Asemblera

Czy taka klarowna ... widzisz ile niuansow wyszlo w tym jednym watku.

Quote:
(nawet na poziomie długości cykli rozkazów) można nauczyć się w 1
dzień, a i

mialbym pewne watpliwosci ... lepiej zarezerwowac 2 dni :-)

Quote:
C jest całkiem dobre - Keil.

No coz, o ile ta architektura ... w assemblerze mozna rzec - jest jaka
jest,
to IMO w C stanowi powazny problem.
Mozna wskazniki rozwiazac jak Keil ... ale to z kolei jest narzut od
samego poczatku.
Kiepska wydajnosc, albo dziwne ograniczenia - wybieraj sam ...
poprosze o inny procesor :-)

Quote:
Może dlatego do dzisiaj można kupić coś na bazie 8051 (prawie 40
lat), a i pewnie za 10 lat się uda, ciekawe jak to będzie z AVR.

No coz, 51 byla robiona od lat, a AVR ma jednego dostawce.

Ale ... kto jeszcze 8051 robi, czy jakiegos niezbyt odleglego klona ?

J.

Marek
Guest

Mon Mar 27, 2017 4:11 pm   



On Mon, 27 Mar 2017 17:48:28 +0200, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Ale ... kto jeszcze 8051 robi, czy jakiegos niezbyt odleglego klona
?


Wszyscy Chinscy producenci półprzewodników do własnych chińskich
marek. Tam jest tego zalew, wszelka automatyka jest na klonach 51.
Mcu avr czy pic chętnie są stosowane tylko przez zachodnie marki.

--
Marek

Goto page Previous  1, 2

elektroda NewsGroups Forum Index - Elektronika Polska - Wyjaśnienie nieaktywnej pamięci na AT89C2051 oraz zarządzanie danymi z SDCC

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map