[elektro] STM32F Flash memory inicializáslása.

uprogc . uprogc at gmail.com
Thu Jun 11 13:05:11 CEST 2015


Sziasztok,

Nekem is lenne egy STM32 kerdesem.

AVRnel megszoktuk, hogy a portra siman kiirjuk az adatot, az megjelenik a
kimeneten.
STM32-nel mindehez ket regiszterre van szukseg:

GPIOD->BSRRH = GPIO_Pin_13  Low szint;
GPIOD->BSRRL = GPIO_Pin_13; High szint

Hogy tudom parhuzamos portkent a legegyszerubben hasznalni az adott portot
? (LCD vezerles)


U,
Szabi

2015-06-10 16:13 GMT+03:00 elight <elight at gmail.hu>:

> Megvigasz....
>
> de megvan a vigasz.. :-)
>
> unsigned char FLASH_Mem_Inited = 0;
>
>
>
> valahol a main elején
> Error = EEprom_Table_Read  ( kezdőcím, hossz  );   // olvasom a táblát
> egy EE_Thumb memóriaváltozóba
>
> if ( ! ( EE_Thumb[ TEST_AA ] ==  0xAA ) &&  (EE_Thumb[ TEST_55 ] ==  0x55
> ))
> {
>                   //  Ha a pattern nem található  az EEprom területen ...
>
>                  EEprom_Table_Init ( kezdőcím, hossz );    // Belevarrja
> a területbe a patternt és a kezdő adatokat.
>                  FLASH_Mem_Inited = 1;
> }
>
> És a  nyitóképernyőn   is kiírom ha initelt , hogy lássam
>
> if(  FLASH_Mem_Inited == 0 )
> {
>          Print_Status_LCD("FLASH_Read_Ok" );
> }
> else
> {
>       Print_Status_LCD("FLASH_Init  !!!" );
> }
>
>
> a többi már pöröghet   szokásosan..
> Az előbb teszteltem éppen, szépen lefutotta az esteket..
>
>
> Az zavart be,  PIC-nél ezeket az adatokat direkt beleírhattam az égető
> EEprom táblájába,
> itt pedig a FLASH-ba kell bele juttatni, és ahhoz kell a FLASH kezelő
> függvénye..
> Legalább is egyenlőre direkt nem értem el  , hogy a fordító tegye bele
> nekem.
>
> Üdv István
>
>
>
>
>
> 2015-06-10 14:55 keltezéssel, hg12345 írta:
> > Hi a tömbnek érteket lehet adni induláskor, akkor nem ZI-n
> tárolja.uint8_t tomb[100]={ 1,2,3,4....};az az érték RAM-ban lesz tárolva,
> nem a FLASH területen. ha eléírsz "const" akkor a tömböt a flash területre
> teszi, de ennek az írását nem engedi a fordító.const uint8_t tomb[100]={
> 1,2,3,4....};Ha egy ugyan ilyen pointert definiálsz a const helyet
> használhtsz __attributre__ megadott kezdőcimet is...)  uint8_t  *ptomb=
> (uint8_t*) tomb ;és utána már használhatód ptomb[xx] hivatkozással ezért
> már nem kiabál a fordító de írni nagy valószínűséggel nem fogod tudni :-)
> > elight <elight at gmail.hu> írta:
> >> Sziasztok.
> >>
> >> Egy EEprom emulációt készítettem a FLASH memoria területére.
> >>
> >> A fordítónak hogyan adhatom meg , hogy ez
> >> egy  tömb, aminek kezdeti értéke van,
> >> és a függvényeim induláskor ezeket módosíthatják vagy olvashatják majd.
> >>
> >> Olyasmire gondolok, hogy a PIC-nél volt az égetőben egy EE_prom
> >> terület, amit kézzel beírtam, és égetés után azokkal
> >> a beállítási paraméterekkel indult a program.
> >> Mert most elsőre innen szemetet vagy 00 hoz le sajnos.
> >>
> >> Üdv István
> >>
> >> -----------------------------------------
> >>           elektro[-flame|-etc]
> > -----------------------------------------
> >            elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]


More information about the Elektro mailing list