Eu tenho um arquivo de cabeçalho C (.h):
typedef uint8_t paraFunction(uint8_t paraVal, uint8_t paraNum);
paraFunction *paraCallTable[256];
E eu tenho um arquivo fonte C (.c):
paraFunction *paraCallTable[] = { fn1, fn2, ... fn255, fn256 };
No entanto, a matriz termina na seção de dados. Quero que esteja em código/flash porque os endereços das funções (os dados do array) são constantes. A matriz é usada por funções em outros arquivos de origem.
Como reescrevo essas declarações para tornar tudo constante? E onde eles precisam estar (.c ou .h)?
Pesquisei no Google e tentei um zilhão de maneiras diferentes e obviamente não entendi.