[elektro] PIC EEPROM helyett FLASH használata

hg12345 hg12345 at freemail.hu
Tue Sep 13 10:25:28 CEST 2011


Hi, csak az optimalizálás okozza hibát, akkor 
volatile
használva ez a varázslás se kéne.

Elight <elight at gmail.hu> írta:
>Sziasztok ,>
>
nem ,>
a const az ugy néz ki szükéges,>
és nem a kifejezésben volt a hiba..>
>
Este alaposan megnézegettem ,>
mert semmi se jött össze,>
aztán éjjel varázsütésre>
megálmodtam mi lehet a gond.>
>
Tehát eredetileg  csak beírtam a globál változók végére a foglalást>
>
const code char init_tabla = { "Hello", 0x0D, 0x0A } absolute 0x8000;>
>
és vártam a hatást.>
>
Az ASM-ben lefoglalta a területet , legalább is úgy látszott,>
de a linkelésnél már nem fordította bele a HEX-be.>
>
Mert hát ugye , nem gondolkodik eleget a pógár!>
>
Ugy tanutuk tantóbácsitól,>
hogy egyes fordítók optimalizálnak...>
>
Tehát  amint betettem a program elejére, hogy>
>
>
char tablabuff;>
>
tablabuff = init_tabla[0];>
>
A helyzet az első használattal azonnal megváltozott..>
Hatására a HEX-ben is megjelentek a lefoglalt területen>
a konstans értékek.>
>
Hiába, már csak felejt az ember gyereke!>
>
Üdv István>
>
>
Ui: Egyébként a kéziköny is>
  csak RAM datára említi a 'absolute' kifejezét ,>
de ezek szerint azért a ROM ra is egészen jól elműködik..>
>
>
>
>
>
2011.09.12. 17:35:09 dátumon Nemka <nemka at nemka.hu> írta:>
>
> #pragma romdata>
> rom const változó_típusa változó_neve;>
>>
> (Bár a rom esetén talán a const el is maradhat.)>
>>
>>
>>
>> 2011.09.12. 17:30 Elight:>
>>
>>
>> Még egy halovány kérdésem lenne:>
>>
>> Hogyan tudok a flash memóriában előre definiálni>
>> egy tetszőleges kontanst ami a konfigot tartalmazhatja.>
>> Ezt az  égetővel, a programozással szeretném>
>> a progrrammal együtt fix címre beleírni.>
>>
>> próbáltam a>
>>
>> const char code CONF_TABLE[] = "Ez a Config " absolute 0x7A00 ;>
>>
>> utasítással.>
>> Az ASM listában benne is van>
>> a CONF_TABLE utalás az  adott címen ,>
>> de az égetőben a beolvasás után>
>> az "View/Edit Buffer" ablakban az adott címen>
>> mégsem találom a hozzá tartozó szöveget.>
>>
>> Ugyanez RAM-ban működik, csak kikapcsolásig.>
>> A konstansokat egyáltalán lehet fix abszolút memoriára helyezni?>
>>
>>
>> Üdv István>
>>
>>
>>
>>
>>
>>
>> 2011.09.12. 15:08:58 dátumon Elight <elight at gmail.hu> írta:>
>>
>>> Szia,>
>>>>
>>> Köszi.>
>>>>
>>> Eredetileg valami gyakorlatias,>
>>>   C nyelvű dolgot kerestem>
>>>    , rövid kódrészlet, ect.>
>>> Ezt már nézegettem, és nekem hirtelen bonyi.>
>>>>
>>> Ténylegesen az a gondom, ahogy ezt már összehámoztam,>
>>> hogy  pár byte-ért egy egész 1024 byte-os>
>>> lapot kell törölnöm és kezelnem.>
>>> Ugy látszik nincs más út.>
>>>>
>>> A mintaprogramban :>
>>> http://www.mikroe.com/download/eng/documents/compilers/mikrobasic/pro/pic/help/flash_memory_library.htm#flash_write>
>>>>
>>> meglepett, hogy 100mSec idők vannak az írások között>
>>> amíg az atmeles példánál pl. nincs ilyen megkötés ha jól emlékezem.>
>>>>
>>> Elsőre azt gondoltam találhatnék egyszerrűbb lehetőséget is...>
>>>>
>>> Üdv István>
>>>>
>>>>
>>>>
>>> 2011.09.12. 14:54:23 dátumon Nemka <nemka at nemka.hu> írta:>
>>>>
>>>> http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en538000>
>>>>>
>>>>>
>>>>>
>>>>> 2011.09.12. 14:50 Elight:>
>>>>> Sziasztok>
>>>>>
>>>>> EgyPIC procinál (PIC18F67JXX, amit kipróbálnék>
>>>>> már nincs belső EEPROM.>
>>>>> Csak FLASH-t lehet hasznáni.>
>>>>>
>>>>> Mire kell ügyelni?>
>>>>> Tehát hogyan ne trafáljak bele a jóhosszú programomba..>
>>>>>
>>>>> Csak néhány byte adatot kellene fixen tárolni.>
>>>>> Esetleg létezik  valami C.lib ami az EEPROM érzést emulálja?>
>>>>>
>>>>> Üdv István>
>>>>>
>>>>> ----------------------------------------->
>>>>>           elektro[-flame|-etc]>
>>>>>
>>>>>
>>>> Nemka>
>>>> --->    http://www.nemka.hu    <--->
>>>>>
>>>> ----------------------------------------->
>>>>           elektro[-flame|-etc]>
>>>>
>>>>
>>> -->
>>>>
>>> ----------------------------------------->
>>>           elektro[-flame|-etc]>
>>
>>
>>
>>
> Nemka>
> --->    http://www.nemka.hu    <--->
>>
> ----------------------------------------->
>           elektro[-flame|-etc]>
>
>
-- >
Az Opera forradalmian új levelezőjét használva: http://www.opera.com/mail/>
>
----------------------------------------->
          elektro[-flame|-etc]



More information about the Elektro mailing list