как добраться да секции .pbss(persistant) в XC32. задача реализовать ф-ии persist_check и persist_validate, которые были в библиотеке PICC18STD.
там это решалось определением в глубинах библиотек переменных
extern persistent char _Lnvram[], _Hnvram[];
_Lnvram - указывала на начало секции _Hnvram - на ее конец
вот и вопрос как получить адрес секции pbss и ее размер.
extern persistent char _Lnvram[], _Hnvram[];
static persistent long magic;
static persistent unsigned char checksum;
#define MAGIC 0x1B25C687
void persist_validate(void) {
register persistent char *cp;
register char c;
magic = MAGIC;
checksum = 0;
for (c = 0, cp = _Lnvram; cp != _Hnvram;) c += *cp++;
checksum = -c;
}
int persist_check(int flag) {
register persistent char *cp;
register char c;
if (magic == MAGIC) {
for (c = 0, cp = _Lnvram; cp != _Hnvram;) c += *cp++;
if (c == 0) return 1;
}
if (flag) {
for (cp = _Lnvram; cp != _Hnvram;) *cp++ = 0;
persist_validate();
}
return 0;
}