Метою лабораторної роботи є знайомство з інтегральним середовищем розробки програм Code Composer Studio версії 5 (CCS) компанії Texas Instruments.
Середовище CCS призначене для розробки програмного забезпечення для мікропроцесорів і мікроконтролерів, що випускаються компанією TI, і включає такі інструменти, як редактор вихідних текстів, компілятор, компонувальник, відладчик і симулятори:
- редактор дозволяє створювати і редагувати вихідні файли (мова С або асемблер);
- компілятор необхідний для створення об'єктного файлу;
- компонувальник або лінкер дозволяє об'єднати в один об'єктний файл кілька вихідних і бібліотечних файлів;
- різноманітні засоби налагодження програмного забезпечення - це набір спеціальних засобів перегляду стану внутрішніх регістрів та пам'яті, засоби візуалізації даних тощо.
В лабораторній роботі необхідно створити новий проект в CCS, модифікувати тексти нескладних програм на мові C та графічно представити дані за допомогою симулятора мікропроцесора TMS320C6678.
Виконання лабораторної роботи
Налаштування плати EVM для завантаження програми
Виключіть живлення плати. Дотримуйтеся правил роботи з платою, приведених в ЛР1.
Встановіть режим завантаження перемикачами на платі EVM «No Boot» відповідно до таблиці режимів завантаження:
Створення проекту
1. Для створення проекту виберіть пункти меню File → New → CCS Project. Відкриється форма нового проекту.
2. В полі Target виберіть тип і модель мікропроцесора – C66xх Multicore DSP і TMS320C6678. Для того, щоб використовувати зовнішню плату TMDSEVM6678L EVM, в полі Connection виберіть емулятор Texas Instruments XDS100v1 USB Debug Probe.
3. В полі Project name введіть ім'я проекту, наприклад, LAB2.
4. При установці прапорця Use default location проект буде створений в папці поточного користувача. В іншому випадку місце розміщення папки проекту слід вибрати після натискання на кнопку Browse. Перевірте чи немає кирилиці, в іншому випадку зніміть прапорець і через Browse виберіть папку для проекту.
!!! Не зберігати проекти в папках, в яких в назві є кирилиця. Ніде не писати кирилицею.
5. Необов’язково. В разі потреби в розділі Advanced Setting у випадаючому списку Output type виберіть Executable для створення програми, що виконується, в полі Device endianness порядок слідування байтів little (число записується в пам'ять в порядку збільшення адрес починаючи зі старшого слова і закінчуючи молодшим), в полі Compile version - версію компілятора TI v7.3.4, в полі Output format -формат виконуваного файлу eabi (ELF), в полі Linked command file - командний файл компонувальника, а в полі Runtime support library - стандартну бібліотеку часу виконання, наприклад, rts6600_elf.lib.
6. В розділі Project Template and Examples виберіть порожній проект Empty Project (with main.c). Натисніть кнопку Finish. CCS створить проект, який відобразиться у вікні Project Explorer (View > Project Explorer).
7. Необов’язково. Для включення в проект нових файлів натисніть праву кнопку мишки на імені проекту в панелі Project Explorer, виберіть пункт New File, введіть ім'я файлу в полі File name, наприклад, functions.с, і натисніть кнопку Finish.
8. Необов’язково. Для додавання в проект існуючих файлів натисніть праву кнопку мишки на імені проекту в панелі Project Explorer, виберіть пункт Add Files (або виберіть у віконному меню пункт Project → Add Files) і виберіть місце розміщення файлу. При встановленому флажку Copy File обраний файл буде скопійований в папку проекту.
9. Введіть вихідний текст програми у вікні текстового редактора main.с. Наприклад, функцію main та змінну.
Збірка проекту
10. Якщо налагоджувальна плата підключена до комп’ютера, виконайте збірку проекту, вибравши пункт меню Project → Build Project. Перегляньте у вікні Console опис помилок, виявлених компілятором і компонувальником. Виправте виявлені помилки і повторіть збірку проекту.
11. В випадку необхідності змініть налаштування збірки, вибравши в меню проекту пункт Show Build Settings. Аналогічні налаштування можна виконати для кожного файлу проекту при натисканні правої кнопки миші на імені файлу у вікні Project Explorer.
12. Вибір цільової платформи. До налагодження проекту необхідно вибрати і налаштувати цільову платформу. Цільовою платформою може бути або симулятор, або емулятор. В останньому випадку до комп'ютера повинна бути підключена плата. Симулятор починаючи з версії CCS 6 не підтримується, інакше дивіться посилання Target Configuration File. Емулятор вибирався в п.2.
13. Проекту потрібен командний сценарій компонувальника (linker command script). Він визначає карту пам'яті для платформи (де починається внутрішня, спільна і зовнішня пам'яті і т.д.) і вказує де ми хочемо розмістити наші частини коду і дані.
Ми збираємося помістити їх в спільній області пам'яті на процесорі.
14. Виберіть File->New->File, введіть ім'я файлу led_play.cmd і натисніть Finish.
Відкриється led_play.cmd файл в редакторі, вставте наступні команди лінкеру
//*************************************************************************
-c
-heap 0x41000
-stack 0xa000
/* Memory Map */
MEMORY
{
L1PSRAM (RWX) : org = 0x0E00000, len = 0x7FFF
L1DSRAM (RWX) : org = 0x0F00000, len = 0x7FFF
L2SRAM (RWX) : org = 0x0800000, len = 0x080000
MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
DDR3 (RWX) : org = 0x80000000,len = 0x10000000
}
SECTIONS
{
.csl_vect > MSMCSRAM
.text > MSMCSRAM
GROUP (NEAR_DP)
{
.neardata
.rodata
.bss
} load > MSMCSRAM
.stack > MSMCSRAM
.cinit > MSMCSRAM
.cio > MSMCSRAM
.const > MSMCSRAM
.data > MSMCSRAM
.switch > MSMCSRAM
.sysmem > MSMCSRAM
.far > MSMCSRAM
.testMem > MSMCSRAM
.fardata > MSMCSRAM
platform_lib > MSMCSRAM
}
//**************************************************************************
Завдання 1. Графічне представлення даних
За допомогою CCS можна відобразити вміст буферів даних (тобто масивів) в часовій або частотній області. Ця функція може бути використана в якості вбудованого осцилографа або аналізатора частоти.
1. Додайте буфер в вашу програму для значень, які ви хочете відобразити. Наприклад:
2. Побудуйте програму та запустіть її в режимі Debug.
3. Залиште прапорець тільки для 0 ядра процесора.
4. Перед запуском програми на виконання виконайте команду Tools > Graph > Single Time. Відкриється діалогове вікно налаштувань графічного екрану. В полі Start Address (початкова адреса масиву) вкажіть назву масиву, наприклад, signal. В полі Acquisition Buffer Size (величина оброблюваного масиву) вкажіть розмір масиву, наприклад 200. В полі Display Data Size (кількість відображуваних значень) вкажіть 200. В полі DSP Data Type (тип даних, що відображаються) виберіть відповідне значення, наприклад, 32-bit floating point. В полі Sampling Rate Hz (частота дискретизації) виберіть відповідне значення, наприклад, 6000.
5. Відкрийте ще одне графічне вікно - для відображення спектру сигналу. Відмінності від налаштувань попереднього вікна будуть полягати в наступному. В полі FFT Order (порядок ШПФ) виберіть відповідне значення, наприклад, 8.
6. Оновлення інформації в графічних вікнах відбувається в момент зупинки процесора. Для цього встановіть точку зупинки (breakpoint) у вікні вихідного файлу в рядку з оператором i = 0. Запустіть програму на виконання.
Вікна не оновлюються миттєво. Якщо хочете побачити оновлений вміст буфера в той час, коли DSP запущений, натисніть правою кнопкою миші в потрібному вікні та виберіть Refresh.
7. Після чого на створених вікнах з’явиться представлення сигналу в часовій та частотній областях.
Завдання 2
1. Створіть вихідний масив out_signal [SIZE]. Задайте постійний коефіцієнт gain та постійне зміщення по напрузі offset сигналу. Напишіть функцію, яка підсилює та зміщує вхідний сигнал. Виведіть графіки вихідного сигналу в часовій та частотній областях.
Домашнє завдання
1. Сформуйте сигнал з амплітудною модуляцією. Частоту дискретизації задайте 100кГц, частота носійної від 10 до 30кГц, частота обвідної не більше 2кГц. Виведіть графіки сигналу в часовій та частотній областях.
2. Дано 1-байтове число за варіантом (N * 20 – N % 8). Сформувати вихідний сигнал для передачі, використовуючи амплітудну маніпуляцію (ASK). Для кодування низького рівня бінарного сигналу використовується амплітуда 0,25 В, а для кодування високого рівня використовується амплітуда 1 В несучого сигналу синусоїдального типу. Тривалість імпульсу 1мс (яка швидкість передачі в біт/с ?), частота носійної 5 кГц, частота дискретизації 30 кГц (який повинен бути розмір масиву під сигнал?). Показати сигнал в часовій та частотній областях.
Література
1. С6678 Device_simulator http://processors.wiki.ti.com/index.php/TCI6616/C6670/TCI6608/C6678/TCI6618_Device_simulator_User_Guide
2. Printf_support http://processors.wiki.ti.com/index.php/Printf_support_for_MSP430_CCSTUDIO_compiler
3. Creating projects v5 http://processors.wiki.ti.com/index.php/GSG:Creating_projects_v5
4. Simulation http://processors.wiki.ti.com/index.php/Category:Simulation
5. Graphical Display of Data Buffers in CCSv5
https://www.haw-hamburg.de/fileadmin/user_upload/TI-IE/Daten/Labore/Digitale_Signalverarbeitung/pdfs/CCS5_Graphical_Display_en.pdf
6. Code Composer Studio Graphing Tool Tutorial http://coder-tronics.com/code-composer-studio-graphing-tool-tutorial/