fpga_student 0 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба On 3/27/2023 at 10:41 AM, EdgeAligned said: В показанной схеме номинал индуктивности L1 указан 470 Ом. Но индуктивность измеряется не в Омах, а в Генри (Гн, мкГн, мГн). Сопротивление катушки - это уже дополнительный параметр. Поэтому лично я бы все-таки принял за основу вероятность ошибки разработчиков, собрал бы их вместе и начал бы все перепроверить ещё раз. Парсингом документации, закупкой, сопровождением производства во многом занимался я сам. Бабло требует внимательности) Катушка это ЭМИ фильтр с импендансом 470 Ом, все правильно) On 3/27/2023 at 10:41 AM, EdgeAligned said: придётся уж потрудиться тут нет сомнений On 3/27/2023 at 10:41 AM, EdgeAligned said: PS. Стоит прочитать документ ES0206 на сайте st.com, это эррата, список багов микроконтроллера. Там как раз есть кое-что про флеш Errata мы штудировали несколько раз, и я обращал внимание программиста на связанные flash баги. Вот exception на MPU и прощелканный HardFault и NMI это реально наш косяк. Но да сейчас имеет смысл пересмотреть еще раз эррату, спасибо. PA12 в проекте не используется. Data cache might be corrupted during flash memory read-while-write operation это интереснее, но об этом говорили On 3/27/2023 at 12:22 AM, Сергей Борщ said: Можно сделать какую-нибудь тайную команду загрузчику - например, проверка свободной ноги на притяжку к земле и в этом случае в ответ на опять же недокументированную посылку по одному из выведенных наружу интерфейсу выдачу дампа всех задействованных областей флеша. Потом эти дампы залить в устройство без установленной защиты от чтения и уже в нем отладчиком найти причину окирпичивания. Это мне кажется слишком сложно. Думаю нужно просто по порядку отработать то что не доработали по HardFault, NMI и Mpu exception. Мне почему-то кажется это даст кучу информации к размышлению Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба Прочитал в теме, что у вас там прошивка обновляется через SD карту. Отлично! Вставляете карту, цепляете осцилл или лог анализатор на контакт CLK разъёма карты и подаёте питание. Тактовые импульсы побежали? Отлично, прошивка загрузчика цела и что то делает. Можно даже подцепить лог анализатор к остальным выводам и считать сигналы инициализации карты. Если они осмысленные, команды верные, значит, прошивка в этой части цела. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба On 3/27/2023 at 11:10 AM, EdgeAligned said: Прочитал в теме, что у вас там прошивка обновляется через SD карту. Отлично! Вставляете карту, цепляете осцилл или лог анализатор на контакт CLK разъёма карты и подаёте питание. Тактовые импульсы побежали? Отлично, прошивка загрузчика цела и что то делает. Можно даже подцепить лог анализатор к остальным выводам и считать сигналы инициализации карты. Если они осмысленные, команды верные, значит, прошивка в этой части цела. мысль спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 189 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба 2 часа назад, AlanDrakes сказал: В общем, счётчик страниц на STM32F103C8T6 успешно крутанулся и записал в загрузчик мусор. Хотя вроди бы всё проверял перед записью. Оказалось, что нет. А Ваш загрузчик при первом включении разве не выставляет биты блокировки, в том числе на запрет записи в область загрузчика?)) Ну и далее по списку - проверка валидности запускаемого бинарника и т.д. ИМХО, отладке загрузчика иногда нужно отдавать гораздо больше времени и внимания, чем основному коду. Устраивать встряску и прочие прелести суровой реальности)) Зато от банальных косяков защищен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба По поводу обработки всякого рода Fault-ов. Они не зря придуманы, поэтому в обработчиках этих исключений нужно писать код, помогающий диагностировать ошибку. Аппаратные средства микроконтроллера сохраняют флаги причин, вызвавших ошибку и последний адрес памяти программ перед "совершение ошибки". Эту информацию и нужно логгировать и выводить куда-либо. Можно записать в Backup SRAM, можно записать во внешнюю мелкосхему EEPROM или Flash, устанавливаемую на панельку, можно вывести на 7-сегментный индикатор код ошибки или промигать код светодиодов или пищалкой, как сделано было в компутерах. Там же можно выполнить подсчёт контрольной суммы прошивки для проверки её повреждения. После этих действий в обработчике выполнить команду программного системного сброса (есть такая!) и работа запустится с начала. Если вдруг ошибка фатальная, то не перезапуска ть микроконтроллер, а оставаться в этом участке, выдавая диагностическая информацию типа пищания и/или индикации кода ошибки. Используя Backup-регистры, можно запретить вообще работу микроконтроллера при последующих запусках.тут зависит от потребностей и творческой фантазии. А вот пользовательские настройки целесообразно хранить как раз в Backup SRAM, еёйной там аж 4 кБ и она как раз и предназначена для эмуляции EEPROM, как написано в документации. Быстро и безопасно. При вытаскивании батарейки сделанные настройки сбрасываются к "заводским" (которые определены вами как дефолтные). Это есть удобный и надежный способ вернуть прибор в исходное "заводское" состояние. В программе лучше всего код загрузчика располагать в последних секторах флеша. Это позволит писать основную прошивку так, как если бы загрузчика не было вовсе. Нужно лишь при компиляции основной программы уменьшить в скрипте загрузчика размер флеши на величину занятых загрузчиком секторов. Сектора загрузчика сразу блокируются от перезаписи и эта настройка больше не трогается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба On 3/27/2023 at 12:17 PM, EdgeAligned said: А вот пользовательские настройки целесообразно хранить как раз в Backup SRAM, еёйной там аж 4 кБ и она как раз и предназначена для эмуляции EEPROM, как написано в документации. Идея суперздравая. Авторство "изобретения" о том что настройки должны быть в памяти проца, мое(( Правда я уже не помню, сколько требовалось места под хранение настроек. В любом случае это конкретный косяк, от спешки, недочитанности документации и недодуманности проекта. Снаружи есть внешняя 64МБит флешь, где без особых проблем помимо текущих счетчиков и статистики можно было хранить и настройки, и тем не менее, я рискнул(( Возможно правда дело было в том, что мы там еще и ключи храним. Начиналось все это давно( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 4 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба Храню настройки в последних двух страницах в виде копии с CRC (STM32F0). Это вполне нормальное решение и работает нормально. Проблема явно не в этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба Да нет, никто не запрещает использовать эмуляцию EEPROM на флеши памяти программ. В малых и старых микроконтроллерах это единственная возможность. Однако, в F429 размер сектора довольно велик, то есть, он будет весь вычеркнут из доступного объёма для исполняемого кода. Использовать сектор и под настройки, и под исполняемый код - чревато, поскольку перезапись настроек возможна только после стирания сектора. Это ж надо тогда предварительно считать сектор вместе с кодом, изменить и перезаписать заново. Потенциальная проблема потери части прошивки. Здесь же мы, не имея точных данных о прошивке, просто приводим список потенциальных мест возникновения косяка. Кстати, в двух банковой версии флеша есть возможность безопасного обновления прошивки. Банки просто переключаются между собой. Один банк - активный, второй - хранит резервную копию программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба 1 час назад, Михась сказал: Храню настройки в последних двух страницах в виде копии с CRC (STM32F0). Это вполне нормальное решение и работает нормально. Зависит от работы, выполняющемой устройством. Такое можно делать если: 1) или МК имеет dual-flash; 2) или алгоритм работы устройства допускает длительные остановки его работы (на сотни мс - единицы секунд); 3) или размер ОЗУ позволяет вынести всю realtime-работу, требующую немедленной реакции, в ОЗУ. Не знаю что у вас за проекты, но алгоритмы работы почти всех моих устройств такого не допускают. Ибо - realtime. PS: А если учесть что: 1 час назад, fpga_student сказал: Снаружи есть внешняя 64МБит флешь То идея - хранить настройки во флешь программ МК - очень глупая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба On 3/27/2023 at 2:13 PM, jcxz said: идея - хранить настройки во флешь программ МК - очень глупая. Предыдущий большой проект у меня украли. Поэтому здесь изза ключей кажется мы переборщили Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба Никто не мешает настройки во внешней флешь зашифровать. А ключ (константный) хранить в образе прошивки в закрытой флеши МК. Либо шифровать (эти же настройки) ключом, на основе уникального ID процессора (если он не виден в залоченном состоянии МК). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба 18 часов назад, fpga_student сказал: сбросе защиты и стирании проца Baсkup SRAM стирается или нет ? Да, стирается. Ключи лицензии можно хранить в OTP микроконтроллера. Кстати, в F429 есть проприетарная защита PCROP с собственным управление защитой секторов. Возможно, режим защиты был установлен именно в это положение. Этим может объясняться непонятка с битами защиты сектора загрузчика, о которой писал топикстартер вначале. Возможно, програмист не разобрался до конца с тонкосьями этого режима, но в погоне за супер-плюшками защиты включил именно её Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 27 марта, 2023 Опубликовано 27 марта, 2023 · Жалоба Изделие массовое, как я понял: похоже, глючат экземпляры МК из конкретной партии поставки - "нарвались" на отбракову\контрафакт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
113 3 31 марта, 2023 Опубликовано 31 марта, 2023 · Жалоба Насколько я понял, прошивка обновляется с карточки. Т.е. сначала загрузчик проверяет ее на карте, потом стирает флешь и начинает копировать с карты во внутреннюю память. Если во время этого процесса карту извлечь, что будет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fpga_student 0 31 марта, 2023 Опубликовано 31 марта, 2023 · Жалоба On 3/31/2023 at 2:13 PM, 113 said: Насколько я понял, прошивка обновляется с карточки. Т.е. сначала загрузчик проверяет ее на карте, потом стирает флешь и начинает копировать с карты во внутреннюю память. Если во время этого процесса карту извлечь, что будет? ничего страшного. Прошивка обновится при следующей подаче питания, тк ее файл с SD не удален Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться