Jump to content

    

sst78rus

Участник
  • Content Count

    29
  • Joined

  • Last visited

Community Reputation

0 Обычный

About sst78rus

  • Rank
    Участник

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Вот тут есть пример использования - https://www.youtube.com/watch?v=q4CxE5P6RUE&t=622s Я только не нашел как перенести "отладочную информацию" из гидры куда-нибдь в отладчик. Благодаря "псевдокоду" удобно разбирать что происходит и можно "переименовать" интересующие функции, добавить комментарии к коду и т.д. Но не всегда получается чисто статически разобраться, иногда удобнее в отладчике посмотреть. И вот было бы здорово или подключить отладчик интерактивно (так точно умеет IDA с x86 кодом), или хотя бы экспортировать комментарии в отладчик. Сейчас пользуюсь Ozone в качестве отладчика и во втором окне смотрю в гидре подсказки, что происходит. Код который разбираю был на С++ и много вызовов происходит очень не очевидно, без отладчика не понять куда будет переход.
  2. Про hal библиотеку я никак не смогу вам объяснить, я про нее ничего толком не знаю. По вашим словам получается, что у вас проблемы с dma2d? А если при помощи dma2d копировать не в sdram, а скажем в память мк? Только адрес буфера выровняйте по границе 4-х байт. Может проблема с sdram, но проявляется при интенсивной записи через dma?
  3. Да, раз артефакты есть в видеобуфере, то ltdc может и не иметь ошибок. Попробуйте локализовать проблему. Сначала сделайте рисование прямоугольника "руками" (всмысле просто записью значений в цикле в видеобуфер). Тут можно даже без экрана проверить - очищаем память, рисуем прямоугольник, читаем обратно и проверяем записанное. Если с "одиночной" записью проблем нет, попробуйте обычным DMA в режиме mem2mem. Т.е. как-то определить где у вас проблема - в работе с sdram, в настройках dma2d или еще где. Да, чтоб проще глазами поверять содержимое, можно сделать небольшим размер слоя. В идеальном варианте - чтобы ширина была такой, сколько у вас в окне отладчика помещается. Тогда просто сразу видно, что куда пишется. При ширине слоя в 1024 не очень удобно это смотреть :)
  4. Получается у вас отображается правильно, а в видеобуфере лежит с артефактами. Как вы буфер заполняете? И чтоб проще смотреть было, очистите буфер перед заполнением, и прямоугольник поменьше возьмите.
  5. Ну у ltdc два обработчика, LTDC_ER_IRQHandler и LTDC_IRQHandler. Соответственно ошибки в одном, а преревыния по номеру строки в другом.
  6. Просто на всякий случай: вы же знаете, что на ошибки у ltdc отдельный обработчик прерывания? Ну я так, на всякий случай, на что сам натыкался :) Да, и тут можно подобрать небольшую линию с артефактами и проверить,например в отладчике , что лежит у вас в видеобуфере. Т.е. где появляются артефакты - в выводе в видеобуфер или в ltdc.
  7. Вот пример с NoOS под F4 https://github.com/Sergey1560/stm32_systemview
  8. Конечно есть. Вы же читали тему, где я спрашивал о такой проблеме и там же выложил в чем проблема. В Вашей таблице видно, что проблем нет у линий которые начинаются с адреса кратного 4. У вас прерывание по ошибкам ltdc включено? Посмотрите, какие флаги взводятся при выводе линий с артефактами.
  9. Это как одна из версий, если есть проблемы при работе с DMA. При отключенном кэше mpu не нужен, будет и без него работать. Я просто сталкивался с интересными ошибками, когда данные в кэше лежат не сначала 32 битной строки и при сбросе кэша портились "соседние" данные. Хотя если вы hal используете, то там это учтено. Проверить это проще всего, выключив для теста кэш. А с выключенным кешем, вам и mpu не нужно, можно и его выключить на время теста. А без TouchGFX вывод работает? Ну и опять же, в качестве версии для проверки - а на самом деле, в том месте где у вас полосы, какой цвет лежит? Соответствует содержимое видеобуфера изображению?
  10. Кэш данных включен? Попробуйте выключить кэш и mpu.
  11. А EDU v10 сам обновится до v11, раз уж железо одинаковое, или нужно патчить?
  12. Добрый день. Есть в наличии JLink v9.40 от китайцев. Обновляется (пока :) ) штатным образом, на V6.60 обновился до V9 compiled Dec 13 2019. Есть ли смысл менять его на официальный JLink EDU? Есть ли у V10 (или уже V11?) версии EDU аппаратные преимущества? В терре EDU версия есть в наличии и стоит не великих денег. Поясню суть вопроса: при работе с Segger SystemView иногда не хватает скорости и теряются данные (SystemView пишет, что область overflow). Происходит только когда очень много событий записывается. У меня это в момент работы с USB на Freertos. Решит ли проблему замена китайского V9.40 на официальный JLink EDU v10?
  13. А можно так же сделать средствами GCC? Я имею ввиду, при сборке проекта положить то, что нужно загрузить в МК в один бинарник, а то, что в QSPI в другой? С самой загрузкой вроде бы более менее понятно. Для st-link есть примеры, для j-link вроде бы тоже видел.
  14. Похоже что эта проблема описана в Errata. По описанию я сразу не признал "Spurious DMA Rx transaction after simplex Tx traffic" Решение - сброс SPI перед включением DMA на прием. Сброс через SPE бит не помогает, делаю RCC->APB2RSTR |= RCC_APB2RSTR_SPI1RST; __NOP(); RCC->APB2RSTR &= ~RCC_APB2RSTR_SPI1RST; После этого, естественно, надо снова инициализировать SPI. В новых ревизиях вроде бы поправили.
  15. Это устанавливается при помощи DMAMUX. DMAMUX1_Channel13->CCR = 37; //SPI1_RX Каналы DMAMUX связаны с каналами DMA. Связь там вот такая: DMAMUX1 channels 0 to 7 are connected to DMA1 channels 0 to 7 DMAMUX1 channels 8 to 15 are connected to DMA2 channels 0 to 7 DMAMUX2 channels 0 to 7 are connected to BDMA channels 0 to 7 Или проще говоря: DMA1_Stream_x -> DMAMUX1_Channel_x DMA2_Stream_x -> DMAMUX1_Channel_(x+8) А к чему конкретно из периферии будет подключен канал DMA устанавливается в CCR регистре DMAMUX. Для каждого источника свой номер, они в RM указаны. Для DMAMUX1 в моем случае это: 37 spi1_rx_dma 38 spi1_tx_dma