Goto page Previous 1, 2, 3, 4, 5, 6 Next
Zbych
Guest
Sun Nov 15, 2015 12:56 pm
On 15.11.2015 12:30, Zbych wrote:
Quote:
On 15.11.2015 11:14, Marek wrote:
i sprzętowym stosie?
W czym to przeszkadza, skoro on jest tylko używany do call/return a
kompilator i tak używa własny stos, którego wielkość można dowolnie
ustalać? Po za tym są "shadowed registers", które sprzętowo wspomagają
zachowywanie/odtwarzanie rejestrów przy obsłudze przerwań.
Sprzętowy stos przeszkadza w przełączaniu wątków.
Ile jest zestawów "shadow registers"? Po jednym dla każdego wektora
przerwania? Bo dokumentacja microchipa jest jakoś skąpa w tym zakresie.
Znalazłem odpowiedź, zestaw jest jeden:
Shadow registers can only be used with high priority interrupts
Marek
Guest
Sun Nov 15, 2015 1:17 pm
On Sun, 15 Nov 2015 12:30:49 +0100, Zbych <zbych@onet.pl> wrote:
Quote:
Sprzętowy stos przeszkadza w przełączaniu wątków.
Bosh, jakie wątki, mówimy o prostej 8 bitowej architekturze.
Quote:
8-bitowy procek nie oznacza 8-bitowej przestrzeni adresowej. Skąd
ten
pomysł?
Wow, Atmega ma 16 bitowe rejestry ogólnego przeznaczenia (nie chodzi
o rejestr PC)?
Quote:
Normalnie, adres jest 16-bitowy (albo dłuższy).
Pytanie jak wyżej.
Quote:
PICC-18 allows RAM objects of any size to be declared, though some
limitations exist that require balancing objects between C source
files
in certain cases. C18 does not support RAM objects larger than 256
bytes
by default; creating such objects requires editing linker control
files
and adding pragmas to the C source which include hard-coded
variable
addresses. These objects can only be accessed through pointers, not
directly.
Moment, domyślnie przyjąłem, że mówisz o dużych tablicach we flash,
bo jeśli ktoś chce używać duże tablice w ram na tak małym mcu, to
przepraszam ale wybrał złe narządzie do realizacji swoich celów (co
jest nagminne).
Fakt, w przypadku ram jest tak jak opisujesz, natomiast nie widzę w
tym problemu o ile nie próbuje się wykorzystywać niekompatybilnego z
tym kodu.
--
Marek
Marek
Guest
Sun Nov 15, 2015 1:20 pm
On Sun, 15 Nov 2015 12:56:27 +0100, Zbych <zbych@onet.pl> wrote:
[quote]Shadow registers can only be used with high priority interrupts
J.F.
Guest
Sun Nov 15, 2015 1:40 pm
Dnia Sun, 15 Nov 2015 13:20:34 +0100, Marek napisał(a):
[quote]On Sun, 15 Nov 2015 12:56:27 +0100, Zbych <zbych@onet.pl> wrote:
Shadow registers can only be used with high priority interrupts
AlexY
Guest
Sun Nov 15, 2015 2:11 pm
Marek pisze:
[..]
Quote:
Moment, domyślnie przyjąłem, że mówisz o dużych tablicach we flash, bo
jeśli ktoś chce używać duże tablice w ram na tak małym mcu, to
przepraszam ale wybrał złe narządzie do realizacji swoich celów (co
jest nagminne).
Dlaczego złe narzędzie? Jeśli mam w kości dostępny 1 czy 2kB to chcę
mieć swobodę jego użycia a nie ograniczenia.
Dostałem w prezencie szynę nowych PICów (16F877), ucieszyłem się
kombinując co ja z nich nie wystrugam, ale jak zacząłem się wgryzać w
temat to mi się odechciało po napisaniu może 1/10 kodu, wcześniej
robiłem na *51, teraz dostałem trochę atmeg, już widzę że to będzie to,
właśnie strugam do nich prymitywny programator.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
Marek
Guest
Sun Nov 15, 2015 2:17 pm
On Sun, 15 Nov 2015 13:11:29 +0000, AlexY <alexy@irc.pl> wrote:
Quote:
Dostałem w prezencie szynę nowych PICów (16F877), ucieszyłem się
Daj sobie spokój z 16F.
--
Marek
Marek
Guest
Sun Nov 15, 2015 2:19 pm
On Sun, 15 Nov 2015 13:40:18 +0100, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Ale w takim procku mialbys jeszcze wiecej rejestrow do zapamietania
Albo podobny zestaw shadow
Argument typu "a Porshe więcej pali".
Nic nie muszę pamiętać, to problem kompilatora.
--
Marek
Zbych
Guest
Sun Nov 15, 2015 4:18 pm
On 15.11.2015 13:17, Marek wrote:
Quote:
On Sun, 15 Nov 2015 12:30:49 +0100, Zbych <zbych@onet.pl> wrote:
Sprzętowy stos przeszkadza w przełączaniu wątków.
Bosh, jakie wątki, mówimy o prostej 8 bitowej architekturze.
Na tak, przecież przełączanie wątków można robić na minimum na
16-bitach, sorry zapomniałem. Dobrze, że w innych firmach o tej zasadzie
nie słyszeli.
Quote:
8-bitowy procek nie oznacza 8-bitowej przestrzeni adresowej. Skąd
ten
pomysł?
Wow, Atmega ma 16 bitowe rejestry ogólnego przeznaczenia (nie chodzi o
rejestr PC)?
A co ma długość rejestrów do możliwości _liniowego_ adresowania?
8080 to potrafił, Z80 to potrafił, ale widać geniusze z microchipa na to
nie wpadli. Za to nie przeszkodziło im to opatentować mikrokontrolery,
które mają mniej nóżek niż bitów.
Quote:
PICC-18 allows RAM objects of any size to be declared, though some
limitations exist that require balancing objects between C source
files
in certain cases. C18 does not support RAM objects larger than 256
bytes
by default; creating such objects requires editing linker control
files
and adding pragmas to the C source which include hard-coded
variable
addresses. These objects can only be accessed through pointers, not
directly.
Moment, domyślnie przyjąłem, że mówisz o dużych tablicach we flash, bo
jeśli ktoś chce używać duże tablice w ram na tak małym mcu, to
przepraszam ale wybrał złe narządzie do realizacji swoich celów (co
jest nagminne).
Czyli mam uC z 4kB RAMu na pokładzie i zrobienie w nim "wielkiej"
tablicy przekraczającej 256B to przegięcie? Dobrze się czujesz?
janusz_k
Guest
Sun Nov 15, 2015 4:54 pm
W dniu 2015-11-15 o 13:20, Marek pisze:
[quote]On Sun, 15 Nov 2015 12:56:27 +0100, Zbych <zbych@onet.pl> wrote:
Shadow registers can only be used with high priority interrupts
J.F.
Guest
Sun Nov 15, 2015 5:06 pm
Dnia Sun, 15 Nov 2015 14:19:36 +0100, Marek napisał(a):
Quote:
On Sun, 15 Nov 2015 13:40:18 +0100, "J.F."
jfox_xnospamx@poczta.onet.pl> wrote:
Ale w takim procku mialbys jeszcze wiecej rejestrow do zapamietania
Albo podobny zestaw shadow :-)
Argument typu "a Porshe więcej pali".
Nic nie muszę pamiętać, to problem kompilatora.
I kompilator obsluzy Ci przerwanie szybko i bezpiecznie ...
J.
janusz_k
Guest
Sun Nov 15, 2015 5:07 pm
W dniu 2015-11-15 o 13:17, Marek pisze:
Quote:
On Sun, 15 Nov 2015 12:30:49 +0100, Zbych <zbych@onet.pl> wrote:
Sprzętowy stos przeszkadza w przełączaniu wątków.
Bosh, jakie wątki, mówimy o prostej 8 bitowej architekturze.
8-bitowy procek nie oznacza 8-bitowej przestrzeni adresowej. Skąd
ten
pomysł?
Wow, Atmega ma 16 bitowe rejestry ogólnego przeznaczenia (nie chodzi o
rejestr PC)?
Tak i to nawet trzy, do tego dodawanie, odejmowanie od nich liczby 0-63,
gdzie wynik jest może być np: indexem do tablicy, kopiowanie rej 16bit,
poza tym lista rozkazów jest 16 bitowa.
--
Pozdr
Janusz_K
Marek
Guest
Sun Nov 15, 2015 5:58 pm
On Sun, 15 Nov 2015 16:18:03 +0100, Zbych <zbych@onet.pl> wrote:
Quote:
Na tak, przecież przełączanie wątków można robić na minimum na
16-bitach, sorry zapomniałem. Dobrze, że w innych firmach o tej
zasadzie
nie słyszeli.
Atmega posiada mechanizmy sprzętowego wsparcia przełączania wątków
czy wywłaszczenia cpu? Bo przypominam, że mówimy o Atmedze.
Quote:
A co ma długość rejestrów do możliwości _liniowego_ adresowania?
8080 to potrafił, Z80 to potrafił, ale widać geniusze z microchipa
na to
nie wpadli.
Rotfl, jaka jest różnica między łączeniem rejestrów 8 bitowych w
8080 cxy Z80 (nie wiem po co te przykłady skoro mówimy o Atmedze i
PIC) w jakikolwiek sposób aby poruszać się w 16bit przestrzeni
adresowej od użycia rejestru wyboru banku (wyboru starszego bitu w
adresie)? Oba mechanizmy dają taki sam efekt i są tym samym. Ale to
nie oznacza, że są tak samo wydajnymi metodami w porównaniu do
pełnego jednego rejestru 16bitowego, gdzie jest realna (a nie
pośrednia) liniowość w zakresie 16 bit adresacji.
To, że C18 ma problem z odczytem tablic inaczej niż przez wskaźnik
(nie wiem po co robić inny odczyt) to tylko problem tego kompilatora,
jest hitec, jest sdcc a teraz nawet xc8. w tych też ten problem
występuje?
Quote:
Czyli mam uC z 4kB RAMu na pokładzie i zrobienie w nim "wielkiej"
tablicy przekraczającej 256B to przegięcie? Dobrze się czujesz?
Zdefiniuj "większe". Problem jaki podajesz z tą tablicą jest
wydumany, bo zakłada odczyt bez użycia wskaźnika, co w wielu
przypadkach jest niefektywne.
--
Marek
Marek
Guest
Sun Nov 15, 2015 6:04 pm
On Sun, 15 Nov 2015 17:07:55 +0100, janusz_k <Janusz_kk@o2.pl> wrote:
Quote:
Tak i to nawet trzy, do tego dodawanie, odejmowanie od nich liczby
0-63,
gdzie wynik jest może być np: indexem do tablicy, kopiowanie rej
16bit,
poza tym lista rozkazów jest 16 bitowa.
A czy nie są to czasem łączone rejestry jak w 8080, przy czym zapis
odczyt i tak jest w 8bit. kawałkach?
--
Marek
Marek
Guest
Sun Nov 15, 2015 6:07 pm
On Sun, 15 Nov 2015 16:18:03 +0100, Zbych <zbych@onet.pl> wrote:
Quote:
16-bitach, sorry zapomniałem. Dobrze, że w innych firmach o tej
zasadzie
nie słyszeli.
No to teraz wiem, kogo konkretnie miał na myśli Sebastian pisząc o
polskich wynalazcach najszybszych na świecie furmanek :-)
--
Marek
janusz_k
Guest
Sun Nov 15, 2015 7:03 pm
W dniu 2015-11-15 o 18:04, Marek pisze:
Quote:
On Sun, 15 Nov 2015 17:07:55 +0100, janusz_k <Janusz_kk@o2.pl> wrote:
Tak i to nawet trzy, do tego dodawanie, odejmowanie od nich liczby
0-63,
gdzie wynik jest może być np: indexem do tablicy, kopiowanie rej
16bit,
poza tym lista rozkazów jest 16 bitowa.
A czy nie są to czasem łączone rejestry jak w 8080, przy czym zapis
odczyt i tak jest w 8bit. kawałkach?
Tak są łączone i odczyt w kawałkach ale co to ma za znaczenie? operacje
są robione na obu tzn word i to jest istotne, służą do adresacji
pamięci.
--
Pozdr
Janusz_K
Goto page Previous 1, 2, 3, 4, 5, 6 Next