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

запустим GUI emWin вместе?

Всем привет!

Пытаюсь запустить графическую оболочку 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, но результата не видно. Видимо, что-то с конфигурированием библиотеки.

Буду рад любой помощи. Проект во вложении.

emWin_test_221112.rar

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


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

Это надо бы на хостинг проектов типа Github, Bitbucket и пр. Тогда проще взаимодействовать с другими разработчиками. А перекачка архивов быстро надоест

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


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

Надеюсь автор топика слышал про lpcware.com

Да, конечно. Я располагаю большим количеством примеров. Пишу в приглядку. Тем не менее, пока результата нет. Хотя кое-какие ошибки обнаружил.

В любом случае, результат (рабочая GUI) будет сюда выложена.

На данный момент затык очень простой - исключение HardFault_Handler. Причина не ясна. Исключение возникает при вызове GUI_Init(). Буду рад, если кто-нибудь подскажет, на что обратить внимание. Я с исключениями сталкивался только однажды. Была попытка работы с периферией, которая была отключена. Здесь - что-то другое.

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

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


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

Всем привет!

Пытаюсь запустить графическую оболочку emWin на микроконтроллере LPC1788 и 7-ми дюймовом TFT. Библиотека emWin для нас, пользователей NXP уже более года как стала бесплатной. Так давайте же ей воспользуемся!

 

Это же просто библиотека без исходников! Мало смысла с ней иметь дело.

Эта GUI достаточно глючная и слабодокументрованная , чтобы не браться за нее без исходников.

 

Больше смысла будет взять доступную версию uC/GUI, и делать на ее базе расширения вроде подключения TTF шрифтов или новых виджетов.

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


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

GUI Development Made Easy with NXP's Free MCU Graphics Library

Что означает "free" применительно к закрытой либе, которая продается и имеет licence agreement далекий от GPL?

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


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

Это же просто библиотека без исходников! Мало смысла с ней иметь дело.

Я знаю, вы на GUI уже собаку съели. Скажите, что значит "без исходников" с точки зрения ее использования? Я смогу подключать свои шрифты? Видоизменять виджеты? Если нет, конечно, я лучше возьму micrium. Вроде была она где-то версии 3.98, кажется.

Впрочем, процесс инициализации там очень похож. А значит, все те же вопросы у меня возникнут и там.

 

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


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

не прошло и полгода как появились первые признаки жизни 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) и потом подключаем тачскрин.

До связи!

emWin_test_301112.rar

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

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


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

Dunduk, спасибо за труд! Новичкам Ваши труды могту очень даже пригодиться!!! Я отношу себя к новичкам.

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


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

В Keil MDK-ARM 4.60 встроена emWin.

Да, но его нужно конфигурировать)

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


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

Да, но его нужно конфигурировать)

Да, думаю хелпа и примеров должно хватить. После праздников буду этим заниматся.

 

 

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


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

Да, думаю хелпа и примеров должно хватить.

Практика говорит об обратном :rolleyes:

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


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

не прошло и полгода как появились первые признаки жизни 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

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


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

Несколько вопросов по настройке LCD в проекте emWin_test_301112

 

Погодите, щас на рыбалку собираюсь, после праздников расскажу. Я сам мало чего там писал, мой метод - осознанный copy-paste. :cranky:

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


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

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

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

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

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

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

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

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

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

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