RTV forum PL | NewsGroups PL

Jak działa organizacja pamięci w Atmega2561 z bootloaderem i DATA w Bascomie?

organizacja pamięci w Atmega2561

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak działa organizacja pamięci w Atmega2561 z bootloaderem i DATA w Bascomie?

sundayman
Guest

Mon Sep 12, 2016 3:37 pm   



Kuśwa, nie mogę zrozumieć.

Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

Poza tym, mam taki zonk z Bascomem (bez bootloadera na razie).
Otóż, mam w programie proste CRC.
W tym celu w programie jest linijka

DATA "CRC=0000"

Te zera są później zastępowane wartością jakąś, ale to nieważne.
Po prostu chodzi o to, że w programie jest zapisana poprawna wartość CRC.

I w czasie działania program odszukuje "w sobie" ten string.
I fajnie - tylko podaje mi, że on jest pod adresem 3032A. Czyli pod
adresem "poza" programem jakby, bo program zajmuje teraz 1DBF4.

Za cholerę nie mogę skumać jak to jest zorganizowane. Nawet bez
bootloadera. A co dopiero z.

A musiałem się przesiąść z M128 bo tam mi program już zajmował 97%....

Ktoś może mnie oświecić proszę ?

platformowe głupki
Guest

Mon Sep 12, 2016 3:55 pm   



ja nie wiem...

J.F.
Guest

Mon Sep 12, 2016 4:28 pm   



Użytkownik "sundayman" napisał w wiadomości grup
dyskusyjnych:nr6i30$pvp$1@node2.news.atman.pl...
Quote:
Kuśwa, nie mogę zrozumieć.
Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

Czemu nie. Kompatybilnosc ?

Ty sie lepiej pytaj jak sobie poradzili z cala reszta, to w koncu
16-bitowy procesor.


Quote:
[...]I w czasie działania program odszukuje "w sobie" ten string.
I fajnie - tylko podaje mi, że on jest pod adresem 3032A. Czyli pod
adresem "poza" programem jakby, bo program zajmuje teraz 1DBF4.

A to nie jest kwestia slowa/bajty ?

J.

sundayman
Guest

Mon Sep 12, 2016 4:41 pm   



Quote:
A to nie jest kwestia slowa/bajty ?
mnie się pytasz ? Smile

Bo ja nie wiem...

A może problem polega na działaniu polecenia Cpeekh ?
Ono sobie jakoś tam przelicza adres zadany, bo "normalnie" przeznaczone
jest to odczytu z pamięci powyżej pierwszych 64K. No i w M128 to działa
zrozumiale.

Ale w M2561 nie rozumiem. Zostawiając na razie bootloader,bo nie używam
teraz. Mam zamiar, ale na razie stanąłem na tym CRC.

Sebastian Biały
Guest

Mon Sep 12, 2016 5:25 pm   



On 2016-09-12 17:37, sundayman wrote:
Quote:
Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.

Nie, jest to okienkowane w dośc prymitywny sposób:

http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_LD.html

Memory access is limited to the current data segment of 64K bytes. To
access another data segment in devices with more than 64K bytes data
space, the RAMPX, RAMPY, RAMPZ in register in the I/O area has to be
changed.

http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_registers.html

http://electronics.stackexchange.com/questions/26682/accessing-data-past-64k-boundary-on-atmega1280

Sebastian Biały
Guest

Mon Sep 12, 2016 5:30 pm   



On 2016-09-12 17:37, sundayman wrote:
Quote:
Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

Na końcu.

http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf

The ATmega640/1280/1281/2560/2561 contains 64K/128K/256K bytes [...]
instructions are 16 bit or 32 bit wide, the Flash is organized as
32K/64K/128K × 16.

Grzegorz Niemirowski
Guest

Mon Sep 12, 2016 5:35 pm   



sundayman <sundayman@poczta.onet.pl> napisał(a):
Quote:
Kuśwa, nie mogę zrozumieć.
Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

