|
запустим GUI emWin вместе?, запуск полноценной графической оболочки на LPC1788 |
|
|
|
Nov 22 2012, 13:19
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Всем привет! Пытаюсь запустить графическую оболочку emWin на микроконтроллере LPC1788 и 7-ми дюймовом TFT. Библиотека emWin для нас, пользователей NXP уже более года как стала бесплатной. Так давайте же ей воспользуемся! Итак, идея моя такова. Я создал проект с нуля, запустил SDRAM и TFT, пользуясь примерами производителя платы. Теперь хочу запустить emWin, но не знаю как. Я буду выкладывать сюда проекты вплоть до того момента, когда все заработает. Если кто-то из профессионалов подскажет как запустить GUI быстро и правильно, я буду очень благодарен. Так или иначе, в результате у участников форума будет готовый, хорошо комментированный проект. Можно брать и пользоваться. Железо. Пользуюсь платой Starterkit под названием SK-MLPC1788 и дисплеем SK-ATM0700D4, 7 дюймов, 800*480 точек. Компилятор Keil MDK-ARM 4.60. Русский язык, кстати, у меня уже поддерживается. Могу рассказать как это сделать. Отладчик - клон J-link с firmware v.8. На данный момент проект содержит: все необходимые настройки проекта, включая подключение внешней памяти, опции отладчика и т.д., инициализацию проца, инициализацию SDRAM, ее тестирование, инициализацию TFT контроллера и пробный вывод текстовой строки на дисплей. Все работает. Далее, я подключил все (как мне кажется) по части emWin, но результата не видно. Видимо, что-то с конфигурированием библиотеки. Буду рад любой помощи. Проект во вложении.
|
|
|
|
|
Nov 23 2012, 10:34
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Цитата(Lotor @ Nov 23 2012, 14:13)  Надеюсь автор топика слышал про lpcware.comДа, конечно. Я располагаю большим количеством примеров. Пишу в приглядку. Тем не менее, пока результата нет. Хотя кое-какие ошибки обнаружил. В любом случае, результат (рабочая GUI) будет сюда выложена. На данный момент затык очень простой - исключение HardFault_Handler. Причина не ясна. Исключение возникает при вызове GUI_Init(). Буду рад, если кто-нибудь подскажет, на что обратить внимание. Я с исключениями сталкивался только однажды. Была попытка работы с периферией, которая была отключена. Здесь - что-то другое.
Сообщение отредактировал Dunduk - Nov 23 2012, 11:20
|
|
|
|
|
Nov 23 2012, 11:45
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Цитата(AlexandrY @ Nov 23 2012, 15:33)  Это же просто библиотека без исходников! Мало смысла с ней иметь дело. Я знаю, вы на GUI уже собаку съели. Скажите, что значит "без исходников" с точки зрения ее использования? Я смогу подключать свои шрифты? Видоизменять виджеты? Если нет, конечно, я лучше возьму micrium. Вроде была она где-то версии 3.98, кажется. Впрочем, процесс инициализации там очень похож. А значит, все те же вопросы у меня возникнут и там.
|
|
|
|
|
Nov 30 2012, 11:31
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
не прошло и полгода как появились первые признаки жизни emWin. Выкладываю. Причины, почему не работало: Мне не удалось правильно передать GUI адрес для видеобуфера. Пришлось сделать это также криво как в одном из фирменных (NXP+Segger) примерах, а именно (см LCDConf.c) Код #define VRAM_ADDR_PHYS (U32)&_aVRAM[0] __align(8) static U32 _aVRAM[XSIZE_PHYS * YSIZE_PHYS / (4 / PIXEL_WIDTH)] __attribute__ ((section ("VRAM"), zero_init)); и еще см. GUIConf.c: Код U32 static _aMemory[GUI_NUMBYTES / 4] __attribute__ ((section ("GUI_RAM"), zero_init)); //... GUI_ALLOC_AssignMemory(_aMemory, GUI_NUMBYTES); Конечно, при этом необходимо чтобы линкер знал, что такое VRAM и GUI_RAM. Потому что эта собака прекрасный линкер не ругается в том случае, если эти значения не определены. Поэтому Scatter-файл необходимо изменить, т.е. определить то место куда кладется буфер. Все пока. На очереди - запуск системного тика для GUI (TimeMS) и потом подключаем тачскрин. До связи!
Сообщение отредактировал Dunduk - Nov 30 2012, 11:33
|
|
|
|
|
Dec 25 2012, 14:52
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074

