[elektro] STM32 disco. flash memoria használata

hg12345 hg12345 at freemail.hu
Wed Feb 4 12:47:52 CET 2015


Hi
szerintem a "code" nem kell elegendő a const jelzés a fordítónak.

Ha letöltöd a hozzátartozó példa programokat, abban megtalálható a belső FLASH írása. Arra nem emlékszem, hogy a futásközben írható a FLASH vagy nem.

http://www.st.com/web/en/catalog/tools/PF257914

Ha konkrét memória címre szeretnél dolgozni, akkor "C fordítóban nézd meg az attribute"  "at", "@" kiegészítéseit, a CMSYS-ben a periféria címeket is ehhez hasonló technikával állítják be. (ez nem túl szerencsés, nem lesz hordozható a kódod)
A másik lehetőség hogy kijelölsz egy szegmens nevet és ezt teszed a linkerrel megfelelő pozicióba, majd a memória foglalást erre a szegmens névre helyezed.
A harmadik lehetőség, de ez ebben a uC elég korlátos, hogy a memória manegerrel a RAM-t áthelyezed a FLASH területre, így minden ugyan ott van, de RAM-ból fut és írható, de 8K a korlát.


Az új piktogram változtatás után úgy marad vagy szeretnéd az eredetit megtartani. Sokszor egyszerűbb két területet lefoglalni egyet a FLASH-ban és egy másikat a RAM-ban, innen kezdve a használandó piktogramra egy printerrel hivatkozol, a pointer meg arra mutat amihez hozzárendelted. A RAM-ban lévő területet akármikor átírhatod.  Arra vigyázz a FLASH csak véges számú írást visel el.


elight <elight at gmail.hu> írta:
>Sziasztok.
>
>Bütykölgetek az STM32F100 disco modullal..
>Kicsit erősen más mint a megszokott  PIC-ek! :-)
>
>Már néhány dolog azért bejött,  a LED villogtatáson kívül is..
>
>Még int-et (systick) nem próbáltam összehozni,
>és a következőn problémán egy pillanatra elkadtam?
>
>A FLASH ( vagy nem felejtő ) területre szeretnék tömböket írni..
>
>A programban foglalok konstans módon helyet kis piktogrammoknak.
>tehát   pl:
>
>const code char KissMause(552) = {
>
>0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
>0x00, 0x00, 0x00, 0x00, 0x00,
>0x00,0x00, 0x01, 0x01, 0x0F, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x55, 
>0x00, 0x55, 0x3F, 0x00, 0x00,
>0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x68, 0x00, 0xA0, 0x00, 
>0x00, 0x00, 0x00, 0x00, 0x00,
>....
>};
>
>És szépen meg is jelennek a kijelzőn.
>Ezeket szeretném lecserélni ( átírni ) esetenként a soros porton 
>küldött  adatokkal.
>Ezeket a RAM-ba beírom, de jó lenne nem felejtősen a FLASH-ba is átvarrni.
>Hogyan tudok helyet foglalni, hogy meg is találjam
>és milyen regiszterekket birizgáljak (milyen sorrendben ) a tömbök 
>felülírásakor.
>Néztem már azt is , törölni  csak egész lapokat lehet egyben, gondolom 
>ez is bekavarhat.
>De gondolom a olvasás már mehetne  a jelenlegi hivatkozással.
>
>Üdv István
>
>
>
>-----------------------------------------
>          elektro[-flame|-etc]
>



More information about the Elektro mailing list