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