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

GenaSPB

Участник
  • Постов

    3 012
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Весь контент GenaSPB


  1. На данный момент так (для CMSIS): system_allwnr_t113s3.h allwnr_t113s3.h t113_ddr_decompiled.c
  2. Круто! Затащил в свой проект - работает!!!! Буду понемногу комментарии добавлять и приводить к более обычному виду исходника. СПАСИБО!
  3. MMU у меня как можно догадаться используется и запрограммирован на прозрачную трансляцию адресов. Если помните, без MMU не работает кеширование записи. Ждать можно и перед формированием изображения (как например и при программном обслуживании UART или SPI, разумеется с ожиданиями запершение ранее выданной команды перед вмешательством в процесс со стороны). Хотя у меня естественным образов улучшение должно быть - не смотря на ожидание завершения отрисовки, применение аппаратуры ускоряет работу (идущая в прерываниях обработка звукового потока и обслуживание канала связи по USB не будет тормозить отрисовку). Не нашел.
  4. Вот вроде самое свежее... https://github.com/MYIR-ALLWINNER/myir-t5-kernel/blob/e75f862f6fe7af47dd67b5121c517305bd1e2f71/drivers/char/sunxi_g2d/g2d_bsp_v2.c G2D_V2X_SUPPORT upd: прямоугольник предсказуемого размера заполняется. В режиме 32-bit цвета нормально. В RGB565 пока не тот цвет что хочется.
  5. Сейчас судя по всему что-то выполняется некоторое время, потом бит прерывания появляемся и снимается соответствующей флаг запуска. Эффекта в видеопамяти нет. Причем скорость работы связана с подаваемой тактовой частотой...
  6. Надо ли включать IOMMU для работы заполнения прямоугольников от G2D?
  7. Из тех исходников. Я ссылку где0то сохранил. Специально 113-о нигде нет. зы: вроде начало запполнять как-то
  8. Я про то, что ранее приведенная структура регшистров в сообщении https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=157083&do=findComment&comment=1815563 не имеет к моему процессору отношения. Так или нет?
  9. G2D_TOP->G2D_SCLK_DIV = (G2D_TOP->G2D_SCLK_DIV & ~ 0xFF) | 3 * (1uL << 4) | 3 * (1uL << 0) | 0; G2D_TOP->G2D_SCLK_GATE |= (1uL << 1) | (1uL << 0); // Gate open: 0x02: rot, 0x01: mixer G2D_TOP->G2D_HCLK_GATE |= (1uL << 1) | (1uL << 0); // Gate open: 0x02: rot, 0x01: mixer G2D_TOP->G2D_AHB_RESET |= (1uL << 1) | (1uL << 0); // De-assert reset: 0x02: rot, 0x01: mixer Интересует где оказывается G2D собственно... Или у меня (выше) не от того процессора registers layout?
  10. Да PRINTF("arm_hardware_mdma_initialize (G2D)\n"); CCU->MBUS_CLK_REG |= (1uL << 30); // MBUS Reset 1: De-assert reset CCU->MBUS_MAT_CLK_GATING_REG |= (1uL << 10); // Gating MBUS Clock For G2D // CCU->G2D_CLK_REG = // 0x02 * (1uL << 4) | // 0; CCU->G2D_CLK_REG |= (1uL << 31); // G2D_CLK_GATING //CCU->G2D_BGR_REG = 0; CCU->G2D_BGR_REG |= (1uL << 0); /* Enable gating clock for G2D 1: Pass */ //CCU->G2D_BGR_REG &= ~ (1uL << 16); /* G2D reset 0: Assert */ CCU->G2D_BGR_REG |= (1uL << 16); /* G2D reset 1: De-assert */ //memset(G2D, 0xFF, sizeof * G2D); //printhex(G2D_V0, G2D_V0, sizeof * G2D_V0); PRINTF("arm_hardware_mdma_initialize (G2D) done.\n");
  11. Оффтоп тут, но раз тема осуждается задам вопрос... G2D, Allwinner t113-s3 Из линуксовых исходников получил структуру регистров на 0x800 байт. В даташите указан базовый адрес 0x05410000. Но после обычных действий по разрешению подачи тактовой и снятию ресета регистры как-то себя не так ведут... Адрес DMA не поставить, попытка заполнить таблицу трансляции для индексных цветов тоже показывает что там нет регистров. ЧЯДНТ? Что-то в виде намёка что есть G2D_TOP а есть G2D_V0 я вижу, но не очень получается его использовать...
  12. Системой синхронизации назвал спинлоки и прддержание одинаковыми уровней приоритетов в gic каждого процессора. Т.е. в системе со вложениями прерываниями одно ядро может назначить обработчик на другом с требуемым приоритетом. Ну у меня в проекте ручное распределение обработчиков прерывания я по ядра. А уровни приоритетов в каждом gic доступны для изменения только самим подключённым процессором. Mmu/ttb у каждого тоже своё, если что. Таблица общая.
  13. В моем проекте дополнительно - SPI/QSPI, I2S, DMA, таймер, внутренний кодек, второе ядро, EHCI (со стеком от ST), система синхронизации ядер. CMSIS header для всего этого. Качайте с github бранч develop.
  14. Еще у таких дисплеев были прописаны требования я мо последовательно прости подачи сигнала disp . Для этого даже на д-триггерах сирхронизаторы делают чтобы не грузить этим процессор. А волны- возбуд в преобразрвателе...
  15. У кортекс а7 vfp4 кажется... не ставьте ничего кроме неон ему. У меня проект без конфликтов архитектур собирается
  16. Ehci почему то даёт 6 с небольшим мегабайт в секунду скорость записи на жёсткий диск. На stm32mp157 было под 35 мег в секунду. Но наверное от тооичто пока всё что касалось axi и других шин пока отключиэээл в ините. Запустил i2s с DMA . Имеющийся контроллер неплохо позволяет имитиррывть double buffer от ST - звук заработал сразу.
  17. Да. Full и low уходят на ohci. Совмещённый еще в цинк 7000. Ваш все равно интересен код
  18. Тут я смотрю вы OHCI запускаете... я то с ehci. Можете целиком поделиться?
  19. Кстати, там в проекте у меня (в каталоге tools/genregdefs) утилита для формирования CMSIS-style описаний структур периферийных блоков. Сляпано за полдня, надо бы и для остальных процессоров набить по возможности базы (к которым производитель CMSIS-header не дал)
  20. А где берут user manual? - я про v3s спрашивал Кстати что увидел для v3s - описано только EHCI
  21. Нет это в USB_BGR_REG // Turn off USBOTG0 CCU->USB_BGR_REG &= ~ (0x01uL << 24); // USBOTG0_RST CCU->USB_BGR_REG &= ~ (0x01uL << 8); // USBOTG0_GATING А про UTMI не забыли? Кстати, защиту с даташита снял pdf.io А где берут user manual?
  22. Тогда должен быть... Заресетить OTG перед использованием EHCI попробуйте.
×
×
  • Создать...