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