KEIL C pro C51 - konstanty

Va_Sm spiritusII@seznam.cz
Sobota Duben 5 23:19:51 CEST 2008


Ale ulozeni konstant mimo spolecnou stranku(programu a konstant) problem 
neni?

Tomáš Pípal napsal(a):
> Z hlediska bezpecnosti programu bych se radsi vyhnul kombinovani 
> konstant a kodu v jedne strance, celkem snadno by mohlo dojit k 
> poskozeni programu, behem zapisovani novych konstant.
>
> pyrin napsal(a):
>   
>> Pak bych si asi u Silabse vyhradil jednu stránku na takovéto proměnné a cpal 
>> bych tam vše. To jest nadeklaroval bych to na XRAM a tam si to vše připravil 
>> a potom najednou zapsal do FLASH. Samozřejmě absolutně. Pokud bych dělal 
>> změnu, tak bych si celou stránku nacpal opět do XRAM a provedl změnu a 
>> zazálohoval do FLASH. Z té FLASH bych to třeba každou sekundu kopíroval do 
>> XRAM a ve výpočtech pracoval jen s XRAM.
>> pyrin
>>
>> ----- Original Message ----- 
>> From: "Va_Sm" <spiritusII@seznam.cz>
>> To: "HW-news" <hw-list@list.hw.cz>
>> Sent: Saturday, April 05, 2008 1:13 PM
>> Subject: Re: KEIL C pro C51 - konstanty
>>
>>
>> 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.
>>>>
>>>>
>>>>         




Další informace o konferenci Hw-list