Перейти к содержанию
    

Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board

Кто-нибудь пользовался в Simulink Embedded Coder для STM32? В справке написано, что поддерживается только плата Discovery (по умолчанию в настройках стоит частота 168 МГц, которую невозможно изменить). Однако, на моей STM32F429-Disco заработала прошивка без проблем. Но вопрос не в этом. Сгенерированный hex я загружаю STM32 ST-LINK, однако из MATLAB, который использует openOCD, этого сделать не получается. Ошибок не выдает, прошивка не работает. Подключают ST-LINK'ом, читаю память, она пустая. Почему хочу загружать из MATLAB? Для Processor In the Loop (PIL) simulation. Хочется изучить еще один инструмент. Довольно любопытно.

 

У кого-нибудь получилось полностью "подружить" плату с Simulink?

 

Если кому-то интересно, есть видео по теме:

https://youtu.be/8V8aFESSgws

https://youtu.be/0ggkL2uW5wo

 

В Таиланде вообще ихобрели целый тулбокс, имеющий в десятки раз больше настроек, чем стандартный от STM и MATLAB. Пока не устанавливал.

http://waijung.aimagin.com/index.htm?w2d_m..._setting_up.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пользуюсь Embedded Coderoм из 2014a. Но я только генерирую Cи-код с настройками для Cortex-M3, и затем получившиеся исходники компилирую в Keil ARM вместе с другими файлами, библиотеками и драйверами. У меня так все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ура! Нашелся человек, который тоже генерирует код из MATLAB :)))

 

У меня тоже версия MATLAB 2014a. Помню, после установки дополнений для ARM был косяк с библиотеками CMSIS, разработчиками MATLAB неверно был путь прописан, исправил, код начал генерироваться хорошо. А у вас DSP библиотека заработала? Я генерировал код из примера с FIR фильтром, он так MATLAB так вызов функции arm_fir_init_f32 и не сгенерировал, всё время получается сишный код.

 

Вот и я подумал, что лучше полученные файлы компилить в Keil и работать с хорошим отладчиком, но, с другой стороны, подкупает возможность PIL симуляции своей наглядностью. Хотя бы раз запустить, чтобы вживую посмотреть.

 

Меня в основном интересует цифровая обработка сигналов. Понятно, что простенькие линейные алгоритмы можно генерировать, но вот с разными условиями, переходами, наверное, будет сложно. Тогда по идее надо Stateflow применять. Раньше с ним вообще на работал. Вам не попадались материалы по генерации сложных проектов? Хотелось бы посмотреть, как люди с опытом поступают в таких случаях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если говорить об STM32, то я генерю код для F103/105 - сами понимаете, не для цифровой обработки сигналов.

В проектах посложнее, где есть ЦОС, у нас ребята генерят код для Intel Core i5-i7 - у них вопросов по DSP тулбоксу не возникало.

 

Ну еще для очень серьезных проектов генерим код из HDL Codera - но там уже Xilinx.

 

По PIL - не думаю, что Вас оно сильно заинтересует. Мы, например, имея уже несколько работающих проектов за плечами, так и не применили PIL за ненужностью. На практике качество кода такое, что если он заработает, то он ведет себя так-же как и модель. Поэтому этот шаг всегда пропускается и переходится сразу к HIL или тестам в железе. Насколько я помню PIL они придумали для возможности сертификации.

Вот что мы пробуем запустить - это Host/Target Connection - т.е возможность мониторить внутренние сигналы модели в реальном времени, когда она запущена и работает на нашем контроллере. Но в этой фиче пока еще куча багов и оно не работает как надо.

 

Stateflow пользуем, но материалов кроме хелпа не так уж много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное Вам спасибо за развернутый ответ!

 

Вот что мы пробуем запустить - это Host/Target Connection - т.е возможность мониторить внутренние сигналы модели в реальном времени, когда она запущена и работает на нашем контроллере. Но в этой фиче пока еще куча багов и оно не работает как надо.

 

Про разные ошибки в этой фиче пытался спрашивать на форуме MathWorks, но там никто не отвечает. Думаю, что помимо разработчиков, пока только единици пользуются подобным. Наверное, нужно подождать год-другой, когда или разработчики исправят, или количество пользующихся вырастет, что тоже приведет к ускорению усправления ошибок.

Изменено пользователем Grizzzly

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Про разные ошибки в этой фиче пытался спрашивать на форуме MathWorks, но там никто не отвечает. Думаю, что помимо разработчиков, пока только единици пользуются подобным. Наверное, нужно подождать год-другой, когда или разработчики исправят, или количество пользующихся вырастет, что тоже приведет к ускорению усправления ошибок.

Такие вещи мало кому нужны, и инфой о них они очень неохотно делятся. У меня официальный матлаб, поэтому я открывал Case и тогда они мне отвечали.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такие вещи мало кому нужны, и инфой о них они очень неохотно делятся. У меня официальный матлаб, поэтому я открывал Case и тогда они мне отвечали.

Ограничусь тогда Logic Analyzer в Keil. Сегодня еще раз попытался соединить STM32F429-Disco с Simulink - ошибка с GNUшным отладчиком openOCD. Несколько часов разбирался, скачал новую версию, которая точно поддерживает мою плату, но, видимо, служебные скрипты MATLAB заточены под версию 0.6.1. Еще что-то по аналогии в скриптах сам пописал. На формумах почитал, у троих была подбная проблема, так и не решили. Наверно, если несколько дней потратить, можно допилить. Но стоит ли игра свеч? Главное, что сам код рабочий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю - не стоит. Используйте свою среду разработки, генерите только Сишные исходники из Симулинка, подключайте их и компилируйте. Там все понятно и работы на пару минут все настроить.

