You are on page 1of 15

Subscribe to DeepL Pro to edit this document.

Visit www.DeepL.com/pro for more information.

Національний університет "Одеська політехніка"


Кафедра інформаційних технологій

Життєвий цикл програмного забезпечення в сімействі процесорів


MOTOROLA. Компіляція програм.

Методичне керівництво до лабораторної роботи

Одеса 202 3р.


1 Мета роботи

Ознайомлення з поняттями життєвого циклу програми цифрових


процесорів обробки сигналів фірми Motorola. Отримання практичних
навичок по роботі з компілятором і лінкером ASM56300.

2 Стендове обладнання

Персональний комп'ютер Pentium II (жорсткий диск об'ємом


щонайменше 2 Гб і ОЗП - щонайменше 127 Мб)

3 Ключові положення

3.1 Життєвий цикл програмного забезпечення

Рисунок 3.1 - Життєвий цикл стандартної програми мовою асемблера

2
Для розроблення програм реалізації алгоритмів цифрової обробки
сигналів використовують, як правило, різні програмні засоби, до яких
відносяться крос-компілятори з мов високого рівня (наприклад, мова Сі) і
крос-асемблер. Асемблер для цифрових процесорів має низку особливостей і
досить сильно відрізняється від асемблера для конвенціональних процесорів.
Життєвий цикл стандартної програми мовою асемблера складається з
таких основних етапів:

1. Написання коду.
2. Спроба компіляції програми.
3. У разі невдалої компіляції - виправлення помилок у коді (використання
файлу лістингу).
4. Запуск лінкера для отримання *.cld-файлу
5. Завантаження отриманого абсолютного файлу в пам'ять цифрового
процесора, або в середовище симулятора і виконання програми.

Ця лабораторна робота розглядає етапи з першого по четвертий.

3.2 Виклик і запуск асемблера

Виклик і запуск асемблера на трансляцію програмних файлів


здійснюється за допомогою набору і виконання командного рядка такого
формату:

