[elektro] PIC EEPROM helyett FLASH használata

Elight elight at gmail.hu
Tue Sep 13 09:36:32 CEST 2011


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/



More information about the Elektro mailing list