Jump to content

    

Dron_Gus

Свой
  • Content Count

    1216
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

About Dron_Gus

  • Rank
    Профессионал
  • Birthday 10/23/1985

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

4053 profile views
  1. Чтобы тема не осталась висеть без ответа. Решение проблемы остановки процессора я не нашел. Проблема с хранением настроек решена внешей NOR флешкой на QSPI интерфейсе. Благо была заложенна в железе. Запуск и отладка внешней флешки заняла в разы меньше времени, чем я потратил на поиски решения проблемы со встроенной.
  2. В поисках сильных специалистов на работу в Cogent Embedded (https://www.cogentembedded.com/ ) Вилка: 200K-400K на руки (возможна удаленка) Компания занимается full-stack разработкой для автомотив индустрии: -- разработка BSP для SoC vendors: от ATF до драйверов кастомных IP блоков-ускорителей (Linux, Android, Integrity, QNX, RTOSes. Renesas, TI, Qualcomm, Nvidia) -- разработка BSP для ECUs ведущих производителей индустрии -- разработка камерных ADAS приложений near-range (360/Surround View, Rear Camera Backup, есть свои продукты, есть work for hire) -- алгоритмы компьютерного зрения для fisheye камер, свой постоянно пополняющийся датасет -- image-quality tuning для ISP (TI, Renesas, Nvidia) -- так же дизайн, производство и продажа своих железок для прототипирования и референса для Tier1 suppliers По всем пунктам у нас множество проектов для крупнейших представителей индустрии (Tier1s/OEMs), работающих в серийных авто. От бюджетного до премиального сегмента и готовящихся к выпуску электрокаров. Офис Санкт-Петербург, метро Электросила/Московские ворота. Но возможна и удаленка. Потенциально - командировки (Япония, Корея, Западная Европа, США). Что-то из того, что есть в публичном доступе: http://www.remword.com/kps_result/3.14_whole.html (see Cogent Embedded) https://lwn.net/Articles/557220/ https://www.youtube.com/watch?v=PRUcI6MYPMU https://www.youtube.com/watch?v=yRvwBmpAPpI https://www.youtube.com/watch?v=8gbZvz769yg https://youtu.be/Zr9hGfvbY8o стенд ti на CES правый нижний экран наше демо. https://www.renesas.com/us/en/about/press-room/renesas-electronics-and-cogent-embedded-collaborate-make-3d-surround-view-parking-assist-system Конкретно данная вакансия для BSP инженера на позицию Embedded Linux/QNX для automotive ADAS чипов и железок на их базе. Требуются знания и навыки работы CAN, GMSL/GMSL2/FPD-Link3, CSI2, PMICs, Ethernet, USB, storages, IPC, early boot/bootloaders. Сильное знание C и системного программирования в целом. Так же рассматриваем джуниоров с опытом от пары лет, как и кандидатов на Computer Vision: люди без значительного опыта с железом, но с опытом с Autosar, Misra C/C++ code certification и работе в automotive продакшне в целом. Если есть вопросы по вакансии и интерес, то стучаться в почту grigory.kletsko@cogentembedded.com
  3. Промежуточный результат (его отсутствие): 1. добавление слипа в busyloop ожидания стирания страницы - никак не повлияло. 2. зацепился за встроенный трейсинг ChibiOS. Ловил последнее событие, случившееся до длинного длинного промежутка в тиках процессора. Вначале обрадовался - т.к. сталу предшествовал заход в один и тот же обработчик прерывания - ADC. Пооптимизировал - прерывание от ADC полностью отключил, т.к. все равно используется DMA - результата ноль. Никакой кореляции с последним событием. Может быть вход в прерывание, или переключение контекста.
  4. Уже. https://github.com/dron0gus/rusefi/blob/board-subaru-eg33-dev/firmware/main.cpp#L50 . Не отлавливается. Настройки верные, проверил тестовым образщением - ловит.
  5. Пока не понимаю, какие выводы из этой вводной можно сделать. Что без кэшей процессор раньше образается к этому банку флеза за данными/кодом. Так не должен же.
  6. Отключение кэшей усугубило проблему. Теперь сталится почти сразу после запуска стирания. Но не сразу. Видимо стоит отложить эту проблему и поднять таки QSPI + NOR flash и на этом успокоиться.
  7. Проверка nDBANK выключена парой комитов раньше, от безисходности. :) https://github.com/dron0gus/rusefi/commit/95a27a4363abe7629f10120f992269801384afcc#diff-10e65bab0eab4058dfb569de13b7a4c214449c497aeda04b3d88b4808346dfd7 В DS есть такой коментарий про FLASH_OPTCR/FLASH_OPTCR1: Access: no wait state when no Flash memory operation is ongoing, word, half-word and byte access. Хотя эта функция вроде и не должна вызываться в процессе записи, все решил подстраховаться. Да, во втором банке только данные. Туда сохраняются настройки в процессе работы. Читаются оттуда однократно при старте, потом работа идет с копией в ОЗУ. Кстати, еще не пробовал отключать I/D кэши на время стирания. Надо попробовать.
  8. Большое спасибо, что потратили свое время и проверили. Видимо не при любых условиях эти грабли всплывают. У меня тоже это происходит только при "естественном" выполнении. Попытался дергать тот же код по команде из дебажной консоли - работает, зараза. На всякий случай, наш спагетти-код https://github.com/dron0gus/rusefi/blob/board-subaru-eg33-dev/firmware/hw_layer/ports/stm32/flash_int.c Но я уже его насквозь проглядел, ничего странного не вижу. Продолжу ковырять в сторону ITCM. Возможно какой-то из кэшей/акселераторов пытается забить себе кеши и обращается к этой области. Как это отловить - не представляю.
  9. Попробую. Но есть опасение, что добавление задержки просто замаскирует проблему. Тем временем мне показали вот этот вопрос https://community.st.com/s/question/0D50X00009XkXpA/stm32f7-dual-bank-flash-erase-stall на форуме ST. К сожалению без ответа. Попытка отключить ITCM в лоб SCB->ITCMCR = 0 Приводит к HardFault из случайного места, но опять же только когда запущенно стирание. ITCM облась есть в линкер файле. Видимо, надо внимательно разобраться, не кладет ли линкер туда что-то.
  10. Бит точно сброшен. Да, на чистом чипе он стоял. Пришлось воспользоваться https://github.com/danielinux/stm32f7-dualbank-tool Барьер тоже присутствует #define intFlashWaitWhileBusy() do { __DSB(); } while (FLASH->SR & FLASH_SR_BSY); CPU останавливается в случайный момент, когда идет стирание страницы. Если бы он останавливался сразу - было бы хотя бы понятно, что ошибка где-то в коде работы с флешкой. А тут скорее сочетание факторов.
  11. Имеется STM32F765 c 2Мб флешки. Флешка в двухбанковом режме. Согласно документации - можно беспроблемно стирать/писать в один банк пока код исполняется из другого. Пытаюсь это сделать. Все это под ChibiOS. Запись во флеш из низкоприоритетного треда. Никаких прерываний, тупой полинг. С завидной периодичностью (>90%) процессор останавливается в процессе стирания страницы. После стирания продолжает исполнение. Прикрутил к ChibiOS'овскому трейсингу счетчик событий и начал смотреть на количество переключений контекста и обработанных прерываний на разных этапах работы с флешкой. Хорошая ситуация: [2072335144]13 intFlashSectorErase:194 +053766068 ( 320 mS): sw 684, irq 6510 320 мС на стирание одной страницы, в это время случлось 684 переключения контекста, и 6510 прерываний. (Очень) Плохая ситуация: [3225204673]05 intFlashSectorErase:194 +053656865 ( 319 mS): sw 18, irq 199 Чаше - что-то среднее. Т.е. процессор не сразу останавливается. Логично предположив, что кто-то лезет в стираемый банк. Разобрался и настроил MPU: для начала запретил доступ ко всему второму банку. Ожидаемо получил MemoryFault от функции записи флешки. Закоментировал непосредственную запись по адресам флешки. И тишина, код работает, проц фризится. Почитал документацию, предположил, что возможно и в FLASH Option Bytes нельзя лезть в процессе работы с флешкой. Запретил доступ и туда. И снова тишина. Т.е. как минимум процессор туда не лезет. DMA и другие мастера тоже не должны туда лезть. Два вопроса: 1. видел кто что подобное? 2. какой еще инструментарий можно применить? Jtag доступен. Спасибо!
  12. Можно подсмотреть готовые настройки где-нить здесь https://github.com/espressif/esp32-camera/blob/master/sensors/private_include/ov2640_settings.h
  13. В районе метро Электросила/Московские ворота. Требуется специалист широкого профиля со следующими навыками: 1. Ремонт ПП. Компоненты до 0402, пока без BGA. Умение читать схемы, понимание аналоговой и цифровой схемотехники. Умениее соотнести схему и ПП. Творческий подход. 2. Пуско-наладка устройств. Поиск неисправностей. Умение пользоваться измерительным оборудованием. 3. Сборка РЭА. Аккуратность и усидчивость приветствуется. 4. Начальный уровень пользователя Linux (можем устроить курс молодого бойца). Умение пользоваться командной строкой, minicom, ping, etc приветствуется. 5. Практические навыки программирования встраиваемых устройств (с/с++, микроконтроллеры). Знание Linux (embedded) будет большим плюсом. 6. Хорошая память, желание развиваться и узнавать новое. Обучаемость. Обязанности: 1. Входной контроль, тестирование на дым, внесение правок в приходящие с произвоства ПП. Прошивка, первоначальная проверка и диагностика. Ремонт. 2. Сборка прототипов и экспериментальных установок по заданной спецификации. 3. Тестирование прототипов. 4. Ведение склада: электронных компонентов, комплектущих и готовых изделий. Закупка комплектующих, общение с поставщиками, логистом, конструктором, схемотехником. 5. Поддержка штата программистов по вопросам: "перестало работать", "проводок отвалился", "какой мне нужен блок питания", "как мне это подключить сюда" Условия: 1. офис в БЦ в районе Московского проспекта на Цветочной ул. 2. 8 часов в день с понедельника по пятницу, гибкий график. 3. официальное трудоустройство, испытательный срок 3 месяца. 5. наш кофе. ЗП: 70-100 тр. по результатам собеседования. Резюме присылайте на info@cogentembedded.com З.Ы. сразу отвечаю на коментарии вроде "тут требований на 10 специалистов". Да, нам нужен специалист широкого профиля. Да, такие существуют. Нет, прошлый работал на четверть ставки, просто не хватало на все времени. По обьемам работ: это не конвейер. Мы выпускаем по 5-20 устройств в месяц. Плюс поддержка еще штук 20, которые используются внутри конторы для разработки.
  14. У меня лет 5 простоял AEM на 4.2 там и уехал с машиной к новому владельцу. Никаких проблем. Про проблему нагревателя и смысл калибровки на воздухе о того же Макси были какие-то статьи.