PIC32 - MikroC - Flash (read/write)

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
ondradj
Příspěvky: 2
Registrován: 02 úno 2014, 01:00

PIC32 - MikroC - Flash (read/write)

#1 Příspěvek od ondradj »

Zdravím,

chtěl bych se obrátit na zkušenější a poprosit o radu s Flash pamětí procesoru PIC32MX440F512H. Ideálně kdyby to mohlo být rovnou konkrétně "slovy", respektive funkcemi, kompilátoru MikroC... Nyní k věci:

Jak do této paměti (co nejefektivněji a programátorsky nejčistěji) uložit následující proměnné?

CHAR setting[7];
CHAR text[10][20] = { "txt 1", "txt 2", "..", "..", "..", "..", "..", "..", "txt 9" };

Jde mi o čtení i zápis (obsah je demonstrativní, ale typ proměnné a hranice klíčové). Externí paměti nepřicházejí v úvahu.


Předem bych rád poděkoval všem, kteří mě odkáží na něco užitečného, ale především hlavně těm, pokud by si někdo dal tu práci mi to tu zkusit jednoduše/polopaticky "naprogramovat" :-)

hakamusai
Příspěvky: 943
Registrován: 17 dub 2007, 02:00

#2 Příspěvek od hakamusai »

Převodem CharToByte (předpokládám ,že ho MikroC umí) ?

Uživatelský avatar
ondradj
Příspěvky: 2
Registrován: 02 úno 2014, 01:00

#3 Příspěvek od ondradj »

hakamusai píše:Převodem CharToByte (předpokládám ,že ho MikroC umí) ?
Asi jsem se nevyjádřil dostatečně přesně, za což se omlouvám.. Jde mi o uložení zmíněných dvou proměnných (respektive polí) do paměti, která drží svou informaci i po odpojení napájení. Podle všeho starší typy CPU využívají EEPROM, současné FLASH paměti. Chtěl bych (kromě programu v programové paměti) nastavovat jisté věci pomocí sériové linky a ty aby zůstaly uloženy... V programové paměti ale být nemohou, protože čas od času mají být uživatelsky snadno dostupné a měnitelné (konkrétně pomocí bluetooth). Jediný můj problém je, že si neumím představit strukturu FLASH paměti, a jak s ní efektivně pracovat... :-(

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#4 Příspěvek od procesor »

Hmm. Dnes sa začína pri PIC32?

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#5 Příspěvek od AB1 »

Slovo FLASH se používá pro označení paměti programu.
Některé mikroprocesory mají vnitřní EEPROM pro uložení dat.

Jelikož v MikroC není možnost deklarovat proměnné v EEPROM, tak není elegantnější řešení než zapisovat a číst bajt po bajtu.

Ale jestli se dívám dobře, tak uvedený typ nemá vnitřní EEPROM.

Uživatelský avatar
frpr666
Příspěvky: 1051
Registrován: 28 pro 2009, 01:00

#6 Příspěvek od frpr666 »

Nevím jak u MikroC, ale u WinAVR je součástí knihovna libc, kde jsou už některé funce hotové.
Např.void eeprom_read_block (void __dst, const void __src, size_t __n)
Read a block of __n bytes from EEPROM address __src to SRAM __dst
void eeprom_update_block (const void __src, void __dst, size_t __n)
Update a block of __n bytes to EEPROM address __dst from __src

Nevím jak u flash u toho PICu píšou:
Program Flash Memory
D130 EP Cell Endurance 1000 — — E/W
Tedy jen min. 1000 erase/write cyklů ?

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“