Пр о ц е с с о р TMS 3 2 0C4 x
58
Глава 2
Программирование процессора TMS320C4x
Создание программ реального времени для процессоров TMS320C4x или
узлов в процессорных сетях на TMS320C4x либо аналогичных имеет некоторые
отличия от программ, работающих в DOS или в WINDOWS, и напоминает про-
граммирование автономных микроконтроллеров. Чаще всего отсутствует сис-
темная поддержка программы, поэтому загрузку программы, ввод/вывод дан-
ных в программу и распределение ресурсов - процессорного времени и памяти -
приходится делать разработчику. Обработка прерываний и синхронизация от-
дельных функций программы тоже входит в его задачу. При создании программ
реального времени применяется принцип: вычислить все, что можно, заранее.
Лучше потерять несколько килобайт памяти для хранения заранее вычислен-
ных констант или таблиц, чем несколько десятков машинных циклов, особенно
на критичных ко времени участках алгоритма.
При создании программы реального времени можно выделить следую-
щие этапы:
•
формализация задачи и составление алгоритма;
•
кодирование;
•
отладка и оптимизация кода.
Формализация задачи и составление алгоритма
- самый трудоемкий
этап проекта. Проектирование программы реального времени начинается с изу-
чения алгоритма обработки и определения характеристик входных и выходных
потоков данных. Как правило, программы ЦОС рассчитаны на непрерывную
работу, т.е. являются бесконечными или зацикленными. Один проход такой
программы (например обработка одного кадра изображения) называется
рабо-
чим циклом
. В течение рабочего цикла программы осуществляется полный на-
бор операций над конечным массивом данных: ввод, обработка и вывод. При
проектировании рабочего цикла определяются:
•
форматы входных и выходных данных;
•
организация памяти для хранения массивов, структур, переменных, констант
и т.д.;
•
порядок хранения данных в массивах;
•
массивы констант, требуемые программой;
•
последовательность и характеристики ввода/вывода массивов данных для
обработки в зависимости от характера обработки или требований задания;
•
взаимодействие (синхронизация) подпрограмм ввода/вывода с подпрограм-
мами обработки данных.
Для решения этих проблем требуется представлять организацию и воз-
можности процессора. После того, как станет ясна организация данных и по-
следовательность их обработки программой, необходимо получить полный ал-
горитм работы. Чем подробнее будет алгоритм, тем проще выполнить второй
этап - кодирование.