|
В Keil MDK-ARM 4.60 встроена emWin. Цитата emWin is delivered as an add-on product to MDK-ARM
|
|
|
|
|
Dec 31 2012, 07:16
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 16-06-05
Пользователь №: 6 074

|
Цитата(haker_fox @ Dec 27 2012, 17:13)  Да, но его нужно конфигурировать) Да, думаю хелпа и примеров должно хватить. После праздников буду этим заниматся.
|
|
|
|
|
Jan 3 2013, 12:15
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606

|
Цитата(Dunduk @ Nov 30 2012, 15:31)  не прошло и полгода как появились первые признаки жизни emWin. Выкладываю. ... Спасибо. Хочу для себя оценить удобства и недостатки emWin. Имею аналогичное железо (SK-MLPC1788 и TFT 7”). Несколько вопросов по настройке LCD в проекте emWin_test_301112 (файл TFT_ATM07_drv.h ) 1. Из каких соображений выбираются значения: #define C_GLCD_H_PULSE 60 … #define C_GLCD_V_PULSE 1 2. Где в проекте используются или для чего определяются: #define C_GLCD_CLK_PER_LINE …. #define C_GLCD_LINES_PER_FRAME …. #define C_GLCD_PIX_CLK ….. 3. Какой частотой мы тактируем данные пикселей? 4. Какая частота обновления экрана? 5. Почему LPC_IOCON->P2_1 = 0x20; ,а не =0x27 (файл TFT_ATM07_drv.c)?
Сообщение отредактировал skyv - Jan 3 2013, 13:20
|
|
|
|
|
Jan 3 2013, 12:21
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Цитата(skyv @ Jan 3 2013, 16:15)  Несколько вопросов по настройке LCD в проекте emWin_test_301112 Погодите, щас на рыбалку собираюсь, после праздников расскажу. Я сам мало чего там писал, мой метод - осознанный copy-paste.
|
|
|
|
|
Jan 3 2013, 13:21
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606

|
Цитата(Dunduk @ Jan 3 2013, 15:21)  Погодите, щас на рыбалку собираюсь, после праздников расскажу. Я сам мало чего там писал, мой метод - осознанный copy-paste.  Желаю хорошо отдохнуть.
|
|
|
|
|
Mar 30 2013, 19:29
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 29-01-11
Пользователь №: 62 559

