Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KOMAROV.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.32 Mб
Скачать

1.15.3. Функционирование bdma

Перед запуском BDMA необходимо определить значения BEAD, BIAD (см. п. 1.15.2), а также код режима работы BDMA (содержимое регистра BDMA Control Register, см. п. 1.15.2). Запуск производится записью не нулевого значения в регистр BWCOUNT (см. п. 1.15.2).

Далее начинаются пересылки в соответствии с кодом режима работы байтового КПДП. После каждой пересылки значения BEAD и BIAD инкрементируются, а BWCOUNT – декрементируются. Этот процесс продолжается пока BWCOUNT не станет нулевым. Этот момент времени отмечается формированием запроса на прерывание от BDMA (см. п. 1.9.1).

Если прерывание от BDMA не используется, то окончание BDMA пересылок может быть определено по нулевому содержимому BW­CO­UNT. Если необходимо срочно (аварийно) прервать работу BDMA, то в BW­CO­UNT необходимо записать единицу.

С помощью кода режима можно организовать пересылку программных кодов и кодов данных в различных форматах. Это поясняется содержимым табл. 1.18.

Таблица 1.18

Форматы BDMA

BTYPE

Адрес

ПП или ПД

Содержимое

ПП или ПД

Адрес БП

Содержимое БП

00

РМ(0х0000)

0xABCDEF

BM(0x0000)

0xAB

BM(0x0001)

0xCD

BM(0x0002)

0xEF

00

PM(0x0001)

0x123456

BM(0x0003)

0x12

BM(0x0004)

0x34

BM(0x0005)

0x56

01

DM(0x0000)

0x9876

BM(0x0006)

0x98

BM(0x0007)

0x76

01

DM(0x0001)

0x3456

BM(0x0008)

0x34

BM(0x0009)

0x56

10

DM(0x0002)

0x9800

BM(0x000A)

0x98

10

DM(0x0003)

0x7600

BM(0x000B)

0x76

11

DM(0x0004)

0x0034

BM(0x000C)

0x34

11

DM(0x0005)

0x0056

BM(0x000D)

0x56

1.15.4. Загрузка программ с помощью bdma

Загрузка программ с помощью BDMA осуществляется, если при старте процессора выдержаны следующие условия: MMAP = 0 и BMODE = 0. При этом автоматически регистры BDMA инициализируются следующим образом:

  • BWCOUNT = 32 (из БП во внутреннюю ПП будут записываться не более 32-х команд);

  • BDIR = 0 (пересылка из БП во внутреннюю ПП), BMPAGE = 0 (программа расположена на нулевой странице БП), BEAD = 0 (начиная с нулевого адреса), BIAD = 0 (ПП также записывается с нулевого адреса), BTYPE = 0 (пересылаются трехбайтовые коды операций);

  • BCR = 1 (на время пересылок работа процессора запрещена);

  • BMWAIT = 7 (предполагается медленная память).

Пересылаемая программа является загрузчиком исполняемой программы. Если исполняемая программа создавалась с помощью утилиты PROM Splitter, входящей в состав утилит ADSP-2100 Family, то загрузчик подключается автоматически.

После пересылки загрузчика управление передается на нулевой адрес внутренней ПП (на начало загрузчика). Далее загрузчик выполняет всю работу по пересылке исполняемой программы во внутреннюю ПП.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]