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

DmitryR

Свой
  • Постов

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

  • Посещение

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


  1. Cпециально для этого случая есть чип STMIPID2, который преобразует 2xMIPI -> DCMI. STM32H7 может и не потянет, а STM32MP1 думаю запросто.
  2. Добрый день, могу вам предложить отправить резюме на эту вакансию: 4dcbc9e9d4d826d84fb2.pdf (ostjob.ch), даже если вы не владеете двумя указанными там языками. Но один, конечно, должен быть более-менее свободным. Я работаю в этой фирме, хоть и недолго пока, на вопросы могу ответить.
  3. STM32H743 flash bank swap

    Фокус в том, что при трассировке не валится. Да просто если после стирания поставить точку останова и потом запустить дальше, что всё работает. Код я не стираю, так как запрограммировал MPU не давать доступа к стираемому сегменту. Регистры местами меняются, это написано в документации очень чётко, и проверено. Не исключено, что тут есть какой-то баг, так как в ревизии Y это не работало вообще. Но пока не вижу.
  4. А также, если сегмент на самом деле rwdata, а не bss, написать >RAM_D3 AT> FLASH
  5. STM32H743 flash bank swap

    Добрый день, пытаюсь использовать subj. Получаю новую прошивку, записываю её с адреса 0x08100000, инвертирую признак. Первый раз это проходит. Но во второй раз (когда swap включен) получаю ресет вскоре после начала стирания. Стирание банка или посекторно не влияет. Если выключить swap - опять всё работает. Отсутствие запрета записи секторов и прочей flash security проверил. То, что все регистры переворачиваются, учёл, то есть я стираю всегда банк 2. Чип ревизии V. Из утилиты пробовал стирать - стирает. Проверил, что не watchdog. Проверил, что не вызывается HAL_NVIC_SystemReset(). Что бы это могло быть?
  6. Можно хоть мегабайтными блоками писать, у FatFS буфер всё равно только на один сектор. 0. Убедитесь, что автодетект сработал, и карта работает на 50МГц. 1. Форматируйте в exFAT. 2. Поэкспериментируйте с размером кластера. При слишком большом кластере f_mkdir начнёт тормозить, так как он заполняет весь кластер (по одному сектору). Если вам это не нужно, то сделайте кластер размером с AU используемой карты. Проследите, что после форматирования файловая система легла по границе AU. 3. Используйте f_expand. 4. Рассмотрите переход на Microsoft Azure.
  7. Насколько я помню, Write Enable действует только на одну команду. То есть после стирания перед записью надо опять сделать Write Enable.
  8. CIA-601 - Это CAN-FD. CANOpen-FD - это CIA 1301. Я бы его тоже с удовольствием повертел в руках.
  9. Для этого есть много вариантов, от битовых полей до C++. Что же касается кэша - добивать нолями каждую структуру до размера его линии не только бессмысленно, но и вредно, и конечно ни один компилятор этого не делает. Да и не может, потому что кэши бывают внезапно разными даже у процессоров с одним и тем же набором инструкций.
  10. Начните осваивать BSP Editor. Там прямо вначале куча настроек, которые сильно влияют на размер.
  11. Я так понимаю, что вы жалуетесь на parser_put(). Я вижу, что функция parser_put принимает отдельные аргументы, а на экране отладчика у вас показаны поля некой структуры rx_packet, которая непонятно какое отношение имеет к этой функции. Во-первых язык программирования Си никак не связан с ОС Линукс, и результаты компиляции не зависят от того, применяется она или нет. Затем, pragma pack - это зло, которое делает программы непереносимыми. А в данном случае оно на структуру, состоящую из одних целых, никакого влияния не окажет.
  12. Power Estimator даёт быстрый и относительно точный ответ. У меня в проектах больше пары PLL никогда не использовались, поэтому на 2,5В хватало крошечного LDO.
  13. Хочу перенести проект с Cyclone IV GX на Cyclone 10 GX. Очевидно, надо заново сгенерировать IP. Однако IP Upgrade Tool пустой, и ни одна мегафункция не открывается - QIP открываются как обычные текстовые файлы, Verilog вообще не открывается O_o Это как-то обходится, или Intel теперь предлагает при переходе на новые чипы всё вручную переделывать?
  14. Хочу смастерить проприетарное решение на основе физического уровня PON. Вроде начиная с Cyclone V это поддерживается. Однако нигде в документах не могу найти subj: как быстро трансивер в OLT сможет переключаться между сигналами ONU. Есть у кого-нибудь идеи, как это можно выяснить, кроме как купив три платы и попробовав?
  15. Проверьте, сконфигурирован ли NIOS на скорость (включены ли кэши и прочая аппаратура), и положите исполняемый код в ТСМ.
  16. Драйвер отключается в BSP Edtor убиранием соответствующей галочки в закладке "Drivers".
  17. А это всё, там нет никакой инициализации. Записывается 1 в CSR, и он начинает работать.
  18. const float adc_vref = 3.0f; const volatile int* const adc_sample_array = (int*) ADC_SAMPLE_STORE_CSR_BASE; float adc_voltage; *(unsigned*)ADC_SEQUENCER_CSR_BASE = 1; adc_voltage = adc_vref * adc_sample_array[0] / 4095; Драйвер ADC выкинул, экономия 600 байт.
  19. На странице Linker Script в BSP Editor, в какую область памяти размещён BSS?
  20. Потому что неиспользуемые ресурсы продолжают жрать статику. Надо чип выбрать так, чтобы он был максимально заполнен.
  21. А что у вас конкретно делается на Verilog? Мы тоже традиционно делали ПЛИС+ARM, только ARM всегда стоял отдельно, и я сейчас начинаю понимать, что при современных процессорах ПЛИС в некоторых проектах больше не нужна. Например у TI есть процессоры (AM57xx), имеющие как ядро общего назначения, так и весьма мощный DSP (и плюс ещё несколько маленьких ядер для RTOS до кучи), и я прикинул, что когда не нужна быстрая реакция на события, этот DSP всё решит запросто.
  22. А теперь почитайте документацию на все используемые блоки.
  23. Надо сделать так, чтобы он бы found. Вставить то есть. Ибо без него вы не сможете сделать даже программную перезагрузку, и тем более не сможете сказать чипу, что он должен загрузиться из второй партиции. Блок этот правда называется не Remote Update, а Dual Configuration или Dual Boot, в этом подстава.
  24. Попробуйте первый бластер. У меня случалось, что дебаггер к ниосу через второй бластер вообще не подключался, а через первый - запросто.
×
×
  • Создать...