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