1 / 9

Использование языка Си для программирования ЦСП TMS320C67x

Использование языка Си для программирования ЦСП TMS320C67x. Ассемблер и Си.

phila
Download Presentation

Использование языка Си для программирования ЦСП TMS320C67x

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Использование языка Си для программирования ЦСП TMS320C67x

  2. Ассемблер и Си Язык АССЕМБЛЕРа – базовый язык программирования ЦСП. Он строго ориентирован на конкретную архитектуру ЦСП и позволяет в полной мере задействовать все его ресурсы, обеспечивая оптимальный с точки зрения скорости выполнения и размера программы код. Недостатком использования АССЕМБЛЕРа является сложность процесса разработки программ и необходимость хорошего знания архитектуры ЦСП.В современном мире скорость выпуска новых технических решений на рынок становится очень критичной для поддержания конкурентоспособности. Возникает задача ускорения процесса разработки и отладки программного обеспечения, упрощения модификации и переноса программных продуктов с одних аппаратных платформ на другие. Незаменимыми становятся языки высокого уровня, основным из которых является язык Си.

  3. Ассемблер и Си В настоящий момент все компании-производители ЦСП стараются обеспечить программиста возможностью использования языка Си/Си++. Для этого создаются компиляторы, автоматически переводящие программный код с Си на АССЕМБЛЕР конкретного сигнального процессора.Рассмотрим пример из лабораторной работы №1. Для реализации вычисления выражения: х = 1.1*2.2 + 3.3*4.4 + 5.5 – 0.5 мы разработали программу из 10 строк. При этом нам потребовалось изучить систему команд, особенности командного конвейера для выбора числа NOP, состав вычислительных блокови т. д. На языке Си такая программа состояла бы из одной единственной строки, не требуя никаких знаний о ЦСП: х = 1.1*2.2 + 3.3*4.4 + 5.5 – 0.5;/* Строка программы на языке Си */

  4. Ассемблер и Си Ассемблер Си MPYSP .M1 A1,A2,A1 ||MPYSP .M2 B1,B2,B1 NOP 3 ADDSP .L1X A1,B1,A2 NOP 3 ADDSP .L1 A2,A3,A2 NOP 3 SUBSP .L1X A2,B3,A0 NOP 3 NOP х = 1.1*2.2 + 3.3*4.4 + 5.5 – 0.5

  5. Ассемблер и Си Задача компилятора – обеспечить эффективный перевод Си-программы на язык АССЕМБЛЕРа, то есть использовать ресурсы ЦСП наиболее рационально. Однако компиляторы далеки от совершенства и генерируемый ими код часто оказывается неоптимален. В примере лабораторной работы №1 программа, написанная на ассемблере, выполняется за 16 тактов, а программа на языке Си – за 25 тактов.

  6. Алгоритм разработки программы для ЦСП Итак, перед программистом возникает вопрос выбора языка программирования: эффективный, но сложный ассемблер, или простой и удобный, но не вполне эффективный Си? Компания Texas Instruments рекомендует при разработке программного кода для ЦСП TMS320C67x использовать следующий алгоритм. 1. Разрабатывается пакет программ на языке Си. 2. Проект компилируется и оценивается эффективность сгенерированного ассемблерного кода (скорость выполнения/размер программы). 3. Если эффективность недостаточная, выделяются наиболее проблемные фрагменты кода и проводится их оптимизация на языке Си. 4. Если оптимизация на Си не приводит к нужным результатам, выделенные фрагменты кода переписываются на языке линейного ассемблера. Линейный ассемблер аналогичен обычному ассемблеру, но допускает ряд упрощений синтаксиса, облегчающих процесс программирования.Код линейного ассемблера поступает на ассемблирование с оптимизацией, в процессе которого программа дополняется недостающей информацией.

  7. Особенности языка Си для ЦСП TMS320C67x Для более эффективного использования языка Си при программировании ЦСП C67x стандартный язык Си расширен набором специальных директив и других элементов синтаксиса. Ключевые слова - позволяют точно определить компилятору тип используемых переменных или функций (interrupt, cregister, …). Директивы компилятору – позволяют сообщить компилятору, как ему следует понимать определенный фрагмент кода (_ DATA_ALIGN, _ MUST_ITERATE). Встроенные средства – набор специальных Си-функций, переводимых компилятором напрямую в соответствующие им команды ассемблера. Позволяют задействовать на языке высокого уровня такие команды процессора, которые не могут быть представлены средствами стандартного языка Си. Ассемблерные вставки – ассемблерные команды, размещаемые прямо в тексте Си-программы: asm(”assembler text”); . Библиотека функций ЦОС – набор типовых функций ЦОС, разработанных специально для конкретного процессора и эффективно использующих его ресурсы. Библиотека DSPLIB содержит функции адаптивной фильтрации, корреляции, БПФ, фильтрации и свертки, и других вычислений.

  8. Создание проекта на языке Си Процесс создания проекта с использованием языка Си рассмотрим на примере:0. Создание рабочей папки. 1. Формирование сигнала в системе МАТЛАБ (1651 4 0 0 2000). Формирование фильтра в системе МАТЛАБ.2. Создание файла с программой 3. Создание проекта, подключение файлов, в том числе библиотеки rts и cmd.4. Компиляция. Анализ кода ассемблера. 5. Меню – свойства проекта, визуализация и др.

  9. Создание проекта на языке Си Процесс создания проекта с использованием языка Си рассмотрим на примере:1. Создать проект.2. Создать файл с текстом программы.3. Подключить к проекту этот файл и rts, cmd. 4. Компиляция. 5. Изучение кода. 6. Вывод характеристик фильтра. 7. Загрузка сигнала и вывод его на график. 8. Выполнение программы и проверка результата. 9. Оценка времени выполнения программы. 10. Разрешить компиляцию с оптимизацией. 11. Выполнить и оценить время выполнения.

More Related