RTV forum PL | NewsGroups PL

Jak umieścić tablice w pamięci Flash i RAM w STM32 przy użyciu Keil?

STM32 tablice we Flash i RAM

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak umieścić tablice w pamięci Flash i RAM w STM32 przy użyciu Keil?

slawek7
Guest

Tue Jan 10, 2012 1:49 pm   



Czesc.
Program pisany na STM32 w Keil
Jak rozroznic umieszczenie tablic w pamieci Flash i RAM?
Dla przykładu chce w pamieci flash umiescic tablice z obrazem dla
wyswietlacza LCD, ktora jest tylko do odczytu i mają być to wartosci
uint8_t OBRAZ[] = {0x08, //itd
oraz inna w pamieci RAM: uint8_t ch0[8]={24, 4, 4, 10, 18, 18, 17,
0}; //własne znaki

Jak je rozroznic aby trafily do FLASH a druga do RAM i jak je potem
odczyta?

Mario
Guest

Tue Jan 10, 2012 1:50 pm   



W dniu 2012-01-10 12:49, slawek7 pisze:
Quote:
Czesc.
Program pisany na STM32 w Keil
Jak rozroznic umieszczenie tablic w pamieci Flash i RAM?
Dla przykładu chce w pamieci flash umiescic tablice z obrazem dla
wyswietlacza LCD, ktora jest tylko do odczytu i mają być to wartosci
uint8_t OBRAZ[] = {0x08, //itd

Te mające być we flaszu deklaruj jako const.
Na przykład
const char http_content_type[15] =
{0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65,
0x3a, 0x20, };

Quote:
oraz inna w pamieci RAM: uint8_t ch0[8]={24, 4, 4, 10, 18, 18, 17,
0}; //własne znaki

A te powędrują do RAM.

Po kompilacji zobaczysz w pliku .map gdzie powędrowały. Jeśl
i Keil używał do kompilacji gcc a zdaje mi się ze tak jest.
blok .text to flash, d.data - dane zainicjowane, .bss dane niezainicjowane.

--
pozdrawiam
MD

Ukaniu
Guest

Tue Jan 10, 2012 2:25 pm   



Użytkownik "slawek7" <sholojda@wp.pl> napisał w wiadomości
news:8277f37b-322a-431c-8da4-2b04bcbe07a7@i26g2000vbt.googlegroups.com...
Quote:
Jak je rozroznic aby trafily do FLASH a druga do RAM i jak je potem
odczyta?


W gcc pisałem kiedys tak
uint8_t const moja_tablica_rom[]={1,1,1,1} PROGMEM;
pgm_read_byte(*); // dostępne w pgmspace.h

--
Pozdrawiam, Łukasz

slawek7
Guest

Tue Jan 10, 2012 3:09 pm   



Tylko jak zoabczyc gdzie sa umieszczone te tablice?
Otwieram plik .map cos tam jest tylko jak z tego wylonic to co
potrzeba?
Jak to bedzie opisane?

Znalazlem na samyk koncu takie sekcje: RO Size, RW Size, ROM Size. Nie
wiem czy dobrze rozumiem, ale czy RO znaczy Read Only? a RW Read/
Write? To czym sie rozni ROM od RO? jedno tylko do czytania i drugie?

Grzegorz Kurczyk
Guest

Tue Jan 10, 2012 5:52 pm   



W dniu 10.01.2012 14:25, Ukaniu pisze:
Quote:
Użytkownik "slawek7"<sholojda@wp.pl> napisał w wiadomości
news:8277f37b-322a-431c-8da4-2b04bcbe07a7@i26g2000vbt.googlegroups.com...
Jak je rozroznic aby trafily do FLASH a druga do RAM i jak je potem
odczyta?


W gcc pisałem kiedys tak
uint8_t const moja_tablica_rom[]={1,1,1,1} PROGMEM;
pgm_read_byte(*); // dostępne w pgmspace.h


Ale to raczej w AVR, a nie ARM ;-)

Pozdrawiam
Grzegorz

Zbych
Guest

Tue Jan 10, 2012 7:01 pm   



On 10.01.2012 18:35, slawek7 wrote:
Quote:
To jak w Keilu sprawdzic ilosc zajetych pamieci (Ram, Flash)?

https://docs.google.com/viewer?pid=bl&srcid=ADGEESgZRyfqz9u2ZosJDBYRQdtQNIPP1pPlTFNkHo0vahrHff7P-MJ-nLEZ5Z8YOILpYX-088JUtBuxkdUZljoHPghDMih5Gky2rJMx9PzsRx5DT6ePRXB2J7uXiAUtujA-5XvYuxMD&q=cache%3A4lnJFZsAvLgJ%3Awww.8051projects.net%2Fe107_files%2Fpublic%2F1285598582_6533_FT38162_keil_arm_lpc2148_help.pdf%20keil%20arm%20flash%20ram%20usage&docid=b3078bc1a50ed7f8084eacf4d8e066d8&a=bi&pagenumber=13&w=800

slawek7
Guest

Tue Jan 10, 2012 7:35 pm   



To jak w Keilu sprawdzic ilosc zajetych pamieci (Ram, Flash)?

Zbych
Guest

Wed Jan 11, 2012 8:54 am   



W dniu 2012-01-11 08:45, slawek7 pisze:
Quote:

Się popsuł. Spróbuj ten:

http://www.keil.com/forum/10624/

slawek7
Guest

Wed Jan 11, 2012 9:45 am   



Quote:

Link nie dziala

AS
Guest

Wed Jan 11, 2012 12:48 pm   



Quote:
Zastanawiam sie dlaczego dla ROM podaja "ROM Size = Code + RO Data +
RW Data" i w takim razie co znacza skroty RO i RW?

http://stackoverflow.com/questions/5430284/rom-and-ram-in-arm

Michoo
Guest

Wed Jan 11, 2012 1:14 pm   



W dniu 11.01.2012 12:28, slawek7 pisze:
Quote:
Ten jest ok.
Zastanawiam sie dlaczego dla ROM podaja "ROM Size = Code + RO Data +
RW Data" i w takim razie co znacza skroty RO i RW?
kod wykonywalny + dane Read Only (stałe) + dane Read and Write(kopiowane

do ram na starcie)

w ramie będzie RW, stack i obszary inicjalizowane zerami

--
Pozdrawiam
Michoo

slawek7
Guest

Wed Jan 11, 2012 1:28 pm   



Ten jest ok.
Zastanawiam sie dlaczego dla ROM podaja "ROM Size = Code + RO Data +
RW Data" i w takim razie co znacza skroty RO i RW?

slawek7
Guest

Wed Jan 11, 2012 2:13 pm   



To wyjasnilo, dzieki.
A jaki poziom kompilacji nalezy wybrac. W keilu sa od 0 do 3 natomiast
w WinAVR zawsze ustawialo sie na -Os. Jest tu jakis odpowiednik?

elektroda NewsGroups Forum Index - Elektronika Polska - Jak umieścić tablice w pamięci Flash i RAM w STM32 przy użyciu Keil?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map