Re: STM32F0xx a počítání zapnutí

Tomáš Hamouz hamouz na divesoft.cz
Úterý Červen 17 11:40:07 CEST 2014


Dejte ještě pozor, při zápisu do programové flash musí progam běžet
z RAM.

Tomáš

> Abych rekl pravdu, ani jsem jeste nepostrehnul, ze STM32 nejake option
> maji a ze nestaci vse nastavit programove...???

> Kazdopadne u gcc se snadno v linker scriptu ubere cast pameti pro 
> program, vytvori sekce pro emulaci eeprom a pak uz se tam daji definovat
> promenne (nejaky attribude aby se umistila do sekce) pripadne lze 
> nastavit ukazatel primo na zacatek sekce a adresovat si to ve vlastni 
> rezii. Ukazatel lze nastavit samozrejme i primo na libovolnou hodnotu 
> pretypovanim, uz to ale nebude tak prehledne a linker neohlida, ze do 
> teto oblasti nenaroste program.

> Dne 17. 6. 2014 11:30, Josef Štengl napsal(a):
>> Vlastní syntaxe dost závisí na překladači, ale principiálně 
>> potřebujete v souboru linkeru definovat sekci na adrese kterou si 
>> přejete a umístit proměnnou do této sekce.
>>
>>
>> Některé kompilátoru umožňují umístit proměnnou přímo na adresu 
>> (například pomocí #pragma ....)
>>
>> Asi budete používat gcc (které já používám minimálně, tak to z hlavy 
>> neřeknu), tak vám pro inspiraci pomůže třeba tento odkaz
>>
>> http://mcuoneclipse.com/2012/11/01/defining-variables-at-absolute-addresses-with-gcc/ 
>>
>>
>> U option bytes záleží na tom, co si pod tím představujete. Pokud FEE 
>> oblast (Flash Emulated EEprom) tak je to jen Flash pomět a její adresu 
>> si zjistíte v manuálu k procesoru, pokud jsou to data mimo Flash pamět 
>> tak ne (pokud je nekopírujete z FLASH a to je pak případ 1 :-).
>>
>> ced
>>
>>
>> Dne 17.6.2014 10:42, HUDA volny napsal(a):
>>> Tak nějak jsem si to myslel.
>>>
>>> Ještě bych se v rámci práce s flashkou chtěl zeptat, jak definovat
>>> při psaní programu, aby se na určité místo ve flash uložila nějaká
>>> konstanta? Jde o to, že když přeložím program, tak v hex souboru
>>> na definované adrese tu konstantu uvidím.
>>> A za druhé, nechají se nějak nadefinovat option bytes tak, aby se
>>> také objevily v hex souboru?
>>>
>>> HUDA
>>>
>>>
>>> Dne Tue, 17 Jun 2014 09:57:14 +0200 Miroslav Mraz <mraz na seznam.cz> 
>>> napsal(a):
>>>
>>>> Tohle funguje, používám to taky. Zapisuje se vždy jen 16.bitový word 
>>>> na místo, kde byla předtím hodnota 0xFFFF. Když tam
>>>> je něco jiného, provede se jakoby operace & mezi tím, co tam bylo 
>>>> původně a novou hodnotou a vyhodí to chybu ve stavovém
>>>> registru. Prostě zápis umí jen nastavit bity z 1 na 0.
>>>> Nastavit bity z 0 na 1 lze jen operací mazání a ta se provádí po 
>>>> stránkách s velikostí 1 KiB. Předpokládám, že životnost
>>>> je dána počtem cyklů přechodu bitu 1-0-1, tedy fakticky počtem 
>>>> mazání stránky, takže když používám na stránce jen ten
>>>> jediný 16.bitový údaj, který zapisuji vždy na novou pozici, zvětší 
>>>> se počet možných zápisů jakoby 512x. Ale je to jen
>>>> odůvodněný předpoklad, možná je to jinak, stejně v praxi nelze počet 
>>>> možných přepisů nijak přesně změřit. Tu stránku
>>>> klidně můžete přepsat třeba milionkrát, chybu to nevyhodí, ale data 
>>>> to pak udrží jen krátkou dobu.
>>>>



Další informace o konferenci Hw-list