Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° устройств Π½Π° основС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… процСссоров Ρ„ΠΈΡ€ΠΌΡ‹ Analog Devices с использованиСм Visual DSP++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 22

Автор ОлСг Π’Π°Π»ΡŒΠΏΠ°

/*** Π—Π°ΠΏΠΈΡΡŒ ΠΏΠΎ адрСсу 0x0000 ***/

i6=^x_input;    { Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Π±ΡƒΡ„Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…            }

call check_ack; { ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠ΅ΠΌΡƒ                }

call format;    { Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅                         }

io(0x0100)=ay0; { -IWR ΠΈ IS Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ 16 Π±ΠΈΡ‚ IAD 0-15 }

call check_ack; { ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠ΅ΠΌΡƒ                }

io(0x0100)=ay1; { -IWR ΠΈ IS Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ младшиС 8 Π±ΠΈΡ‚ IAD 0-15  }

idle;           { Π Π΅ΠΆΠΈΠΌ оТидания                               }


/****************************************************************/

/* ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСформатирования 24-Π±ΠΈΡ‚ слова памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ */

/****************************************************************/

format: ay0=pm(i6,m6); { 16 ΡΡ‚Π°Ρ€ΡˆΠΈΡ… Π±ΠΈΡ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π² рСгистрС ay0 }

ay1=px;                {  8 ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π² рСгистрС ay1 }

rts;


/***************************************************************************/

/* ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° оТидания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° состояния Π»ΠΈΠ½ΠΈΠΈ -IACK Π² Π½ΠΈΠ·ΠΊΠΎΠ΅ состояниС */

/***************************************************************************/

check_ack:

ax0=dm(0x3fΠ΅5);       { Π§ΠΈΡ‚Π°Ρ‚ΡŒ PF1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ -IACK             }

ar=tstbit 1 of ax0;   { ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PF1                                 }

if ne jump check_ack; { Если процСссор Π½Π΅ Π³ΠΎΡ‚ΠΎΠ² вновь ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ -IACK}

rts;

.endmod;

МногиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ читатСлям ΠΈΠ· описания ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‡Ρ‚ΠΎ позволяСт Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· тСкста, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ использован ряд ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сосрСдоточСны часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Ρ‹Π·ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ call, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записываСтся имя ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Команда io(0x0001)=ax0 осущСствляСт запись содСрТимого рСгистра ax0 Π² ΠΏΠΎΡ€Ρ‚ Π²Π²ΠΎΠ΄Π°- Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎ адрСсу 0x0001. Команда ar=tstbit 1 of ax0 заносит Π² рСгистр ar Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ разряда рСгистра ax0. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π·Π° этой, ΠΊΠΎΠΌΠ°Π½Π΄Π° if ne jump check_ack провСряСт состояниС Ρ„Π»Π°Π³ΠΎΠ² ALU ΠΈ осущСствляСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ check_ack, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Ρ‹Π» ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ со всСми ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ сигнального процСссора ADSP-2181 ΠΌΡ‹ познакомимся ΠΏΠΎΠ·ΠΆΠ΅.

ΠŸΡ€ΠΈ компиляции этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° idmaidma.dat Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ„Π°ΠΉΠ» Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ idmaidma.lda. Π’ качСствС Ρ„Π°ΠΉΠ»Π° Π΄Π°Π½Π½Ρ‹Ρ… idmaidma.dat ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» рассмотрСнной Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ mem_clr.lda, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слСдуСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΠΈ послСдниС Π΄Π²Π΅ слуТСбныС строки. Π”Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. ПослС Ρ‡Π΅Π³ΠΎ Ρ„Π°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ, Π·Π°Π΄Π°Π² Π΅ΠΌΡƒ имя idmaidma.dat. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π“Π»Π°Π²Π° 11. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ассСмблСра

Π’ этой Π³Π»Π°Π²Π΅ говорится ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для управлСния процСссом ассСмблирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, рассмотрСнных Ρ€Π°Π½Π΅Π΅, Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя строки Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ². Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ процСссом ассСмблирования. Они ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ прСпроцСссором, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ инструкций Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ ассСмблировании ΠΊΠΎΠ΄. Π›ΡŽΠ±Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ассСмблСра начинаСтся с Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. НСкоторыС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ сразу Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ косой Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ послС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ассСмблСра ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ однострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС. Если трСбуСтся многострочный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС запись Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

.Π”Π˜Π Π•ΠšΠ’Π˜Π’Π [/ΠŸΠΠ ΠΠœΠ•Π’Π 1][/ΠŸΠΠ ΠΠœΠ•Π’Π 2] ... [ΠΠ Π“Π£ΠœΠ•ΠΠ’]; {ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ}

Π’ Π΄Π°Π½Π½ΠΎΠΉ записи ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ…. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈ выполняСт Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ пояснСния.

Помимо Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ассСмблСра, Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ADSP-2181 сущСствуСт нСсколько Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² для систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°. Π Π°Π½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ систСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли имССтся Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» описания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ach для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ устройства, построСнного Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ сигнального процСссора. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ эмулятора для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти систСмы, Ρ‚ΠΈΠΏ памяти процСссора (ΠžΠ—Π£ ΠΈΠ»ΠΈ ΠŸΠ—Π£), какая Ρ‡Π°ΡΡ‚ΡŒ памяти являСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΈ внСшнСй ΠΈ какая пСрифСрия ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π² памяти. ΠŸΡ€ΠΈ нСобходимости, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ систСмным ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ с Ρ†Π΅Π»ΡŒΡŽ получСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° описания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ для Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° процСссора.

