STM32F0xx a počítání zapnutí

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Červen 17 11:36:09 CEST 2014


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.
>>>
>>> Mrazík
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



Další informace o konferenci Hw-list