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

 
 
 
Reply to this topicStart new topic
> stm32f746 (discovery)
ivan24190
сообщение Jul 14 2017, 14:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Здравствуйте, уважаемые форумчане.
Намечается проект на основе stm32f746 (пока отработка будет производиться на discovery), одной из частей которого является работа с экраном.
Поэтому возник вопрос: существуют ли нормальные библиотеки для работы с дисплеем, кроме cubeMX?
(Интересует создание GUI под требования заказчика или необходимо все рисовать самому в формате *.bmp?)
До этого ни с дисплеями ни с тачем не доводилось работать.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 14 2017, 19:55
Сообщение #2


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Естественно есть всё. И редакторы и библиотеки. Простенькие - без денег. Нормальные - за деньги. Смотрите и выбирайте.
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jul 15 2017, 05:43
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Интересуют конечно бесплатные, на ум приходит только emWin, а что есть еще?
И вообще кто какими пользуется, если не секрет...

Сообщение отредактировал ivan24190 - Jul 15 2017, 10:15
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 15 2017, 17:05
Сообщение #4


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Возьмите подходящий дисплей nextion и рисуйте.
Когда мастерство отточите - перенесёте на свою платформу.

https://www.itead.cc/wiki/Nextion_HMI_Solution
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jul 20 2017, 15:23
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Добрый вечер уважаемые форумчане. При работе с платой stm32f746 discovery возникла проблема:
не могу понять почему сразу после прошивки с подключенным программатором плата работает (выводятся строки текста на дисплей),
а если передернуть питание, то выводится только первая строка, а дальше ничего не происходит.
Специально после вывода строк пытаюсь поморгать светодиодом в бесконечном цикле, но до этого дело так и не доходит.
Думал, что случается HardFault или другие системные исключения, но в них даже не заходит.
Ощущение будто висит контроллер непонятно где.
Из периферии используются LTDC и SDRAM (инициализировано CubeMX) ну и порты ввода вывода. Хоть тресни не пойму что происходит.
Если нужно могу выложить код.
Кстати, еще вопрос на засыпку как запустить отладку из оперативной памяти, способом подходящим для stm32F4 и stm32F1 этого сделать не удалось.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 20 2017, 15:32
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ivan24190 @ Jul 20 2017, 18:23) *
Кстати, еще вопрос на засыпку как запустить отладку из оперативной памяти, способом подходящим для stm32F4 и stm32F1 этого сделать не удалось.

ОЗУ разная бывает. Бывает внешняя, а бывает внутренняя.
Из внутренней - также как и из флешь: загрузить туда и запустить.
Из внешней: почти так же, но в скрипте JTAG-эмулятора необходимо проинитить контроллер внешней памяти. Ну и при перепрограммировании PLL не забыть корректно обработать этот момент со сменой частот.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 20 2017, 20:27
Сообщение #7


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Вообще ничего не понятно.
Почему не добавить вывод сообщений при входе/выходе из функций ?
Если при соединенном дебуггере запустить, а потом присоединиться через него ?
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jul 20 2017, 21:53
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



x893, проблемное место нашел, только пока не понял почему так происходит.
Использовал счетчик тактов ядра из модуля DWT для формирования задержек.
На stm32f1 и stm32f4 это прекрасно работало. А на f7 почему-то не взлетело.
Как только заменил эти задержки на серию "нопов" проблемы исчезли.
Весь день убил на это дело уж никак подумать не мог, что виновата функция задержки,
сделанная на модуле DWT, т.к. раньше претензий к ней не было.

А вот с запуском отладки из внутреннего ОЗУ, пока не получилось (кеил 5)
Как делал на F4 и F1.
В файле system_stm32fxx.c дефайнил "VECTAB_SRAM".
Во вкладке Target -> IROM менял адрес flash на адрес ОЗУ т.е. 0x0800 0000 менял на 0x2000 0000,
и устанавливал размер кода, например 0x10000.
Затем на вкладке Target -> IRAM задавал начальный адрес ОЗУ с учетом значения, занятым кодом,
т.е. 0x2001 0000, естественно уменьшал доступный объем ОЗУ.
Дальше во вкладке Debug выбирал файл Dbg_Ram.ini, в котором тупо прописана функция Setup(),
которая устанавливает указатель стека и программный счетчик величинами 0x2000 0000 и 0x2000 0004.
Во вкладке Flash Settings также менял адрес с которого прошивать на 0x2000 0000.
Затем компилировал и запускал отладку. Все работало.
А на f7 такой способ не работает, прошивать - прошивает по заданным адресам, но отладка не запускается,
и вываливается куча ошибок о несоответствии содержимого прошивки и того что там якобы должно быть.
Может есть какой либо другой способ для запуска отладки из ОЗУ, применительно к f7, подскажите.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 20 2017, 22:15
Сообщение #9


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Я бы, как начинающий, провел бы такой тест.
Всё как описано, но для кода выделил верхушку ОЗУ (например с 2000 4000 и размер 4000), а IRAM поставил в 2000 0000 и размер 4000.
И скорректировал .ini файл.

И потом ещё поигрался с boot0 и boot1.
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jul 21 2017, 05:14
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Если кому нужно, отладку из внутреннего ОЗУ удалось запустить способом предложенным здесь:
https://community.st.com/docs/DOC-1529-how-...-device-keil-v5
Оказывается есть небольшие отличия при запуске отладки из ОЗУ в кейле v4 и v5.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 21 2017, 05:53
Сообщение #11


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Спасибо, но гугл пока не забанили.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 21 2017, 09:13
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ivan24190 @ Jul 21 2017, 00:53) *
Весь день убил на это дело уж никак подумать не мог, что виновата функция задержки,
сделанная на модуле DWT, т.к. раньше претензий к ней не было.

Счётчик тактов в DWT ещё включить надо (есть соотв. бит). Кроме того - он не реализован в некоторых МК.
Вам изучать периферию надо. По юзермануалу на МК, а не тыкаться наудачу во "вкладки" и кубы всякие. И меньше "чудес" будет...
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jul 21 2017, 15:08
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



jcxz, полностью согласен с Вами насчет доков, но как говорилось нужно было на скорую руку...
Вот и последствия.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th July 2025 - 09:31
Рейтинг@Mail.ru


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