|
Цитата(skyv @ Jan 3 2013, 16:15)  Спасибо. Хочу для себя оценить удобства и недостатки emWin. Имею аналогичное железо (SK-MLPC1788 и TFT 7”).
Несколько вопросов по настройке LCD в проекте emWin_test_301112 (файл TFT_ATM07_drv.h )
1. Из каких соображений выбираются значения: #define C_GLCD_H_PULSE 60 … #define C_GLCD_V_PULSE 1
2. Где в проекте используются или для чего определяются: #define C_GLCD_CLK_PER_LINE …. #define C_GLCD_LINES_PER_FRAME …. #define C_GLCD_PIX_CLK …..
3. Какой частотой мы тактируем данные пикселей? 4. Какая частота обновления экрана? 5. Почему LPC_IOCON->P2_1 = 0x20; ,а не =0x27 (файл TFT_ATM07_drv.c)? Честно говоря не в курсе какая конфигурация железа, но для RGB интерфейса...: (1) это рекомендованные параметры вашего LCD, величина импульсов H в клоках, V в строках. (2) эти параметры тоже зависят от вашего дисплея и используются как и (1) для програмирования LCD контроллера вашего ARMа. Тоесть их использовать должны вы. (3) в идеале открываем даташит дисплея и смотрим рекомендованную частоту пиксела, например 6.5МГц. Исходя из этого программируем контроллер дисплея в АРМе. (4) Она считается делением частоты пикселей на: (VFP+VBP+количество строк)*(HFP+HBP+количество пикселей в строке) (5) это я не в курсе. Если LCD подключен в режиме MPU интерфейса то всё вышеописанное не используется а (4) определяется внутренними настройками дисплея, время же прорисовки экрана будет зависеть от скорости интерфейса
|
|
|
|
|
Apr 2 2013, 12:44
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Платой занимаюсь редко, а графикой - еще реже. Много другой работы. Тем не менее, emWin запущен окончательно, работает без нареканий. Свои шрифты добавлять очень легко. Кириллица-шмирилица и пр. Есть отличный GUI builder под Win, не полнофункциональный, но все же.... Тачскрин также запущен, все ок. Через несколько дней выложу сюда проект на всеобщее обозрение.
Сейчас у меня просьба к публике. Не получается запустить кейловский TCP стек. Все отлично работало на LPC1768, а на этом, LPC1788 - бьюсь уже дня 3. Из-за того что у меня там Phy KSZ8721, фирменный драйвер писан под LAN8700, а раньше у меня был вообще DP83848, испытываю сложности с портированием, видимо. Через отладчик вижу, что инициализация Emac проходит, а дальше все - прерываний уже не бывает. Пинга, конечно, нет. Прошу поделиться проектиком с запущенным RL-TCPnet, у кого есть. Спасибо.
|
|
|
|
|
Apr 24 2013, 00:26
|
Группа: Новичок
Сообщений: 2
Регистрация: 15-03-09
Пользователь №: 46 116

|
Доброго времени суток) Если речь идёт о плате sk-lps1788, то там возможен трабл при инициализации физики. Если напруга питания чуть завышена, инициализация не проходит (это относится к стеку, который прилагается к демке).
По поводу проекта emWin, привеликая благодарность, очень жду Вашей демки!!!
С Уважением.
|
|
|
|
|
May 7 2013, 10:24
|
Группа: Участник
Сообщений: 13
Регистрация: 15-10-06
Пользователь №: 21 331

|
Как добились работы кириллицы в GUI Builder?
|
|
|
|
|
May 20 2013, 11:42
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606

|
Цитата(Dunduk @ Apr 2 2013, 15:44)  ... Тачскрин также запущен, все ок. Через несколько дней выложу сюда проект на всеобщее обозрение. Добрый день. Ваш драйвер emWin для тачскрин использует структуру - GUITDRV_ADS7846_CONFIG? Если да, то подскажите где в поддержке NXP_emWin520_BSP для LPC1788 есть пример инициализации этой структуры. Интересно посмотреть на Ваш проект.
|
|
|
|
|
Jul 19 2013, 05:55
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-13
Пользователь №: 77 593

