[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