реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Embedded Coder Support Package for STMicroelectronics STM32F4-Discovery Board
Grizzzly
сообщение May 20 2015, 07:11
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 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/8V8aFESSgws
https://youtu.be/0ggkL2uW5wo

В Таиланде вообще ихобрели целый тулбокс, имеющий в десятки раз больше настроек, чем стандартный от STM и MATLAB. Пока не устанавливал.
http://waijung.aimagin.com/index.htm?w2d_m..._setting_up.htm
Go to the top of the page
 
+Quote Post
syoma
сообщение May 20 2015, 14:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Я пользуюсь Embedded Coderoм из 2014a. Но я только генерирую Cи-код с настройками для Cortex-M3, и затем получившиеся исходники компилирую в Keil ARM вместе с другими файлами, библиотеками и драйверами. У меня так все работает.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение May 20 2015, 16:28
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(syoma @ May 20 2015, 17:52) *

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

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

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

Меня в основном интересует цифровая обработка сигналов. Понятно, что простенькие линейные алгоритмы можно генерировать, но вот с разными условиями, переходами, наверное, будет сложно. Тогда по идее надо Stateflow применять. Раньше с ним вообще на работал. Вам не попадались материалы по генерации сложных проектов? Хотелось бы посмотреть, как люди с опытом поступают в таких случаях.
Go to the top of the page
 
+Quote Post
syoma
сообщение May 21 2015, 04:15
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 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 пользуем, но материалов кроме хелпа не так уж много.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение May 21 2015, 08:02
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



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

Цитата(syoma @ May 21 2015, 07:15) *
Вот что мы пробуем запустить - это Host/Target Connection - т.е возможность мониторить внутренние сигналы модели в реальном времени, когда она запущена и работает на нашем контроллере. Но в этой фиче пока еще куча багов и оно не работает как надо.


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

Сообщение отредактировал Grizzzly - May 21 2015, 08:02
Go to the top of the page
 
+Quote Post
syoma
сообщение May 22 2015, 11:52
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Grizzzly @ May 21 2015, 10:02) *
Про разные ошибки в этой фиче пытался спрашивать на форуме MathWorks, но там никто не отвечает. Думаю, что помимо разработчиков, пока только единици пользуются подобным. Наверное, нужно подождать год-другой, когда или разработчики исправят, или количество пользующихся вырастет, что тоже приведет к ускорению усправления ошибок.

Такие вещи мало кому нужны, и инфой о них они очень неохотно делятся. У меня официальный матлаб, поэтому я открывал Case и тогда они мне отвечали.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение May 22 2015, 18:30
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 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. Еще что-то по аналогии в скриптах сам пописал. На формумах почитал, у троих была подбная проблема, так и не решили. Наверно, если несколько дней потратить, можно допилить. Но стоит ли игра свеч? Главное, что сам код рабочий.
Go to the top of the page
 
+Quote Post
syoma
сообщение May 23 2015, 07:15
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Я думаю - не стоит. Используйте свою среду разработки, генерите только Сишные исходники из Симулинка, подключайте их и компилируйте. Там все понятно и работы на пару минут все настроить.
Нам пока еще за все время не приходилось отлаживать сам сгенерированный код, хотя он вполне читаем.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение May 25 2015, 07:29
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Проблема решена. На форуме MATLAB ответили. Действительно, надо было новую версию отладчика поставить и переименовать файлы. Я не переименовал один экзешник. Теперь прошивка загружается из MATLAB. Надеюсь, вывод сигналов из МК на ПК будет работать, пока руки не дошли проверить.
Если кому-то будет интересно, напишу решение.
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Dec 20 2015, 15:37
Сообщение #10


Знающий
****

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



Цитата(Grizzzly @ May 25 2015, 11:29) *
Проблема решена. На форуме MATLAB ответили. Действительно, надо было новую версию отладчика поставить и переименовать файлы. Я не переименовал один экзешник. Теперь прошивка загружается из MATLAB. Надеюсь, вывод сигналов из МК на ПК будет работать, пока руки не дошли проверить.
Если кому-то будет интересно, напишу решение.

Напишите pls! -Очень интересно. И DSP CMSIS подружили с MATLAB? На сайте у них написано, что должна генерить код под DSP CMSIS.
И еще - как и какой блоксет скачиваете под SIMULINK для генерации кода? На сколько я понял - это делается из под самого MATLAB.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 20 2015, 18:57
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 20 2015, 20:24
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Думаю, если генерировать только сишный код, без самой прошивки, и не стараться запустить симуляцию, подключить библиотеку DSP будет проще. В крайнем случае можно будет вручную заменить фильтры, умножения и т.д. на библиотечные функции, благо автоматических комментариев в коде достаточно, легко можно найти нужный участок.
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Dec 20 2015, 20:25
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 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 с какой железкой программатором работает?
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 20 2015, 20:32
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 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 вовсе не нужен.
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Dec 20 2015, 20:33
Сообщение #15


Знающий
****

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



Цитата(Grizzzly @ Dec 21 2015, 00:32) *
P.S. Невнимательно прочитал пост. Чтобы скачать для STM нужные тулбоксы, надо зайти на панели инструментов в Supports Package, возможно, будет какая-то регистрация, но это формальность. На этот тулбокс лицензии не нужно.


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

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

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

Еще раз спасибо.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01489 секунд с 7
ELECTRONIX ©2004-2016