|
Цитата(Dunduk @ Apr 2 2013, 16:44)  Платой занимаюсь редко, а графикой - еще реже. Много другой работы. Тем не менее, emWin запущен окончательно, работает без нареканий. Свои шрифты добавлять очень легко. Кириллица-шмирилица и пр. Есть отличный GUI builder под Win, не полнофункциональный, но все же.... Тачскрин также запущен, все ок. Через несколько дней выложу сюда проект на всеобщее обозрение.
Сейчас у меня просьба к публике. Не получается запустить кейловский TCP стек. Все отлично работало на LPC1768, а на этом, LPC1788 - бьюсь уже дня 3. Из-за того что у меня там Phy KSZ8721, фирменный драйвер писан под LAN8700, а раньше у меня был вообще DP83848, испытываю сложности с портированием, видимо. Через отладчик вижу, что инициализация Emac проходит, а дальше все - прерываний уже не бывает. Пинга, конечно, нет. Прошу поделиться проектиком с запущенным RL-TCPnet, у кого есть. Спасибо. Добрый день. Пытаюсь использовать сию библиотеку (emWin) вопрос: где взять для нее кириллические шрифты или не демонстрационный конвертор?
|
|
|
|
|
Jul 19 2013, 08:24
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Цитата(demetriuse @ Jul 19 2013, 09:55)  Добрый день. Пытаюсь использовать сию библиотеку (emWin) вопрос: где взять для нее кириллические шрифты или не демонстрационный конвертор? Добрый день! Выкладываю готовый маленький проект, в котором уже полноценно функционирует emWin, подключен тач скрин, нарисовано диалоговое окно, в котором прописаны реакции на нажатия кнопок. С кириллическими шрифтами, как вы можете убедиться, нет ни каких проблем. Шрифты в emWin добавляются очень легко и просто. Это буквально 5 минут времени на все-про все. Кирилических шрифтов в GUI Builder нет. Лично я легко обхожусь. Главное, что они есть в самой GUI. Этот билдер вообще жутко урезанная вещь. Даже банального copy paste нет. Вообще, у меня сложилось очень хорошее впечатение о emWin. Программа, которую я пишу разрослась, стала просто огромной, очень сложная иерархическая структура из диалоговых окон, всплывающие клавиатуры с изменяемыми языковыми раскладками, буферизация картинки на TFT и т.д. Работает четко. Вопрос, который я когда-то задавал об Ethernet на данной демо плате, давно решился. Вообще, у меня хорошее впечатление от LPC1788 и о данной плате. Можно сделать очень много чего интересного. Далее я не буду ничего выкладывать по теме emWin и демо платы, и так достаточно, по-моему. Но на вопросы по существу - отвечу. Всем желаю удачи!
|
|
|
|
|
Jul 19 2013, 09:30
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-13
Пользователь №: 77 593

|
Цитата(Dunduk @ Jul 19 2013, 12:24)  Добрый день! Выкладываю готовый маленький проект, в котором уже полноценно функционирует emWin, подключен тач скрин, нарисовано диалоговое окно, в котором прописаны реакции на нажатия кнопок. С кириллическими шрифтами, как вы можете убедиться, нет ни каких проблем. Шрифты в emWin добавляются очень легко и просто. Это буквально 5 минут времени на все-про все. Кирилических шрифтов в GUI Builder нет. Лично я легко обхожусь. Главное, что они есть в самой GUI. Этот билдер вообще жутко урезанная вещь. Даже банального copy paste нет.
Вообще, у меня сложилось очень хорошее впечатение о emWin. Программа, которую я пишу разрослась, стала просто огромной, очень сложная иерархическая структура из диалоговых окон, всплывающие клавиатуры с изменяемыми языковыми раскладками, буферизация картинки на TFT и т.д. Работает четко. Вопрос, который я когда-то задавал об Ethernet на данной демо плате, давно решился. Вообще, у меня хорошее впечатление от LPC1788 и о данной плате. Можно сделать очень много чего интересного.
Далее я не буду ничего выкладывать по теме emWin и демо платы, и так достаточно, по-моему. Но на вопросы по существу - отвечу. Всем желаю удачи! Да собственно у меня нет проблем с использованием шрифтов, у меня проблема в том что с офф сайта конвертор шрифтов доступен только в демо режиме. а он нормально шрифты в С файлы не сохраняет (он их коверкает). В вашем проекте я вижу шрифты сделаны как раз конвертором, либо вы их ручками прописывали? Если конвертором: то не могли бы вы выложить сам конвертор?
|
|
|
|
|
Jul 19 2013, 11:00
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904