Нам пока еще за все время не приходилось отлаживать сам сгенерированный код, хотя он вполне читаем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решена. На форуме MATLAB ответили. Действительно, надо было новую версию отладчика поставить и переименовать файлы. Я не переименовал один экзешник. Теперь прошивка загружается из MATLAB. Надеюсь, вывод сигналов из МК на ПК будет работать, пока руки не дошли проверить.

Если кому-то будет интересно, напишу решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решена. На форуме MATLAB ответили. Действительно, надо было новую версию отладчика поставить и переименовать файлы. Я не переименовал один экзешник. Теперь прошивка загружается из MATLAB. Надеюсь, вывод сигналов из МК на ПК будет работать, пока руки не дошли проверить.

Если кому-то будет интересно, напишу решение.

Напишите pls! -Очень интересно. И DSP CMSIS подружили с MATLAB? На сайте у них написано, что должна генерить код под DSP CMSIS.

И еще - как и какой блоксет скачиваете под SIMULINK для генерации кода? На сколько я понял - это делается из под самого MATLAB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Напишите pls! -Очень интересно. И DSP CMSIS подружили с MATLAB? На сайте у них написано, что должна генерить код под DSP CMSIS.

И еще - как и какой блоксет скачиваете под SIMULINK для генерации кода? На сколько я понял - это делается из под самого MATLAB.

 

Для Simulink должны быть установлены: Simulink Coder, Embedded Coder, MATLAB Coder и Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board. Чисто для ARM есть свой блоксет.

 

Решение для работы с отладчиком.

Вот их ответ:

The openocd-0.6.1 doesn't support stm32f429I-Disco board. For reference, you can open 'mw_openocd_log.txt' file inside <model_name>_ert_rtw folder where openOCD logged a warning saying the stm32f4 board is not detected.

 

To overcome this issue, you can download newer version of openOCD and follow the below stesps:

 

1. download openocd from http://www.freddiechopin.info/en/downlo ... d-0.8.0.7z

2. Unzip the download openocd using 7-zip.

3. Rename the folder unzipped folder to openocd-0.6.1

4. Search for openocd-0.8.0.exe in above folder and rename it to openocd-0.6.1.exe

5. Take a copy of the 'F:\MATLAB\SupportPackages\R2014a\openocd-0.6.1'

5. Replace 'F:\MATLAB\SupportPackages\R2014a\openocd-0.6.1' folder with the newly renamed folder and should work.

 

Please note, The Embedded Coder Support Package for STM32F4-Discovery Board supports only STM32F4-Discovery (STM32F407VG processor) board. There could be incompatibilities with peripheral blocks with STM32F429I-DISCO (STM32F429ZI processor) board. Please use the support package at your own risk.

 

Сам я скачал последнюю версию на тот момент - 0.9.0. Изменял самостоятельно разные конфигурационные файлы, но не заметил, что экзешник тоже надо переименовать. Так что с версией 0.9.0 работает.

 

Разбирался с PIL-симуляцией (позволяет видеть в Simulink сигналы из МК в реальном времени, собственно, ради этого и потратил время на отладчик, иначе бы ST-LINKом прошивал). Меня интересуют алгоритмы ЦОС, так при генерации кода при обращении к библиотеке метематики от ARM-M выдаются ошибки. Пишется, что надо указывать абсолютный путь к ней. В мэйках прописал, но, видимо, там еще в каких-то специальных матлабовских файлах для генерации он прописан, что так просто не изменить. Так что не получилось подключить DSP CMSIS. Я не стал тратить время. Это на версии 2014a, может, в новых уже подправили что-то.

Изменено пользователем Grizzzly

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю, если генерировать только сишный код, без самой прошивки, и не стараться запустить симуляцию, подключить библиотеку DSP будет проще. В крайнем случае можно будет вручную заменить фильтры, умножения и т.д. на библиотечные функции, благо автоматических комментариев в коде достаточно, легко можно найти нужный участок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для Simulink должны быть установлены: Simulink Coder, Embedded Coder, MATLAB Coder и Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board. Чисто для ARM есть свой блоксет.

 

...

Спасибо! Еще, если можно, вопросы:

 

Все это в дистрибутиве или надо дополнительно скачивать, если да то как?

OpenOCD с какой железкой программатором работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Невнимательно прочитал пост. Чтобы скачать для STM нужные тулбоксы, надо зайти на панели инструментов в Supports Package, возможно, будет какая-то регистрация, но это формальность. На этот тулбокс лицензии не нужно.

 

Спасибо! Еще, если можно, вопросы:

Все это в дистрибутиве или надо дополнительно скачивать, если да то как?

OpenOCD с какой железкой программатором работает?

Кроме тулбоксов для STM, в дистрибутиве. Про него выше написал.

 

У меня с той, что встроена на Discovery. По USB. Можно генерировать прошивку, тогда пользовать штатный STM загрузчик.

 

Думаю, от PIL симуляции больше проблем. Пока ее настроишь. В таком случае OpenOCD вовсе не нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Невнимательно прочитал пост. Чтобы скачать для STM нужные тулбоксы, надо зайти на панели инструментов в Supports Package, возможно, будет какая-то регистрация, но это формальность. На этот тулбокс лицензии не нужно.

 

 

Кроме тулбоксов для STM, в дистрибутиве. Про него выше написал.

 

У меня с той, что встроена на Discovery. По USB. Можно генерировать прошивку, тогда пользовать штатный STM загрузчик.

 

Думаю, от PIL симуляции больше проблем. Пока ее настроишь. В таком случае OpenOCD вовсе не нужен.

Еще раз спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...