Курс дает практические навыки генерации C кода из кода MATLAB. Рассказывается, как подготовить код MATLAB к генерации кода, и как выполнить генерацию оптимального C кода. Показан пример настройки интерфейсов и интеграции сгенерированного С кода во внешний проект.
Темы курса:
- Генерация С кода из алгоритмов MATLAB;
- Подготовка алгоритмов MATLAB для генерации кода;
- Работа с данными фиксированного и переменного размера;
- Генерация С кода из алгоритмов содержащих долговременные данные;
- Оптимизация сгенерированного кода;
- Подключение внешнего С кода;
- Перевод в фиксированную точку.
Предварительная подготовка:
Для прохождения курса требуется предварительное прохождение курса MATLAB для профессионалов, а также знание языка программирования C. Курс предназначен для опытных пользователей MATLAB
Используемые инструменты:
-
MATLAB Coder
-
Embedded Coder
Длительность - 2 дня.
Программа курса
День 1
Модуль 1. Использование MATLAB Coder для генерации кода.
Знакомство с MATLAB Coder и его применением.
- Обзор MATLAB Coder;
- Рабочий процесс генерации C кода из кода MATLAB;
- Генерация C кода;
- Просмотр полученного кода;
- Модули сгенерированного кода.
Модуль 2. Подготовка кода MATLAB для кодогенерации.
Написание кода MATLAB, готового к генерации кода в соответствие со стандартами MATLAB Coder.
- Перевод кода MATLAB в C код;
- Вызов неподдерживаемых функций MATLAB;
- Подготовка существующего кода MATLAB к кодогенерации;
- Стратегии подготовки кода для кодогенерации.
Модуль 3. Работа с данными фиксированного размера.
Генерация C кода из кода MATLAB, работающего со входными данными фиксированного размера или константами.
- Обзор характеристик данных;
- Задание входов верхнего уровня фиксированного размера;
- Задание постоянных входов верхнего уровня.
Модуль 4. Работа с данными переменного размера.
Генерация C кода из кода MATLAB, работающего со входными или локальными данными переменного размера.
- Задание входов верхнего уровня переменного размера;
- Задание локальных данных переменного размера;
- Переиспользование переменных.
День 2
Модуль 5. Работа с глобальными переменными, структурами и массивами ячеек.
Генерация C кода из кода MATLAB, содержащего долговременные данные, глобальные переменные, входящие структуры.
- Статические переменные;
- Глобальные переменные;
- Работа со структурами;
- Массивы ячеек в сгенерированном коде;
- Передача переменных по ссылке.
Модуль 6. Интеграция с внешним кодом.
Интеграция сгенерированного C кода с внешним C кодом.
- Обзор процесса интеграции кода;
- Точки входа в сгенерированном коде;
- Интеграция внешнего C кода с помощью интерфейса MATLAB Coder;
- Интеграция внешнего C кода с помощью внешней IDE;
- Вызов внешних C функций;
- Верификация и профилирование сгенерированного кода;
- Отладка исходного кода.
Модуль 7. Оптимизация сгенерированного кода.
Использование различных вариантов и техник для оптимизации сгенерированного кода.
- Разворачивание циклов в сгенерированном коде и выделение памяти;
- Встраивание функции и разбиение файла;
- Создание объекта конфигурации для MATLAB Coder;
- Удаление не нужного кода;
- Соглашения именам в сгенерированном коде;
- Конвертация проекта MATLAB Coder в скрипт.
Опциональный модуль. Fixed Point Design.
Переход из арифметике плавающей точкой в фиксированную.
- Обзор Fixed Point Design;
- Автоматизация рабочего процесса при переходе в фиксированную точку;
- Замена функций.