[an error occurred while processing this directive]
|
У меня TMS320VC5509 и 8M внешней память.
EMIF сконфигурировал и похоже работает.
По примеру из файла помощи обьявил переменную :#pragma DATA_SECTION(ival, ".far_data")
#pragma FAR(ival)
int ival;и указатель на нее:
FARPTR iptr = (FARPTR) &ival;Объявил в CMD раздел MEMORY:
PAGE 2:
DATA1(RW) : origin = 040000h length = 04000hИ SECTIONS:
.far_data : { } > DATA0 PAGE 2Скомпилировал.
Линкер честно положил куда нужно:00020000 _ival
.far_data
* 2 [ 00040000 ] 00020000 * 00000001 UNINITIALIZED
[ 00040000 ] 00020000 * 00000001 main.obj (.far_data)Для проверки написал запись и чтение двух слов
far_poke(iptr,0xAA55);
j=far_peek(iptr);
fprintf (my_file,"0xAA55= %X\n", j);far_poke(iptr,0x55AA);
j=far_peek(iptr);
fprintf (my_file,"0x55AA= %X\n", j);Данные получаю правильные:
0xAA55= AA55
0x55AA= 55AAРешил проверить куда указывает указатель:
fprintf (my_file,"&ival= %X\n",(FARPTR) &ival);
Выдает последнее записанное значение:
&ival= 55AAКак правильно отобразить значение указателя в HEX?
Спасибо.
E-mail: info@telesys.ru