MPLAB - prace s EEPROM
Pavel Hudeček
edizon na seznam.cz
Pátek Leden 7 16:16:23 CET 2022
EMEM je skutečně jen pro informaci jak se mají alokovat adresy.
Na přístup jsou různé funkce typu eeprom_blabla(pointer ...)
Lépe je to vyřešené jen v CodeVisionAVR, tam se deklaruje:
eeprom int eBla=0;
a už lze psát
x = y + eBla;
Tam vůbec není problém udělat v eeprom pole pointerů do flash a ty pak
normálně používat, nebo ty různé paměťové přístupy jakkoli jinak kombinovat.
Teda samozřejmě nejde dát do struktury prvky v různých pamětech. Ale jinak
všechno co má smysl, tak jde:-)
Vždycky když používám EEPROM v Atmel studiu, trpím, protože jsem zvyklý psát
i dost dlouhé vzorce, kde je víc proměnných v EEPROM.
PH
---------- Původní e-mail ----------
Od: Admin HWnews <hwnews na cncnet.info>"Dne 06.01.2022 v 20:49 Jan Waclawek
napsal(a):
> No tak ja som asi nepochopil, co vlastne bola povodna otazka.
>
> Ale myslim si, ze zakladny problem je v tom, ze mas privelke ocakavania.
> Ten C prekladac nie je o nic chytrejsi ako ten Pascalovsky prekladac.
no me mate prave to rozsireni EEMEM, ktere rika prekladaci, ze ma tu
promennou umistit do EEPROM...tak jsem zavahal, ze treba je pak
cteni/zapis transparentni via nejake rozsireni...mimochodem cekal jsem
treba ze aspon cteni (prirazeni) by byl takovej bonbonek co by chodit mohlo
>
>> moje predstava je, ze nadefinuji pole struktur. Jedna
>> cast bude ulozena normalne v kodu tedy ve flash pameti (to jsou data,
>> ktera jsou znama v dobe kompilace) a pak bych rad mel jeste druhou sadu,
>> ktera bude uzivatelsky definovatelna ...treba 10 polozek pole (podle
>> toho co se vejde do EEPROM).
>
> Ak bola Tvoja predstava ta, ze to bude jedno pole, ktoreho cast bude vo
> FLASH a cast v EEPROM, tak... nie, to nejde.
neeee to samozrejme je mi jasne, ze je scifi
>
> Takze asi najrozumnejsie riesenie je mat dve polia, jedno vo FLASH a jedno
> v EEPROM, a tiez dve sady funkcii, ktore z tych poli citaju/zapisuju (teda
> zapisuju len v pripade EEPROM). A mat v RAM jednu "pracovnu" kopiu tej
> struktury, do nej si nacitat z FLASH alebo EEPROM podla potreby, a ked
> pride na zapis, tak zapisat znova podla toho, kam to ide. Ano, otrocky.
> Kompilator tu nijako nepomoze.
Ano tak to bude...abych to priblizil...jedna se o dvoukanalovy DA
prevodnik, ktery po pripojeni cidla (MODBUS a FINET) dotazem zjisti o
jake cidlo se jedna a na zaklade toho vyhleda konfiguraci, kde ma mimo
jine napsano jakym zpusobem se mapuje rozsah merene veliciny cidla na
klasicky proudovy vystup 4-20mA. Vystupni kanaly jsou dva v pripade ze
cidlo meri dve veliciny. V kodu jsou napevno zname konfigurace
existujicich cidel a v eeprom bud alternativni konfigurace a nebo
konfigurace ulozena uzivatelem, ktera nebyla v dobe kompilace znama.
Takze nejdriv prosmejdim konfigurace ulozene v eeprom a kdyz nenajdu tak
budu hledat ty ve flash.
>
> Mimochodom, neprezradil si, o ktory prekladac ide, a tak som trocha
> guglil... a klucove slovo EEMEM je... zda sa... ze avr-gcc, premenovany
> Microchipom na XC8. Takze ide o AVR, je to tak? Ak ano, tak bohuzial, na
> citanie/zapis EEPROM nie je ina cesta ako pouzivat obezlicky/funkcie.
Ano je to tak...xc8 a mcu je ATmega328...vsechno je pro me bohuzel uplne
nove.
>
>
>> Tady ale netusim jaky vyznam ma definovat neco v EEPROM...stejne se s
>> tim neda primo pracovat...stejne budu muset pouzit neco takoveho:
>>
>> eeprom_write_block(&DA485_par, &DA485_par_EE, sizeof(DA485_struct));
>>
>> coz mi prijde v podstate uplne to same...
>
> Ano, v podstate je to uplne to iste ako ked si si v Pascale tie adresy
> pocital. Toto som popisoval v poslednom odstavci toho dlheho textu
> ("Rozdiel medzi...").
>
> Mimochodom, presne tymto istym vyvojom som prechadzal onoho casu aj ja,
> tiez som si len s nechutou pripustal, ze ta automatizacia, ktoru prekladac
> v tomto smere ponuka, je viacmenej ziadna...
no evidentne zazraky se nedeji...a dekuji za obsahle komenty ;-)
RV
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220107/80bde0b7/attachment.htm>
Další informace o konferenci Hw-list