ΠŸΠ΅Ρ€Π΅Π΄ запуском систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ sys, содСрТащим Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ описания устройства (систСмы). Запуск систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

bld21 имя_Ρ„Π°ΠΉΠ»Π°[sys] [-c]

Π—Π΄Π΅ΡΡŒ имя_Ρ„Π°ΠΉΠ»Π° β€” это имя исходного Ρ„Π°ΠΉΠ»Π° систСмной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. Если Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ отсутствуСт, систСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ добавляСт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ sys. БистСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ создаСт Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» описания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ach. ΠšΠ»ΡŽΡ‡ -с Π΄Π΅Π»Π°Π΅Ρ‚ систСмный ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ рСгистру символов, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΌ использованиС Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра (прописных ΠΈΠ»ΠΈ строчных) символов. Если ΠΊΠ»ΡŽΡ‡ -с Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» с символами Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ рСгистра. Для Π²Ρ‹Π·ΠΎΠ²Π° справки систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

bld21 -help

Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ справку ΠΎ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. ΠšΠ»ΡŽΡ‡ -help Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ срСдств Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Рассмотрим Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ основныС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ систСмного ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° ΠΈ ассСмблСра для ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… процСссоров сСмСйства ADSP.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SYSTEM

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SYSTEM опрСдСляСт имя (Π½Π°Π·Π²Π°Π½ΠΈΠ΅) систСмы ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² исходном Ρ„Π°ΠΉΠ»Π΅ систСмной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

.SYSTEM имя_систСмы;

Π’ языкС ассСмблСра допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΈΠΌΠ΅Π½ Π½Π°Π±ΠΎΡ€ символов, содСрТащий:

- прописныС латинскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΎΡ‚ Β«AΒ» Π΄ΠΎ Β«ZΒ»;

- строчныС латинскиС Π±ΡƒΠΊΠ²Ρ‹ ΠΎΡ‚ Β«aΒ» Π΄ΠΎ Β«zΒ»;

- Π·Π½Π°ΠΊ подчСркивания Β«_Β».

ИмСна Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Π΄ΠΎ 32 Π·Π½Π°ΠΊΠΎΠ². НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π½ с описаниСм ΠΈΡ… назначСния:

Main_prog {ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° языкС ассСмблСр}

var1 {ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ};

buff {Π‘ΡƒΡ„Π΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ…};

met173 {ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ ΠΌΠ΅Ρ‚ΠΊΠ°};

DAC {ΠŸΠΎΡ€Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² памяти}.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ADSP21XX

Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° опрСдСляСт, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ процСссора сСмСйства ADSP2100 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС. Данная информация пСрСдаСтся ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ связСй) ΠΈ симулятору Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ach. ПослС этого Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ связСй Π² состоянии ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ мСсто располоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² соотвСтствии с ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ памяти для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° процСссора. Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌ:

.ADSP2100; {Для ADSP-2100 ΠΈ ADSP-2100A}

.ADSP2101;

.ADSP2105;

.ADSP2111;

.ADSP2150; {Для ADSP-21msp50 ΠΈ ADSP-21msp55}

.ADSP2151; {Для ADSP-21msp51 ΠΈ ADSP-21msp56}

.ADSP2101MV; {Для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ систСмы ADSP-2101 (ADSP-2115)}

.ADSP2101P; {Для систСмы со страничной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ADSP-2101}

.ADSP2181; {Для ADSP-2181}

ΠΈ Ρ‚.ΠΏ.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° MMAP

Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° опрСдСляСт логичСскоС состояниС Π²Ρ‹Π²ΠΎΠ΄Π° MMAP процСссора Π² систСмС. Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌ:

.MMAP0 {Π’Ρ‹Π²ΠΎΠ΄ MMAP=0}

.MMAP1 {Π’Ρ‹Π²ΠΎΠ΄ MMAP=1}

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MMAP0, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ происходит послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ начинаСтся с Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ адрСса Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MMAP1, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· памяти Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ нСдоступна, ΠΈ внутрСнняя ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ отобраТаСтся Π½Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ адрСса пространства памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Когда эта Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° пропускаСтся, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° модСлирования ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ MMAP1.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SEG

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SEG опрСдСляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅ΠΊΡ†ΠΈΡŽ систСмной памяти ΠΈ описываСт Π΅Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. НС сущСствуСт раздСлСния памяти ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² SEG ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚Π° информация пСрСдаСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ связСй, симулятору ΠΈ эмулятору Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ach. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SEG ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ:

.SEG/ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1/ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2/... имя_сСгмСнта[Ρ€Π°Π·ΠΌΠ΅Ρ€];

Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρƒ присваиваСтся символьноС имя. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ΅ имя позволяСт Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти. На языкС ассСмблСр это достигаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ SEG. Π Π°Π·ΠΌΠ΅Ρ€ сСгмСнта указываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок. Π­Ρ‚Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° интСрпрСтируСтся ΠΊΠ°ΠΊ количСство 16-разрядных слов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ 24-разрядных слов инструкций Π² сСгмСнтС.