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

AVI-crak

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

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

  • Посещение

Весь контент AVI-crak


  1. Ошибся, при выходе за пределы блока записываются все остальные не изменённые сектора этого блока. Если выполнять запись секторов в пределах одного блока, даже если в разнобой (но один раз) - блок будет стёрт один раз. Дорогие и быстрые флешки имеют рам память на несколько сотен блоков, что позволяет им держать открытыми для записи сразу кучу блоков. Дешевые флешки имеют рам память только на один блок (это минимум), и дико тормозят.
  2. Отложенная запись. При выходе за пределы сектора - записываются те блоки, что не изменены но стёрты.
  3. Общается точно так-же как и с внутренней флеш памятью - грузит в рам свою прошивку, запускает её, и подкидывает/забирает данные через буфер обмена в той-же рам памяти. Это к вопросу о том где искать - дык оно там, рядом.
  4. Есть простое решение, нужно снять дамп регистров периферии после всех операций инициализации. Для этого пригодится макрос преобразования имени переменной в строку. Просто печать в отладку, с сохранением в файл, и уже потом проверка. Решение не годится для поиска различий в реализации алгоритмов, но позволяет выявить место косяка, что значительно сокращает время на решение проблемы.
  5. Не совсем корректный вопрос. Выдавать может много, всё зависит от того как к ней обращаются. Начнём с того что sdram бодро читается/пишется линейными блоками, равными размеру одной страницы. Максимальная скорость - чтение всей страницы. А вот на границе страниц, FMC уже спотыкается. Там есть небольшая задержка, которая в идеале полностью поглощается собственным FIFO. В реальности задержка накапливается, и обязательно проявится. При обращении к другому банку - задержка ещё выше. Те самые cas ras. К этим задержкам добавляется до четырёх тактов работы арбитра, он решает кого подключать/отключать от шины. Ещё - FIFO автоматически догоняется после чтения/записи, и если попадает на границу банка - то арбитр не в состоянии быстро подключить новый интерфейс связи. Всё вместе роняет скорость рандомного чтения до уровня плинтуса. Самая дикая задержка может быть следствием "оптимизации" программного обращения к sdram, когда читают линейно в сторону уменьшения адреса. Так умеет только кеш, и быстрая sram. Но GCC упорно "оптимизирует" на обратное чтение/запись вообще весь код, даже там где нельзя.
  6. Что-то много всего написано, но ограничение очень простое - скорость интерфейса FMC.
  7. Возможно физическое повреждение чипа памяти. В частности серия MT имеет очень нежные контакты, +4в уже дохнут. Мой чип памяти на отладке сдох от болтающегося провода дежурки +5в. Для таких ситуаций существует система контроля версий, откатиться назад - посмотреть изменения. Для программного кода есть несколько бесплатных программ, лично мне нравится черепаха TortoiseHg.
  8. Это чтение одного блока сектора. Я уже не помню, но кажется размер блока тоже можно считать. Есть флешки, у которых стоит 2-4 чипа памяти - дык вот для них размер блока почти всегда выше в 2-4 раза.
  9. Ультразвуковая мойка! до пятнадцати вольт без нагрузки с ёмкости 10uF. Но есно киловольты могут появиться только там - где на плату приклеивают пьезокерамику пищалку.
  10. STM32MP1 - bare metal

    Это-же свихнуться можно, если все регистры самостоятельно лопатить.
  11. Ну это как считать, вдоль или поперёк. Если использовать несколько FFT отчётов: то получится динамика (уровень колебаний амплитуды), и средняя относительная энергия не превышающая единицы для каждого отчёта. В звуке энергия не зависит от средств измерения, хотя есть зависимость от рабочего диапазона. Любое колебание можно усилить/ослабить и получить желаемую мощность на выходе. Это как батарейка, без нагрузки мощность в цепи нулевая.
  12. Может я чего путаю... В моём представлении энергетический спектр не зависит от амплитуды сигнала и от фазы - это показатель приближения синуса к меандру на выбранной частоте. То-есть количество и точность совпадения чётных гармоник к выбранной частоте. Частоты гармоник могут (обязаны) складываться в общем FFT спектре. По этой причине посчитать энергию за один проход невозможно. Получается уравнение с бешеным количеством переменных. Проще всего выполнить приближение, когда коэффициенты будут плавно расти. Выбираем частоту, находим все её гармоники, сортируем их по минимальному значению от рассчитанной амплитуды, используем это значение как эталон для пересчёта всех гармоник по амплитуде, и вычитания их значения из основного FFT сектора - с дополнительным коэффициентом приближения примерно 1/10 . Если в процессе вычитания будут получаться отрицательные числа - то весь цикл сбрасывается, и по новой с меньшим коэффициентом приближения. В результате FFT сектор будет иметь минимальные значения на уровне ошибок, энергетический спектр будет содержать коэффициенты наличия гармоник для каждой частоты в отдельности. В результате получается индикация грязного сигнала - буквально. Использовать на музыкальном аналоге совершенно бесполезно - там уже давно ггг... В связи с чем вопрос - где внезапно понадобился подобный инструмент?
  13. Все будут перемножены, но по порядку. Для каждой новой частоты будут свои четные гармоники. Есть готовые решения - голосовые вокодеры.
  14. Перемножать уровень чётных гармоник, уже после бпф. БПФБПФ
  15. Без настроек mpu - оно вообще читаться не должно.
  16. STLINK-V3MINI Появился на алиэкспресс... Тот самый, который продать не могут.
  17. Я вот жду когда компания st изготовит STLINK-V3MINI в количестве больше чем 4 штуки ...
  18. STM32CubeIDE

    Для экономии времени нужно иногда сохранять старые проекты отдельно, в виде стартовой точки. Хотя лучшим выходом будет использование контроля версий, например черепахи.
  19. Ну а документацию кто будет читать? У этого чипа нет внутреннего генератора, всё зависит от внешнего. И jtag неверно разведён, он на pf0-pf5 в дефолте висит. Тестовая линия (насколько мне помнится), должна иметь подтяжку на землю... И с питанием там заморочки, чип сам должен командовать внешним питанием. В том случае если ему насильно его включить - он может обидится и сдохнуть.
  20. stm32 i2c

    Да кстати, к 2019 году можно было сделать полностью аппаратную физику i2c. Без этих вот дополнительных шестнадцати флагов переменной важности.
  21. У всех современных sd карт есть дополнительные уникальные команды управления, которые делятся на базовые по стандарту, и то что придумал производитель. Базовые определяются переключением стандарта, это требует полной смены алгоритма общения с картой. То-есть недостаточно просто повысить скорость интерфейса и использовать те-же функции - нужно читать поддержку стандарта конкретной sd, и перенаправлять функции чтения/записи/проверки. Стандартный драйвер от st - использует базовые команды 1,0 , и выше прыгнуть чисто физически не может. Уникальные команды от производителя доступны с версии 2,0. Там конечно бардак и полный хаос, но общий принцип описания команд достаточно простой - в виде hml. Место где расположено описание, у каждого производителя уникальное. По этому нужно читать id карты и использовать свои таблицы. Уникальные команды позволяют достичь максимальной скорости общения с картой. Ради экспериментов можно распотрошить драйвер от современного кардридера, там это почти в текстовом варианте записано.
  22. Управление количеством транзакций дма со стороны sd, грубо говоря можно корректно обработать массив в 66кб (больше счётчика дма).
  23. sdram, ddr, ddr2-3-4-5 - это все внешний интерфейс динамической памяти, и кстати самое узкое место. Если память уже на кристалле - то посредники там нафиг не нужны.
  24. инструкция BX

    http://badembed.ru/assembler-pereklyuchenie-konteksta/ Так будет проще
  25. инструкция BX

    Отображение этого бита зависит от используемой ID. У некоторых id этот бит автоматом прибавляется/удаляется, чтобы не мозолить глаза и не путать пользователя. Интересно другое - в какой такой хитрой задаче потребовалось менять адрес возврата, там-же за всегда каша получается.
×
×
  • Создать...