[elektro] STM32 disco. flash memoria használata
elight
elight at gmail.hu
Wed Feb 4 13:20:35 CET 2015
Szia,
Igen , ahogy a PIC-ben volt ,
a program futása közben konfig letöltés PC-ról menüpont
lehetőséget szeretnék megvalósítani
Ez pár beállítási adat és az ikonok cseréjével járna .
Azt tudom, hogy az írás korlátos, de ezeket
csak telepítéskor és áttelepítéskor, esetleg
szervíz esemény nél kellne ismételten
változtatni.. Ez az élettartamban max pár tíz átírást jelent, de
temészetesen áramszünet esetén
is stabilan meg kellene maradnia az utolsó beállításnak.
Elvileg jelenleg a 8k elegendő lenne.
Nem szeretném a programot más rendszerre portolni,
és ez a harmadik dolog egészen tetszik.
Erről hol találtál részletes leírást?
Ja és köszi az eddigieket,
ez így egészen lényegbevágó volt!
Még egy kérdés , mit tapasztaltál,
az engedéjezések, tiltások elhanyagolhatók,
alapból engedélyezve van e minden memória elérés?
Üdv István
2015-02-04 12:47 keltezéssel, hg12345 írta:
> 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]
>>
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list