C : Ako zadefinovat tabulku funkcii do flash pamati v C99?

Jan Waclawek konfera na efton.sk
Pondělí Září 18 08:40:24 CEST 2023


[preposielam]

Ahojte,

chvilku sa trapim s definovanim tabulky funkcii vo Flash. Ide mi o
nasledovnu cast kodu:

void Fn1(void) {
};
void Fn2(void) {
};
void Fn3(void) {
};
void Fn4(void) {
};

// tabulka funkcii
void ( *Fn_Array[4])() = {
   Fn1,
   Fn2,
   Fn3,
   Fn4
}

Ked zapisem tu tabulku takto, tak mi komplikator C da tabulku do RAM a
zozerie mi patricne miesto v RAMke, ale nevygeneruje ziadny warning ani
error. Chcel by som sa preto spytat, ako mam v C99 zapisat tu tabulku
funkcii, aby sa nekopirovala do RAM ale ostala vo Flash. Niekde treba
vhodne doplnit const, ale neviem kde, stale mi vyhadzuje
warningy. Kompilator je XC8 v2.43 free s -O2 optimalizaciami. Stara verzia
PicC PRO to vedela prelozit do flash automaticky, ale ta zase nie je C99
kompatililna.

Velmi pekne dakujem za pomoc.

A.



Další informace o konferenci Hw-list