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

 
 
> DMA2D в stm32f4хх, реально такой убогий, или я что-то не понимаю?
Шаманъ
сообщение Oct 28 2015, 20:48
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Приветствую всех!

Собственно почитал описание DMA2D (он же Chrome-ART), и как-то все убого так. Из полезных функций это заливка и копирование? Или я что-то не понимаю? Если кто-то использует его, просветите для чего и каков эффект?

Спасибо!
P.S. Даже древний s1d13a04 и то умел намного больше...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hold
сообщение Apr 22 2017, 07:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 27-01-17
Пользователь №: 95 184



Нашел где косяк с отрисовкой шрифтов в STemWin.
Что-то не так с аппаратным смешением цветов у 1 пикселя в функции, которая используется при выводе сглаженного текста:
Код
/**
  * @brief  Function for mixing up 2 colors with the given intensity.
  *         If the background color is completely transparent the
  *         foreground color should be used unchanged.
  * @param  Color
  * @param  BkColor
  * @param  Intens
  * @retval LCD_COLOR
  */
static LCD_COLOR DMA_MixColors(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens)
{
  uint32_t ColorFG, ColorBG, ColorDst;

  if ((BkColor & 0xFF000000) == 0xFF000000)
  {
    return Color;
  }
  ColorFG = Color   ^ 0xFF000000;
  ColorBG = BkColor ^ 0xFF000000;

  /* Set up mode */
  DMA2D->CR      = 0x00020000UL | (1 << 9);         /* Control Register (Memory to memory with blending of FG and BG and TCIE) */

  /* Set up pointers */
  DMA2D->FGMAR   = (uint32_t)&ColorFG;                   /* Foreground Memory Address Register */
  DMA2D->BGMAR   = (uint32_t)&ColorBG;                   /* Background Memory Address Register */
  DMA2D->OMAR    = (uint32_t)&ColorDst;                  /* Output Memory Address Register (Destination address) */

  /* Set up pixel format */
  DMA2D->FGPFCCR = LTDC_Pixelformat_ARGB8888
                 | (1UL << 16)
                 | ((uint32_t)Intens << 24);
  DMA2D->BGPFCCR = LTDC_Pixelformat_ARGB8888
                 | (0UL << 16)
                 | ((uint32_t)(255 - Intens) << 24);
  DMA2D->OPFCCR  = LTDC_Pixelformat_ARGB8888;

  /* Set up size */
  DMA2D->NLR     = (uint32_t)(1 << 16) | 1;              /* Number of Line Register (Size configuration of area to be transfered) */

  /* Execute operation */
  DMA2D->CR     |= DMA2D_CR_START;                       /* Control Register (Start operation) */

  /* Wait until transfer is done */
  while (DMA2D->CR & DMA2D_CR_START)
  {
  }

  return (ColorDst ^ 0xFF000000);
}

Криво работающее смешение:

Если закоментить привязку этой функции к GUI, то GUI, видимо, начинает использовать софтовое смешение, и тогда все хорошо:

Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 22 2017, 11:59
Сообщение #3


Гуру
******

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



