Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


BIN3PCI ошибки

Вы не вошли.

 Поиск | Регистрация | Вход 

Юрий Иванов
28.04.2003 10:06:30
#1

Гость

BIN3PCI ошибки

Нужно было сделать много (около 50) маленьких буферов. Решил не заморачиваться с их ручным распределением по памяти, а писАть просто
.VAR/DM/RAM/CIRC Buf1[0x10];
.init Buf1: <zero.dat>; {в zero.dat 0x400 нулей}

Буфера по памяти раскидываются, однако BIN3PCI (v0.99) выдает ошибки:
Данные не попали ни в один сегмент (адpес 0: значение 0 )
Данные не попали ни в один сегмент (адpес 1: значение 0 )
Данные не попали ни в один сегмент (адpес 2: значение 0 )
....
Данные не попали ни в один сегмент (адpес 3fe: значение 0 )
Записываем сегменты
--------------------------------------
Сегмент Internal PM, pазмеp  1239 слов
Сегмент Internal DM, pазмеp     0 слов
--------------------------------------

Что это значит?

28.04.2003 11:23:33
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: BIN3PCI ошибки

Вы не указали адрес буфера, поэтому он, в принципе, может располагаться в любой части памяти данных. BIN3PCI.exe работает в соответствии с диапазонами адресов, заданными в файле описания сегментов *.seg.
Допустим у Вас установлен ADSP-2184. Компилятор об этом ничего не знает и располагает Ваш буфер с адреса 0x0, который у этого DSP не доступен. BIN3PCI.exe обнаруживает эту ошибку и выдаёт соответствующее сообщение. Правда при этом в файле описания сегментов должен обязательно быть указан допустимый диапазон адресов именно для ADSP-2184.

Юрий Иванов
29.04.2003 11:25:34
#3

Гость

Re: BIN3PCI ошибки

Спасибо за разъяснение, вылечилось доработкой напильником архитектурного файла l783.ach:
$0000 1FFF paxINT_PM_USER t
$2000 3FDF dadINT_DM_USER t

29.04.2003 12:53:53
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: BIN3PCI ошибки

Можно и так конечно. Но, на мой взгляд, легче было бы подправить файл описания сегментов smile))

Юрий Иванов
29.04.2003 14:11:25
#5

Гость

Re: BIN3PCI ошибки

Дело в том, что у меня из одного исходника собирается несколько программ при помощи ifdef/'ов. И назначать ручками абсолютные адреса нет никакого желания.