ASM56300 [список опцій] [ім'я файлу]

Де ASM56300 - ім'я програми асемблера фірми Моторола для


процесорів сімейства DSP56300;

[список опцій] - рядок, який може містити одну або кілька опцій
асемблера;

[ім'я файлу] - ім'я вихідного файлу мовою асемблера.

Опції або ключі командного рядка дають змогу уточнити або


модифікувати процес виконання трансляції програми (наприклад -
увімкнути/вимкнути генерацію лістингу).
Опції командного рядка можуть бути використані в будь-якому
порядку, але повинні передувати імені вихідного файлу. Деякі опції можна
задавати більше одного разу. Індивідуальні описи опцій вказують, які опції
можуть визначатися багаторазово. Кожному ключу має передувати знак
мінус (-). Символи опцій можуть бути у верхньому або нижньому регістрі
(прописні/рядкові знаки сприймаються однаково). Ключі команд, що
виконуються регулярно, поміщаються в спеціально виділену системну

3
змінну. Якщо така змінна виявлена в середовищі, асемблер використовує її
під час трансляції файлу.
Параметри опцій можуть слідувати безпосередньо за символом опції,
або відокремлюватися від опції символами пробілу (табуляції). Щоб
уникнути неоднозначності визначення того, чим є наступний запис -
параметром опції або ім'ям трансльованого файлу, перед параметром опції
пробіл краще виключати.
Можлива трансляція кількох файлів, за умови зазначення їхніх імен у
командному рядку; в результаті буде отримано один, вихідний файл.
У даній роботі для полегшення роботи з асемблером фірми "Моторола"
використовується додатковий файл командного рядка, який виконує
компіляцію програми автоматично під час подачі на його вхід імені файлу,
що містить вихідний код. У цей файл входять усі необхідні для правильної
роботи компілятора опції.
Параметри виклику файлу з командного рядка в цьому випадку такі

Asm.bat [ім'я викликаного файлу]

Де Asm.bat - ім'я додаткового файлу командного рядка, що


викликається.
Примітка: Для коректної роботи файлу командного рядка, він повинен
знаходитися у відповідній робочій директорії.
Використання опції буде розглянуто нижче. У результаті роботи
командного файлу і сукупності інших виконуваних програмних файлів
транслятора, буде отримано абсолютний виконуваний модуль, який може
бути завантажений у пам'ять процесора або програмного симулятора
цифрового процесора фірми "Моторола".

3.3 Текст навчальної програми

4
Ця програма здійснює множення сигналу, що надходить у процесор, на
константу за таким принципом:

константа

S1(t) S2(t):= S1(t)*const

Рисунок 3.2 - Принцип роботи навчальної програми

Програма задає розподіл пам'яті для вхідного і вихідного сигналів, далі


здійснює розподіл необхідних обчислювальних коефіцієнтів у пам'яті
процесора.
Зокрема, у цьому прикладі за вихідний сигнал прийнято значення
комірки в X-пам'яті з номером 4000, за константу, на яку проводиться
множення, прийнято величину 0.5, що зберігається за адресою 3000 в Y-
пам'яті процесора. Результуючий сигнал буде зберігатися в Y-пам'яті,
починаючи з адреси 2000.

4 Робота з транслятором

У цій роботі ви ознайомитеся з роботою транслятора асемблера


ASM56300. Ви навчитеся складати, транслювати і редагувати програми
мовою асемблера сімейства цифрових процесорів фірми "Моторола".

Далі наведено послідовність дій із трансляції програми за допомогою


транслятора асемблера ASM56300. Ілюстрації йдуть за поясненнями.

4.1 Введення вихідного тексту навчальної програми

1. У меню "Пуск" виберіть пункт "Виконати". На панелі, що з'явилася,


клацніть по кнопці "Обзор". Далі у вікні, що відкрилося, увійдіть у
директорію C:\Vc і виділіть у ній файл Vc.com.

2. Натисніть кнопку "Відкрити". Повернувшись таким чином на


вихідну панель меню "Виконати", клацніть мишею по кнопці "ОК".

5
3 Відкриється вікно графічної оболонки Volkov commander. Далі
робота може виконуватися, як у повноекранному режимі, так і у віконному
режимі.
Для переходу в повноекранний режим слід натиснути кнопку

На робочій панелі емулятора, або використовувати поєднання клавіш


"Alt" + "Enter". Далі ілюстрації наводяться для роботи у віконному режимі.
За допомогою комбінації клавіш "Alt" + "F1" слід перейти на робочий
диск "Е:", в якому знайти папку "MOTOROLA" і увійти в
неї (Рис. 4.1).

Рисунок 4.2 - Основне вікно графічної оболонки Volkov commander

6
4. У правій панелі графічної оболонки натисніть "Shift" + "F4". У вікні,
що відкрилося, введіть ім'я програми (prog2.asm) і натисніть "Enter".

Рисунок 4.3 - Завдання імені файлу програми

5. На запитання про те, який файл задати - виберіть пункт меню "New
file" і натисніть "Enter".
У вікні вбудованого редактора, що з'явилося, введіть текст навчальної
програми. Особливу увагу звертайте на просторову відповідність директив у
тексті програми - намагайтеся не допускати зайвих пропусків, переносів на
інший рядок тощо. Найчастіше саме ці помилки призводять до збоїв у
трансляції програми (Рис. 4.4).

7
Рисунок 4.4 - Введення навчальної програми

6. Закінчивши введення програми, натисніть кнопку "F2" для


збереження її у файл prog2.asm далі - натисніть "Esc" для виходу з вікна
редактора.
Якщо все було виконано правильно - серед файлів у директорії
з'явиться файл з ім'ям Вашої програми та розширенням .asm
Введення тексту вихідної програми закінчено.

4.2 Трансляція програми

1. У командному рядку введіть таку директиву:

E:\MOTOROLA>asm.bat prog2.asm

і натисніть "Enter" (Рис. 4.5).

8
Рисунок 4.5 - Директива командного рядка

2. При натисканні "Enter" розпочнеться процес обробки введеного


файлу за допомогою командного файлу asm.bat Зокрема буде виконано
директиву трансляції:

asm56300 -a -b -l -g prog2.asm

Яка запустить компілятор на виконання з такими параметрами:

-l генерація лістингу;
-a створення абсолютного вихідного виконуваного модуля;
-b створення об'єктного файлу;
-g використання налагоджувальної інформації в об'єктному файлі;

Після виконання трансляції на екрані з'являться результати трансляції


файлу програми (Рис. 4.6). Для докладної інформації про результати
трансляції необхідно звернутися до файлу лістингу.

9
Рисунок 4.6 - Результат компіляції файлу.

3. Після виконання трансляції необхідно переглянути файл лістингу.


Для цього необхідно знайти у списку файлів файл prog2.lst і натиснути
клавішу "F3" виклику вбудованого переглядача графічної оболонки.
На екрані з'явиться файл лістингу з результатами трансляції файлу.
Ліворуч від кожної команди послідовно вказується номер рядка, адреса
команди в програмній області пам'яті або в X- чи Y-пам'яті. Далі вказується
машинний код команди та її мнемоніка. Якщо програму було набрано
правильно, то в тексті програми не буде жодних повідомлень про помилки, а
наприкінці лістингу буде поміщено повідомлення

0 Помилки
0 Попередження

(Рис. 4.7)

10
Рисунок 4.7 - Приклад лістингу успішної трансляції.

Зверніть увагу на те, що в лістингу всі операнди відповідають


відведеним їм полям.
У разі успішного виконання компіляції в директорії з'явиться файл
абсолютного вихідного модуля prog2.cld Цей модуль можна завантажити в
середовище симулятора DSP56300, як це було зроблено в попередній роботі.
Поява вихідного модуля є критерієм правильності виконання роботи.

4.3 Усунення помилок

Як правило, під час введення програми виникають різні помилки. У


цьому разі потрібно їх виправити і знову запустити на виконання процес
компіляції.

1. У разі, якщо компілятор під час процесу зустріне помилку в тексті


трансльованої програми - з'явиться повідомлення про помилку і не буде
створено файл абсолютного вихідного модуля (Рис. 4.8).

11
Рисунок 4.8 - Повідомлення компілятора про помилку трансляції

2. Під час безпосередньої компіляції файлу буде видано тільки коротке


повідомлення про зустрінуту помилку. Для більш детальної інформації слід
звернутися до файлу лістингу (пункт 3, розділ 4.2).
3. У файлі лістингу будуть зазначені безпосередньо помилки та їхня
кількість (останнє наводиться наприкінці лістингу) (Рис. 4.9). Якщо вони
виникли, то слід записати інформацію про них у протокол виконання
лабораторної роботи і приступити до їх виправлення.

12
Рисунок 4.9 - Приклад лістингу файлу з повідомленням про помилку.

4 Виправлення помилок здійснюється у файлі вихідного коду (файл із


розширенням .asm). Для цього слід виділити файл у панелі графічної
оболонки і натиснути клавішу "F4" виклику вбудованого редактора графічної
оболонки.
Увага: Будьте уважні! Виправлення потрібно вносити до файлу з
розширенням .asm Редагування файлу лістингу є поширеною і
серйозною помилкою!
5. Після внесення до файлу програми відповідних змін слід повторити
процес компіляції файлу, для чого - виконати рекомендації, починаючи з
розділу 4.2. У разі виявлення нових помилок - виконати процедуру з їх
усунення заново.

13
4 Домашнє завдання

1 Вивчити ключові положення за методичним посібником і


рекомендованою літературою.
2 Замалювати в протокол схему життєвого циклу стандартної програми
мовою асемблера.
3 Підготувати протокол для виконання роботи.
4 Переписати в протокол текст навчальної програми.

5 Підготовка до роботи з компілятором

1 Увімкнути комп'ютер
2 Викликати програму Провідник
3 Увійти в директорію E:\Students\MOTOROLA\gui563\BIN

6 Лабораторне завдання

По черзі виконати всі пункти ключового положення. Записати в


протокол текст лістингу програми. За наявності помилок - записати в
протокол порядок їх виправлення.
Письмово відповісти на запитання для самоконтролю.

7 Запитання для самоконтролю

1 Що означають ключі в командному рядку виклику компілятора?


2 Які розширення файлів використовуються під час роботи з
компілятором? Що означають ці розширення?
3 Як відбувається компіляція файлу вихідного коду?
4 Перелічіть основні етапи життєвого циклу програми мовою
асемблера.
5 Яким чином відбувається виправлення помилок у програмі вихідного
коду? Який критерій безпомилкового виконання трансляції?

8 Зміст звіту

1 Схема життєвого циклу стандартної програми мовою асемблера.


2 Короткий конспект ключових положень.
3 Текст навчальної програми.
4 Текст лістингу навчальної програми.
5 Директиви введення та трансляції навчальної програми.
6 Процес виправлення помилок (якщо вони були).
7 Відповіді на запитання для самоконтролю.

9 Рекомендована література

14
1. М.С. Купріянов, Б.Д. Матюшкін, "Цифрова обробка сигналів:
процесори, алгоритми, засоби проектування", вид. 2-е перероблене,
Політехніка, СПб 2000р.
2. А. Солоніна, Д. Улахович, Л. Яковлєв, "Цифрові процесори обробки
сигналів фірми Motorola", СПб, БХВ-Петербург, 2000.
3. Сайт фірми Motorola http://www.mot.com

15

You might also like