6.3.2 Реализация взаимодействия с ПЦОС

advertisement
6.3.2 Реализация взаимодействия с ПЦОС
Отдельным вариантом обмена с ПЦОС следует рассматривать обмен с
процессорами фирмы Texas Instruments семейства C6000. Среда Matlab имеет
расширения Embedded Target for the TI TMS320C6000™ DSP Platform и
MATLAB Link for Code Composer Studio Development Tools. Эти разрешения
позволяют используя функции в Matlab взаимодействовать с средой
разработки проектов для этих процессоров Code Composer Studio и с
данными в памяти и регистрах процесора на отладочной плате. Если к ПК
подключена отладочная плата, взаимодействие с которой поддерживает Code
Composer Studio, то посредством Matlab можно создавать каналы обмена
даннями в реальном времени.
Функция ccsdsp(‘propertyname’,’propertyvalue’,…) позволяет создать
ссылку на интерфейс взаимодействия с Code Composer Studio. Если
использовать эту функцию без параметров, то она вернет ссылку на
соединение с процессором определенным по умолчанию. Созданная ссылка
будет иметь следующий набор параметров, приведенный в таблице 6.1.
Следует отметить все параметры после создания ссылки доступны только для
чтения.
Таблица 6.1 – Параметры создаваемой ссылки.
Объект Параметр
По
Описание
умолчанию
CCSDSP 'apiversion'
API версия для созданной ссылки
'proctype'
Тип используемого процессора
'procname'
CPU
Имя процессора
'status'
No
Статус программы загруженной в
процессор
'boardnum'
0
Идентификатор платы
'procnum'
0
Идентификатор процесора на плате
назначенный ССS
'timeout'
10s
Время ожидания Matlab ответа на
свой запрос
Каналы 'timeout'
10s
Время ожидания СCS ответа от
RTDX
процессора на плате
'numchannels' 0
Количество открытых каналов через
ссылку
Функция ccsboardinfo позволяет получить информацию о доступных
платах и размещенных на них процессорах. Использование этой функции
возможно для предоставления пользователю указать требуемую плату и
процессор, в который загружена программа для верификации.
Функция open(‘ccs_link’,’file_name’) позволяет открыть указанный
файл в среде Code Composer Studio. Эта функция может быть использована
для открытия проекта содержащего описание реализации УК/ДЦСС. Выбор
проекта можно предоставить пользователю.
Для компиляции открытого проекта присутствует функция
build(cc,'all',timeout). Компиляция, выполненная этой командой аналогична
запуску компиляции из меню Code Composer Studio.
Загрузить исполняемый файл в память процессора можно с
использованием функции load(cc,'filename',timeout). Данная функция
позволяет загрузить указанный пользователем файл.
Возможность управления ходом выполнения программы предоставляет
функция run(cc,state,timeout). Выполнение этой функции приводит к запуску
процесса выполнения программы, начиная с адреса указанного в регистре
программного счетчика. Тип выполнения определяется параметром state,
принимающим следующие значения ‘run’ – запускает процесор в режим
выполнения программы и возвращает управление в Matlab, ‘runtohalt’ –
запускает на выполнение программу в процессоре и ожидает пока
выполнение достигнет точки останова, а потом возвращает управление
Matlab, ‘tohalt’ – меняет состояние текущего выполнения ожидает пока
выполнение достигнет точки останова и возвращает управление Matlab.
Функция restart(cc,timeout) устанавливает в регистре программного
счетчика адрес входа в программу, т.е. начальный адрес.
Функция halt(cc,timeout) – прерывает выполнение текущей программы
процессором.
Обмен данными между процессором и системой проектирования
можно осуществить посредством записи данных в память процессора и
чтения данных из памяти. Такой вид обмена данными возможен перед
запуском программы и после ее остановки. Реализовать этот вид обмена
можно с помощью функций address(cc,'var'), read(cc, address, 'datatype',
count,timeout), write(cc,address,data,timeout). Функция address позволяет
получить адрес переменной в памяти процессора. Функции write и read
соответсвенно записывают и читают данные по указанному адресу в памяти
процессора.
При таком виде обмена данными между процессором и системой
проектирования тестирования правильности работы реализации можно
производить путем формирования массива пакетов и записи их в память
процессора, а после того как в процессе выполнится программа кодирования
или декодирования этих пакетов, то результирующие пакеты будут записаны
также в память процессора. После остановки процесса выполнения система
проектирования может получить доступ к этим данным и провести их
сравнение с эталонными данными.
Второй вариант обмена – создание каналов обмена данными в режиме
реального времени. Такой подход позволяет передавать данные
выполняющейся программе и получать от нее данные не прерывая процесс
выполнения. Каналы обмена данными в таком виде называются RTDXканалами.
Конфигурирование
этих
каналов
выполняется
функцией
configure(rx,length,num). Эта функция определяет количество таких каналов
и их размер.
Разрешить использование канала перед открытием позволяет функция
enable(rx,'channel'), а запретить использование перед удалением функция
disable(rx,'channel').
Открыть
канал
можно
функцией
open(rx,'channel','mode') с указание вида использования канала, для чтения
или для записи, а закрытие канала выполняется функцией
close(rx,'channel1','channel2',...).
Чтение сообщений из канала выполняется функцией readmsg(rx,
channelname, datatype, siz, nummsgs, timeout). При чтении указывается имя
канала, из котрого будет читаться сообщение, тип данных сообщения, размер
сообщения и количество сообщений. Запись сообщений в канал выполняется
функцией writemsg(rx,channelname,data,timeout). Дополнительные функции,
которые полезны при работе с RTDX-канала: isenabled(rx,'channel') –
определяет доступне ли канал для передачи, isreadable(rx,'channel') –
определяет возможно ли чтение указаного канала, msgcount(rx,'channel') –
возвращает количество сообщений в очереди канала.
Таким образом, с помощью функций пакета расширения Matlab
MATLAB Link for Code Composer Studio Development Tools
можно
организовать обмен данными через CodeComposerStudio с процессорами
цифровой обработки фирмы Texas Instruments семейства C6000.
Download