|
|
  |
Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board |
|
|
|
May 20 2015, 07:11
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Кто-нибудь пользовался в 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/8V8aFESSgwshttps://youtu.be/0ggkL2uW5woВ Таиланде вообще ихобрели целый тулбокс, имеющий в десятки раз больше настроек, чем стандартный от STM и MATLAB. Пока не устанавливал. http://waijung.aimagin.com/index.htm?w2d_m..._setting_up.htm
|
|
|
|
|
May 20 2015, 16:28
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(syoma @ May 20 2015, 17:52)  Ура! Нашелся человек, который тоже генерирует код из MATLAB  )) У меня тоже версия MATLAB 2014a. Помню, после установки дополнений для ARM был косяк с библиотеками CMSIS, разработчиками MATLAB неверно был путь прописан, исправил, код начал генерироваться хорошо. А у вас DSP библиотека заработала? Я генерировал код из примера с FIR фильтром, он так MATLAB так вызов функции arm_fir_init_f32 и не сгенерировал, всё время получается сишный код. Вот и я подумал, что лучше полученные файлы компилить в Keil и работать с хорошим отладчиком, но, с другой стороны, подкупает возможность PIL симуляции своей наглядностью. Хотя бы раз запустить, чтобы вживую посмотреть. Меня в основном интересует цифровая обработка сигналов. Понятно, что простенькие линейные алгоритмы можно генерировать, но вот с разными условиями, переходами, наверное, будет сложно. Тогда по идее надо Stateflow применять. Раньше с ним вообще на работал. Вам не попадались материалы по генерации сложных проектов? Хотелось бы посмотреть, как люди с опытом поступают в таких случаях.
|
|
|
|
|
May 21 2015, 04:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Если говорить об STM32, то я генерю код для F103/105 - сами понимаете, не для цифровой обработки сигналов. В проектах посложнее, где есть ЦОС, у нас ребята генерят код для Intel Core i5-i7 - у них вопросов по DSP тулбоксу не возникало.
Ну еще для очень серьезных проектов генерим код из HDL Codera - но там уже Xilinx.
По PIL - не думаю, что Вас оно сильно заинтересует. Мы, например, имея уже несколько работающих проектов за плечами, так и не применили PIL за ненужностью. На практике качество кода такое, что если он заработает, то он ведет себя так-же как и модель. Поэтому этот шаг всегда пропускается и переходится сразу к HIL или тестам в железе. Насколько я помню PIL они придумали для возможности сертификации. Вот что мы пробуем запустить - это Host/Target Connection - т.е возможность мониторить внутренние сигналы модели в реальном времени, когда она запущена и работает на нашем контроллере. Но в этой фиче пока еще куча багов и оно не работает как надо.
Stateflow пользуем, но материалов кроме хелпа не так уж много.
|
|
|
|
|
May 21 2015, 08:02
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Огромное Вам спасибо за развернутый ответ! Цитата(syoma @ May 21 2015, 07:15)  Вот что мы пробуем запустить - это Host/Target Connection - т.е возможность мониторить внутренние сигналы модели в реальном времени, когда она запущена и работает на нашем контроллере. Но в этой фиче пока еще куча багов и оно не работает как надо. Про разные ошибки в этой фиче пытался спрашивать на форуме MathWorks, но там никто не отвечает. Думаю, что помимо разработчиков, пока только единици пользуются подобным. Наверное, нужно подождать год-другой, когда или разработчики исправят, или количество пользующихся вырастет, что тоже приведет к ускорению усправления ошибок.
Сообщение отредактировал Grizzzly - May 21 2015, 08:02
|
|
|
|
|
May 22 2015, 11:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата(Grizzzly @ May 21 2015, 10:02)  Про разные ошибки в этой фиче пытался спрашивать на форуме MathWorks, но там никто не отвечает. Думаю, что помимо разработчиков, пока только единици пользуются подобным. Наверное, нужно подождать год-другой, когда или разработчики исправят, или количество пользующихся вырастет, что тоже приведет к ускорению усправления ошибок. Такие вещи мало кому нужны, и инфой о них они очень неохотно делятся. У меня официальный матлаб, поэтому я открывал Case и тогда они мне отвечали.
|
|
|
|
|
May 22 2015, 18:30
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(syoma @ May 22 2015, 14:52)  Такие вещи мало кому нужны, и инфой о них они очень неохотно делятся. У меня официальный матлаб, поэтому я открывал Case и тогда они мне отвечали. Ограничусь тогда Logic Analyzer в Keil. Сегодня еще раз попытался соединить STM32F429-Disco с Simulink - ошибка с GNUшным отладчиком openOCD. Несколько часов разбирался, скачал новую версию, которая точно поддерживает мою плату, но, видимо, служебные скрипты MATLAB заточены под версию 0.6.1. Еще что-то по аналогии в скриптах сам пописал. На формумах почитал, у троих была подбная проблема, так и не решили. Наверно, если несколько дней потратить, можно допилить. Но стоит ли игра свеч? Главное, что сам код рабочий.
|
|
|
|
|
Dec 20 2015, 18:57
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(Make_Pic @ Dec 20 2015, 18:37)  Напишите 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 - Dec 20 2015, 19:07
|
|
|
|
|
Dec 20 2015, 20:25
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(Grizzzly @ Dec 20 2015, 22:57)  Для Simulink должны быть установлены: Simulink Coder, Embedded Coder, MATLAB Coder и Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board. Чисто для ARM есть свой блоксет.
... Спасибо! Еще, если можно, вопросы: Все это в дистрибутиве или надо дополнительно скачивать, если да то как? OpenOCD с какой железкой программатором работает?
|
|
|
|
|
Dec 20 2015, 20:32
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
P.S. Невнимательно прочитал пост. Чтобы скачать для STM нужные тулбоксы, надо зайти на панели инструментов в Supports Package, возможно, будет какая-то регистрация, но это формальность. На этот тулбокс лицензии не нужно. Цитата(Make_Pic @ Dec 21 2015, 00:25)  Спасибо! Еще, если можно, вопросы: Все это в дистрибутиве или надо дополнительно скачивать, если да то как? OpenOCD с какой железкой программатором работает? Кроме тулбоксов для STM, в дистрибутиве. Про него выше написал. У меня с той, что встроена на Discovery. По USB. Можно генерировать прошивку, тогда пользовать штатный STM загрузчик. Думаю, от PIL симуляции больше проблем. Пока ее настроишь. В таком случае OpenOCD вовсе не нужен.
|
|
|
|
|
Dec 20 2015, 20:33
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(Grizzzly @ Dec 21 2015, 00:32)  P.S. Невнимательно прочитал пост. Чтобы скачать для STM нужные тулбоксы, надо зайти на панели инструментов в Supports Package, возможно, будет какая-то регистрация, но это формальность. На этот тулбокс лицензии не нужно.
Кроме тулбоксов для STM, в дистрибутиве. Про него выше написал.
У меня с той, что встроена на Discovery. По USB. Можно генерировать прошивку, тогда пользовать штатный STM загрузчик.
Думаю, от PIL симуляции больше проблем. Пока ее настроишь. В таком случае OpenOCD вовсе не нужен. Еще раз спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|