[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