Пытаюсь разместить массив в pdata и создать на него указатель, расположенный в data.
char pdata massiv[32];
char pdata * data ptr_massiv = massiv;
code void main()
{
*ptr_massiv = 0xAA;
*(ptr_massiv + 1) = 0xBB;
}
В результате при дебаггинге в окне "Watch" смотрю на содержание массива "massiv" - пустой (все элементы равны нулю). Смотрю на *ptr_massiv и *(ptr_massiv + 1) - отображается, что там содержится 0xAA и 0xBB, соответственно!!! При этом ptr_massiv указывает именно на "голову" массива "massiv"!

В настройках проекта стоит:
Memory model: Compact (variables in PDATA)
Стоит галка напротив "Use On-chip XDATA"
В startup.a51:
PPAGEENABLE EQU 1
PPAGE EQU 0
PPAGE_SFR DATA 092H
PS. Если массив запихнуть в data или xdata, то все работет ок.