Вопросик может не в тему (лень читать даташит wink.gif :
DMA2D может быть полезен не для вывода на LTDC, а для ускорения отрисовки картинки в обычном ОЗУ?
Причём картинки не в формате этого LTDC, а если пиксели хранятся скажем в формате - 1байт/пиксель или 1байт/2пикселя?
Думаю - можно-ли его использовать для ускорения программной отрисовки в ОЗУ?
Go to the top of the page
 
+Quote Post
Шаманъ
сообщение Apr 22 2017, 12:19
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839



Цитата(jcxz @ Apr 22 2017, 14:59) *
DMA2D может быть полезен не для вывода на LTDC, а для ускорения отрисовки картинки в обычном ОЗУ?

Он так и работает - это абсолютно отдельный блок.

Цитата
Причём картинки не в формате этого LTDC, а если пиксели хранятся скажем в формате - 1байт/пиксель или 1байт/2пикселя?

Формат обрабатываемых картинок можно выбрать из:
ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565, L8, L4, A8, A4

Источник данных может быть в любом из этих форматов, приемник (выходной буфер) только в ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565

Произвольно формат задать не выйдет. Т.е. можно, но кроме копирования ничего путного DMA2D в этом случае сделать не сможет.

Цитата
Думаю - можно-ли его использовать для ускорения программной отрисовки в ОЗУ?

Он для этого и предназначен sm.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 22 2017, 12:24
Сообщение #5


Гуру
******

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



Цитата(Шаманъ @ Apr 22 2017, 14:19) *
Источник данных может быть в любом из этих форматов, приемник (выходной буфер) только в ARGB8888, ARGB4444, ARGB1555, RGB888, RGB565

Понятно. спасибо sm.gif
У меня граф.библиотека формирует картинку в формате 2пиксела/байт. Каждый пиксел - это индекс в таблице цветов на 16 элементов.
Потом, перед передачей в LCD, эта картинка по частям перекодируется в RGB565. Похоже - можно хотя-бы эту операцию делать с помощью DMA2D.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Шаманъ   DMA2D в stm32f4хх   Oct 28 2015, 20:48
- - Genadi Zawidowski   После эпсонов действительно полное ощущение что DM...   Oct 28 2015, 21:08
|- - Шаманъ   Цитата(Genadi Zawidowski @ Oct 28 2015, 23...   Oct 28 2015, 21:18
- - mantech   Цитата(Шаманъ @ Oct 28 2015, 23:48) Приве...   Oct 29 2015, 08:27
|- - adnega   Цитата(mantech @ Oct 29 2015, 11:27) Это ...   Oct 29 2015, 08:37
- - Genadi Zawidowski   с самым нужным шаманством над форматом пикселей - ...   Oct 29 2015, 09:08
|- - adnega   Цитата(Genadi Zawidowski @ Oct 29 2015, 12...   Oct 29 2015, 09:23
|- - Шаманъ   Цитата(adnega @ Oct 29 2015, 11:23) Дык, ...   Oct 29 2015, 10:37
|- - mantech   Цитата(Шаманъ @ Oct 29 2015, 13:37) Почем...   Oct 29 2015, 11:33
- - SasaVitebsk   + можно для фонтов антиалиасинг использовать 4-ёх ...   Oct 29 2015, 09:47
- - Шаманъ   Цитата(mantech @ Oct 29 2015, 13:33) Не б...   Oct 29 2015, 17:00
|- - mantech   Цитата(Шаманъ @ Oct 29 2015, 20:00) Ладно...   Oct 29 2015, 18:32
|- - Aner   QUOTE (mantech @ Oct 29 2015, 21:32) Диск...   Oct 29 2015, 22:05
|- - mantech   Цитата(Aner @ Oct 30 2015, 01:05) Сюда за...   Oct 30 2015, 07:37
|- - Шаманъ   Цитата(mantech @ Oct 30 2015, 09:37) но л...   Oct 30 2015, 08:20
|- - mantech   Цитата(Шаманъ @ Oct 30 2015, 11:20) У стм...   Oct 30 2015, 08:45
- - Rash   Что-то маловато граф вкусностей gfx маловато, emWi...   Oct 30 2015, 06:39
|- - Aner   QUOTE (Rash @ Oct 30 2015, 09:39) Что-то ...   Oct 30 2015, 07:25
- - Aner   да я тоже лет 10 назад такое разводил, ... не прош...   Oct 30 2015, 08:10
- - Rash   STM429 в 176 LQFP разведена на 2-х слойке SDRAM, н...   Oct 30 2015, 08:40
|- - Шаманъ   Цитата(Rash @ Oct 30 2015, 10:40) STM429 ...   Oct 30 2015, 10:02
- - Rash   На этой плате не проверены пока только SDRAM и LTD...   Oct 30 2015, 11:41
- - SasaVitebsk   На SRAM не прокатит. Объём объёмом, а производител...   Oct 30 2015, 11:44
|- - mantech   Цитата(SasaVitebsk @ Oct 30 2015, 14:44) ...   Oct 30 2015, 14:42
|- - Шаманъ   Цитата(SasaVitebsk @ Oct 30 2015, 13:44) ...   Oct 30 2015, 15:26
|- - AVI-crak   Цитата(SasaVitebsk @ Oct 30 2015, 18:44) ...   Oct 30 2015, 15:30
|- - Aner   QUOTE (AVI-crak @ Oct 30 2015, 18:30...   Oct 31 2015, 20:49
|- - mantech   Цитата(Aner @ Oct 31 2015, 23:49) Вот вот...   Nov 1 2015, 07:41
|- - Aner   QUOTE (mantech @ Nov 1 2015, 10:41) У эти...   Nov 1 2015, 11:06
||- - mantech   Цитата(Aner @ Nov 1 2015, 14:06) Не зная ...   Nov 1 2015, 15:53
|- - Шаманъ   Цитата(mantech @ Nov 1 2015, 09:41) У эти...   Nov 1 2015, 12:09
|- - adnega   Цитата(Шаманъ @ Nov 1 2015, 15:09) Не, ко...   Nov 1 2015, 13:41
||- - Шаманъ   Цитата(adnega @ Nov 1 2015, 15:41) Добави...   Nov 2 2015, 06:59
||- - mantech   Цитата(Шаманъ @ Nov 2 2015, 09:59) Может ...   Nov 2 2015, 07:39
|||- - Шаманъ   Цитата(mantech @ Nov 2 2015, 09:39) Фриск...   Nov 2 2015, 10:03
|||- - mantech   Цитата(Шаманъ @ Nov 2 2015, 13:03) Рассма...   Nov 2 2015, 13:47
||- - SasaVitebsk   Цитата(Шаманъ @ Nov 2 2015, 09:59) Вы так...   Nov 3 2015, 05:51
||- - Шаманъ   Цитата(SasaVitebsk @ Nov 3 2015, 07:51) Н...   Nov 3 2015, 08:54
||- - SasaVitebsk   Цитата(Шаманъ @ Nov 3 2015, 11:54) Если в...   Nov 3 2015, 09:49
|- - Aner   QUOTE (Шаманъ @ Nov 1 2015, 15:09) Не, ко...   Nov 1 2015, 14:13
- - Rash   Цитата(Aner @ Nov 1 2015, 17:13) ...мы вы...   Nov 1 2015, 17:20
|- - Aner   QUOTE (Rash @ Nov 1 2015, 21:20) думаю эт...   Nov 1 2015, 22:11
- - SasaVitebsk   Цитата(mantech @ Oct 30 2015, 17:42) Опан...   Nov 2 2015, 06:40
- - Rash   Цитата(Aner @ Nov 2 2015, 01:11) Менталит...   Nov 2 2015, 19:31
- - Genadi Zawidowski   Вопрос - DMA2D работает ли с flash памятью?   Nov 3 2015, 09:14
- - Шаманъ   Цитата(Genadi Zawidowski @ Nov 3 2015, 11...   Nov 3 2015, 12:44
|- - Шаманъ   Цитата(Шаманъ @ Nov 3 2015, 15:44) Остало...   Feb 5 2017, 12:42
|- - Мусатов Константин   Цитата(Шаманъ @ Feb 5 2017, 15:42) Если б...   Feb 5 2017, 20:04
- - Aner   Что за панель? Какой интерфейс у неё? И есть ли ем...   Feb 5 2017, 13:27
- - Шаманъ   Цитата(Aner @ Feb 5 2017, 16:27) Что за п...   Feb 5 2017, 20:39
|- - Мусатов Константин   Цитата(Шаманъ @ Feb 5 2017, 23:39) В DMA2...   Feb 5 2017, 22:35
|- - Шаманъ   Цитата(Мусатов Константин @ Feb 6 2017, 01...   Feb 6 2017, 04:48
- - Шаманъ   Интересно, рисование через DMA2D занимает не намно...   Mar 1 2017, 13:39
- - Hold   Вопросы к знаюшим людям, может что доброе подскажу...   Apr 21 2017, 10:12
|- - Шаманъ   Цитата(Hold @ Apr 21 2017, 13:12) В итоге...   Apr 21 2017, 10:26
|- - SasaVitebsk   Цитата(Шаманъ @ Apr 21 2017, 13:26) Могу ...   Apr 21 2017, 10:58
|- - Шаманъ   Цитата(SasaVitebsk @ Apr 21 2017, 13:58) ...   Apr 21 2017, 11:05
- - Hold   Да, сейчас уже думаю перейти на RGB565, т.е. надо ...   Apr 21 2017, 11:42
|- - Шаманъ   Цитата(Hold @ Apr 21 2017, 14:42) Но надо...   Apr 21 2017, 12:52
- - Hold   Завтра попробую rgb565, неиспользуемые биты через ...   Apr 21 2017, 14:53
|- - Шаманъ   Цитата(Hold @ Apr 21 2017, 17:53) Поведай...   Apr 21 2017, 15:20
- - Hold   Попробую на 29 Гц, покручу Vcom, подстроечник есть...   Apr 21 2017, 15:34
|- - Шаманъ   Цитата(Hold @ Apr 21 2017, 18:34) Попробу...   Apr 21 2017, 15:52
- - Hold   Рассчетное выходит 16.2 Мгц... тайминги почти таки...   Apr 21 2017, 16:09
- - Genadi Zawidowski   Когда-то, втискивая 272*480 во внутреннюю память S...   Apr 21 2017, 17:48
|- - Шаманъ   Цитата(Genadi Zawidowski @ Apr 21 2017, 20...   Apr 21 2017, 18:01
- - Hold   Вбил ваши параметры, Vcom выкрученный в минус пока...   Apr 22 2017, 04:53
|- - Шаманъ   Цитата(Hold @ Apr 22 2017, 07:53) Vcom вы...   Apr 22 2017, 06:16
|- - Шаманъ   Цитата(jcxz @ Apr 22 2017, 15:24) Понятно...   Apr 22 2017, 12:38
|- - jcxz   Цитата(Шаманъ @ Apr 22 2017, 14:38) Это ф...   Apr 23 2017, 10:10
- - SasaVitebsk   Там можно было бы многое, но нет отрицательного см...   Apr 22 2017, 17:25
|- - Шаманъ   Цитата(SasaVitebsk @ Apr 22 2017, 20:25) ...   Apr 22 2017, 18:05
|- - zombi   Цитата(Шаманъ @ Apr 22 2017, 21:05) Второ...   Apr 23 2017, 12:38
- - Rash   А кто-нибудь менял функции или добавлял функционал...   Apr 23 2017, 12:55
- - Шаманъ   Цитата(zombi @ Apr 23 2017, 15:38) А с че...   Apr 23 2017, 17:47


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

 


RSS Текстовая версия Сейчас: 16th August 2025 - 12:27
Рейтинг@Mail.ru


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