|
Цитата(demetriuse @ Jul 19 2013, 13:30)  не могли бы вы выложить сам конвертор? Вроде этот, попробуйте
|
|
|
|
|
Jul 22 2013, 08:59
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-13
Пользователь №: 77 593

|
Цитата(Dunduk @ Jul 19 2013, 15:00)  Вроде этот, попробуйте Спасибо! Вроде оно. Во всяком случае не демка и шрифты нормально экспортирует в С файл, попробую в прошивку шрифт подгрузить
|
|
|
|
|
Aug 2 2013, 10:45
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-13
Пользователь №: 77 593

|
Добрый день, коллеги.
Хотел поинтересоваться кто нибудь пытался запустить Keil RL-TCPnet библиотеку, что то у меня на STM32F4Discovery ни как не получается.
|
|
|
|
|
Aug 15 2013, 07:25
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-07-13
Пользователь №: 77 593

|
Привет. Столкнулся с такой проблемой в emWin. При вызове функции EDIT_SetFloatMode программа зависает. Ты случаем не пользовался ею? Цитата(demetriuse @ Aug 15 2013, 10:53)  Привет. Столкнулся с такой проблемой в emWin. При вызове функции EDIT_SetFloatMode программа зависает. Ты случаем не пользовался ею? В общем полностью разобраться с этим не смог. Обнаружил следующий нюанс: если редактируемое поле создается в редакторе, то дальнейший вызов функций EDIT_SetFloatMode, EDIT_SetDecMode ... приводит к зависанию. Если редактируемое поле создать вручную в коде....то функции отрабатываются корректно. Х.з. почему так. Вот код для создания виджета вручную: EDIT_CreateAsChild(180, 70, 100, 20, pMsg->hWin, ID_EDIT_4, WM_CF_SHOW, 15); Да и еще не понятно что за значение 0x64 в конфигурации виджета прописывает редактор: EDIT_CreateIndirect, "Edit", ID_EDIT_0, 0, 0, 310, 40, 0, 0x64, 0 }
|
|
|
|
|
Sep 9 2013, 10:09
|
Местный
  
Группа: Свой
Сообщений: 454
Регистрация: 13-10-10
Из: Киев
Пользователь №: 60 135

|
Добрый день! Пытаюсь согласно инструкции по портированию emWin на другое железо ( AN11218) портировать проект под свой LPC1758 и LCD на SSD1289, не понимаю вопрос о создании своего драйвера дисплея. Для используемого в аппноте дисплея подходит драйвер FlexColor, на странице его описания на сайте сеггера описываются функции GUIDRV_FlexColor_SetFunc() и GUIDRV_FlexColor_Config(), на которые ссылается аппнот, и также 4 низкоуровневые функции (pfWrite16_A0, pfWrite16_A1, pfWriteM16_A1, pfReadM16_A1), про которые в аппноте тоже говорится. Теперь смотрю на страницу описания необходимого для моего контроллера дисплея драйвера (GUIDRV_compactcolor_16, и не могу понять, какие функции мне нужно реализовать? В разделе "Hardware access" есть, как я понял, и макросы и функции (LCD_WRITE_A0, LCD_WRITE_A1, LCD_READM_A1, LCD_WRITEM_A1, LCD_WRITEM_A0), но не понятно что должны эти функции принимать. Вот, например, для функции "LCD_WRITE_A0". Она, судя по описанию, должна записывать один байт в контроллер. А в качестве входных данных она должна принимать 8-и битную переменную или ссылку на эту переменную? Вообще, правильно ли я мыслю насчёт функций, или на странице описания этого драйвера ничего про функции, которые мне нужно реализовать нет? Заранее спасибо!
|
|
|
|
|
Dec 26 2013, 05:01
|
Группа: Новичок
Сообщений: 1
Регистрация: 11-11-12
Из: Замкадский лес
Пользователь №: 74 326

|
Цитата(demetriuse @ Aug 15 2013, 11:25)  Привет. Столкнулся с такой проблемой в emWin. При вызове функции EDIT_SetFloatMode программа зависает. Ты случаем не пользовался ею?
В общем полностью разобраться с этим не смог. Обнаружил следующий нюанс: если редактируемое поле создается в редакторе, то дальнейший вызов функций EDIT_SetFloatMode, EDIT_SetDecMode ... приводит к зависанию. Если редактируемое поле создать вручную в коде....то функции отрабатываются корректно. Х.з. почему так.
Вот код для создания виджета вручную: EDIT_CreateAsChild(180, 70, 100, 20, pMsg->hWin, ID_EDIT_4, WM_CF_SHOW, 15);
Да и еще не понятно что за значение 0x64 в конфигурации виджета прописывает редактор: EDIT_CreateIndirect, "Edit", ID_EDIT_0, 0, 0, 310, 40, 0, 0x64, 0 } 0x64 - количесво символов в окне EDIT. Программа зависает при переполнении стека. Если используется ОС, желательно вызывать все GUI функции из одной задачи. Ошибкой будет, например, вызвать функцию, рисующую окно, из задачи обработки кнопки, которой назначен минимальный размер стека.
|
|
|
|
|
Dec 2 2014, 13:43
|
Группа: Новичок
Сообщений: 1
Регистрация: 3-01-13
Пользователь №: 75 054