Bootloader jest tutaj na końcu Flasha, nie musi być na początku.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 11 days, 7 hours, 44 minutes and 17 seconds

Robert Zemła
Guest

Mon Sep 12, 2016 5:38 pm   



W dniu 2016-09-12 o 17:37, sundayman pisze:
Quote:
Kuśwa, nie mogę zrozumieć.

Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

Poza tym, mam taki zonk z Bascomem (bez bootloadera na razie).
Otóż, mam w programie proste CRC.
W tym celu w programie jest linijka

DATA "CRC=0000"

Te zera są później zastępowane wartością jakąś, ale to nieważne.
Po prostu chodzi o to, że w programie jest zapisana poprawna wartość CRC.

I w czasie działania program odszukuje "w sobie" ten string.
I fajnie - tylko podaje mi, że on jest pod adresem 3032A. Czyli pod
adresem "poza" programem jakby, bo program zajmuje teraz 1DBF4.

Za cholerę nie mogę skumać jak to jest zorganizowane. Nawet bez
bootloadera. A co dopiero z.

A musiałem się przesiąść z M128 bo tam mi program już zajmował 97%....

Ktoś może mnie oświecić proszę ?

Adresujesz SŁOWA a nie bajty

sundayman
Guest

Mon Sep 12, 2016 6:49 pm   



Quote:
Adresujesz SŁOWA a nie bajty

Że bootloader jest na końcu to wiem.
Ale - jeżeli adresuję SŁOWA, to kuśwa instrukcja CpeekH działa bez sensu ?

No bo podaję adres słowa, a w wyniku dostaję bajt ??
Ale to by się nie zgadzało z tymi informacjami tutaj:

http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=12319&highlight=cpeekh

Z tego co tam napisane (ostatecznie potwierdzone przecież przez autora
Bascoma) by wynikało, że jednakowoż dla cpeekh(x)
x oznacza kolejny numer bajtu.


___________________________________________________
* bardzo proszę bez komentarzy "nie pisz w bascom". Jakbym mogł, to bym
nie pisał Smile Tak wyszło i w tym przypadku musi tak zostać...

janusz_k
Guest

Mon Sep 12, 2016 6:52 pm   



W dniu 2016-09-12 o 17:37, sundayman pisze:
Quote:
Kuśwa, nie mogę zrozumieć.

A musiałem się przesiąść z M128 bo tam mi program już zajmował 97%....

Ktoś może mnie oświecić proszę ?
Bascom się do poważniejszych rzeczy nie nadaje, w C zajmie Ci to 1/3

pamięci i zmieścisz się w 64-ce.
Co do adresacji jak już Ci napisali, adresowanie jest słowami 16-to
bitowymi, jak to Bascom przelicza to nie wiem.

--
Pozdr

Janusz_K

sundayman
Guest

Mon Sep 12, 2016 7:08 pm   



Ja głupi.
Okazało się, że mój błąd. Zamiast zmiennej dword w pętli przeszukującej
flash dałem word. No i to dało taki efekt. Jak poprawiłem to jest już
chyba dobrze.

bat
Guest

Mon Sep 12, 2016 10:19 pm   



On 12.09.2016 17:37, sundayman wrote:
Quote:
Kuśwa, nie mogę zrozumieć.

Ponoć tam jest 256K flash. "Liniowo", jak stoi w dataszicie.
No ale - adres bootloadera (jak jest włączony) podają 1F800.
No jak - w środku pamięci ??

To jest adres w wordach 16 bitowych

Marek
Guest

Tue Sep 13, 2016 7:24 am   



On Mon, 12 Sep 2016 18:28:05 +0200, "J.F."
<jfox_xnospamx@poczta.onet.pl> wrote:
Quote:
Ty sie lepiej pytaj jak sobie poradzili z cala reszta, to w koncu
16-bitowy procesor.

Od kiedy??

--
Marek

elektroda NewsGroups Forum Index - Elektronika Polska - Jak działa organizacja pamięci w Atmega2561 z bootloaderem i DATA w Bascomie?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map