KEIL C pro C51 - konstanty

Tomáš Pípal dargos@seznam.cz
Sobota Duben 5 14:40:32 CEST 2008


Mate pravdu, Silabs nemaji zadnou eeprom.

Co se tyce ukladani kalibracnich a dalsich konstant do kodove pameti tak 
aby sla pozdeji menit je mozne. Ma to ale jeden hacek
kodova pamet lze mazat v Silabsech pouze po celych 512 bajtovych 
strankach, takze si na konstatny rezervujte celou jednu stranku.
Nedoporucuji "rezervovat" prvni stranku. Posledni stranka pred koncem 
pameti ma svoje vysostne postaveni a nelze do ni z programu
zapisovat, konci to resetem mcu, tahle stranka slouzi vetsinou pro 
BootLoader.
Nejvhodnejsi pro rezervaci a zapis prvotnich konstant je udelat to v ASM 
nejlepe uz v startup.a51.
Pomoci CSEG vytvorte kodovy segment na nejake strance v pameti
Nasledne je v ASM naplnte konstantama (datama) podle potreby a zbytek 
stranky pomoci DS rezervujte.
Nasledne uz kdekoliv v C kodu definujte promenne na stejne adresy jako v 
predchozim bode.
pr: unsignet char code kalibrace _at_ 0x200;


Va_Sm napsal(a):
> Obavam se, ze pouzivany C8951F340 nedisponuje zadnou interni eeprom 
> (pripojeni nejake ext, i2c pameti, jiz neprichazi v uvahu). Myslim tedy, 
> ze se ulozeni konstant do kodove casti nevyhnu.
> V. Smidl
> pyrin napsal(a):
>   
>> Ale dát kalibrační konstanty a sériové číslo do code asi není nejšťastnější 
>> ? Tedy pokud děláte JEDEN kus. Pokud jich je tisíc, tak to řešíme tak, že to 
>> cpeme do EEPROM. Lépěji se to pak kalibruje a hlavně i sériové číslo a 
>> identifikaci mohu měnit kdykoliv potřebuju. Samozřejmostí je, že to vše je 
>> na absolutních adresách, aby se mi to pokaždý nenalinkovalo jinam. Tedy 
>> takto to používám u 89C51ED2. MImochodem, znáte někdo nějakou zajímavou cenu 
>> na AT89C51ED2-SLSUM ? (na 1000ks).
>> pyrin
>>
>> ----- Original Message ----- 
>> From: "Va_Sm" <spiritusII@seznam.cz>
>> To: "HW-news" <hw-list@list.hw.cz>
>> Sent: Saturday, April 05, 2008 9:04 AM
>> Subject: Re: KEIL C pro C51 - konstanty
>>
>>
>> Ano resim podobny problem. Mam nekolik kalibracnich konstant, parametry
>> zarizeni a text(seriova cisla). Tento seznam by mel byt uveden v h
>> souboru. Prave sem myslel, ze by bylo dobre tyto konstanty zadefinovat
>> na konkretni mista do kodoveho segmentu, kde by mohla byt pozdeji
>> programove menena (prikazy po ser. lince).
>>    Pravdepodobne to vyresim definici promennych nekam do RAM a pak kus
>> teto oblasti v RAM nakopiruji do kodove flash, odkud je podu cist
>> popripade modifiovat.
>>
>> V. Smidl
>> Milan napsal(a):
>>   
>>     
>>> Tak to som niekedy riesil /cislo verzie/ a nie moc uspesne.
>>> Asi jedina cesta je umiestnit konstantu v samostatnej zdrojovke a  linkeru
>>> definovat umiestnenie celeho bloku:
>>>
>>> Priklad v subore *.lin:
>>> BankArea(0x8000,0xFFFF) Rtx51Tiny REGFILE (.\Pult_LCD.ORC)
>>> NOOVERLAY
>>> RAMSIZE(256)
>>> CODE
>>> (
>>>  0X1100-0X7FFF,
>>>  ?CO?LANGUAGE(0x6000),
>>>  ?CO*MENUMACH(0x7800)
>>> )
>>> BANK3
>>> (
>>>  ?CO?TEXTS(0x8000),
>>>  ?PR*LANGUAGE
>>> )
>>> XDATA
>>> (
>>>  0X0000-0X1FFF,
>>>  ?RTX?TASK_STACK_XRAM?S(0x0000)
>>> )
>>>
>>> Milan
>>>
>>>
>>> ----- Original Message ----- 
>>> From: "Va_Sm" <spiritusII@seznam.cz>
>>> To: "konference" <hw-list@list.hw.cz>
>>> Sent: Thursday, April 03, 2008 11:26 PM
>>> Subject: KEIL C pro C51 - konstanty
>>>
>>>
>>> Zdravim,
>>> potrebval bych poradit, jakym zpusobem zapsat v C komplatoru Keil
>>> nasleduji vec.Je mozne deklarovat konstantu na konkretni misto v kodove
>>> pameti? Neco jako: code const  int =  0x1234, ale aby hodnota 0x1234
>>> byla ulozena na konkretni adresu napr. 4000h.
>>>
>>>
>>>     
>>>       
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list@list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list@list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> __________ Informace od NOD32 3004 (20080405) __________
>>
>> Tato zprava byla proverena antivirovym systemem NOD32.
>> http://www.nod32.cz
>>
>>
>>
>>   
>>     
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>   




Další informace o konferenci Hw-list