|
Здравствуйте!
Сталкнулся с такой же проблемой портирования Keil RL-TCPnet на плату SK_MLPC1788 StarterKita. Подскажите пожалуйста что нужно изменить в EMAC_178x_8x.c, EMAC_178x_8x.h для правильной работы с KS8721b?
|
|
|
|
|
Apr 17 2015, 12:02
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 11-04-09
Пользователь №: 47 508

|
Здравствуйте! Думаю запустить emWin на процессоре STM32F103. В примере для демо-плат используется модуль FSMC для подключения к индикатору. Но у меня процессор STM32F103RET6 (64 вывода), там модуля FSMC нет. Я подумал, что интерфейс внутри процессора сделаю программный, присоединив выводы индикатора на произвольные вывода процессора (у меня интерфейс 8, бит режим 8080, драйвер индикатора SSD1963), а теперь не знаю, как мое аппаратное подключение передать в emWin. Вот тут http://www.lpcware.com/content/forum/indir...rallel-question обсуждается похожая проблема, только для LPC, но ответа нет. Если кто работал с emWin, подскажите, обязательно нужно использовать аппаратный интерфейс, ничего у меня не получится? Обязательно нужно переходить на процессор с FSMC? На процессор 100 выводов или лучше на 144 вывода (в 100-выводном модуль FSMC урезанный)? Обязательно нужно подключать к FSMC внешнюю последовательную FLASH и(или) SDRAM? Подскажите, если кто в курсе, пожалуйста.
|
|
|
|
|
Feb 28 2017, 18:48
|
Частый гость
 
Группа: Участник
Сообщений: 99
Регистрация: 29-06-09
Пользователь №: 50 730

|
Цитата(diglook @ Feb 27 2017, 06:31)  Здравствуйте! я давно не программировал - и практически новичок пробовал компилировать проекты из этой ветки (у меня такое же железо, поэтому для меня очень актуально) но компилятор Keil µVision 5.23 выскакивают вот такие предупреждения .\Obj\emWin_test.axf: Warning: L6170W: Mapping symbol #20 '$t' in .bss(GUI_Core.o:16) identifies code, but is in a section not marked as executable. и такие ошибки .\Obj\emWin_test.axf: Error: L6405E: No .ANY selector matches GUI_SetAlpha.o(.bss). как бы это побороть? предполагаю что у меня библиотеки более свежие, например библы из папки Keil\ARM\Segger\emWin\Lib\ созданы 25 октября 2016г. но что с этим делать? Надеюсь на подсказки и заранее благодарю. Решилось переустановкой, при этом не ставил новые EmWin библы.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|