[an error occurred while processing this directive] [an error occurred while processing this directive]
Господа, помогите решить проблему в проекте на Асме в Кейле (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено KSAR 09 октября 2001 г. 08:40

Необходимо сделать так, чтобы несколько сегментов IDATA в разных модулях отображались на одно адресное пространство.
Насколько я понял из описания это можно сделать с помощью атрибута OVERLAYABLE:
"OVERLAYABLE - Specifies that the segment can share memory with other segments. Segments declared with this relocation type can be overlaid with other segments which are also declared with the OVERLAYABLE relocation type."
-> "OVERLAYABLE - определяет, что сегмент МОЖЕТ разделять память с другими сегментами. Сегменты, объявленные с таким типом размещения МОГУТ быть перекрыты другими сегментами, также объявленными с типом размещения OVERLAYABLE".

В приведенном ниже примере этого не происходит. Подскажите что я делаю не так.
Спасибо всем!

----------------------------------------
файл Main_ADuC.asm

NAME Main_ADuC
...
?ID?Main_ADuC SEGMENT IDATA OVERLAYABLE
...
RSEG ?ID?Main_ADuC ;
fgh: DS 20h ;
...
END
----------------------------------------

файл SPI_ADuC.asm

NAME SPI_ADuC
...
?ID?SPI_ADuC SEGMENT IDATA OVERLAYABLE
...
RSEG ?ID?SPI_ADuC
SPIBuf: DS 20h ; SPI buffer
...
END
----------------------------------------

файл ADC.asm

NAME ADC
...
?ID?ADC SEGMENT IDATA OVERLAYABLE
...
RSEG ?ID?ADC
Buff: DS 20h ; !!! ADC_Scale_Save
...
END
----------------------------------------

Получаем:

IDATA 0071H 0020H UNIT STACK
IDATA 0091H 0020H UNIT ?ID?MAIN_ADUC
IDATA 00B1H 0020H UNIT ?ID?SPI_ADUC
IDATA 00D1H 0020H UNIT ?ID?ADC


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru