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

Контроллер самостирается. Кто виноват и что делать (с) Мать (с)

Кста, у меня загрузчик даже исправное приложение запускает не сразу, а через 200мс (быстрый старт) - 5000мс (медленный старт, после NVIC_SystemReset), чтоб можно было к нему как-то подключиться.

У вас каким образом выполняется обновление? По какому каналу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 минуты назад, fpga_student сказал:

после обновления образы прошивок загрузчик с SD стирает, соответственно на следующем перезапуске ему просто нечего писать.

Это вы так думаете. А кривая программа может делать что угодно. Хоть например при каждом старте 10 раз подряд тереть один и тот же сектор. Просто  это не вылазит, до тех пор, пока устройство часто не перезапускается (у вас на столе). А у заказчика например какой-то монтажник плохо прикрепил провод питания, он болтается и устройство перезапускается каждые несколько секунд. И так проходит месяц и.... флешь приказывает долго жить... :cray:  как вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2023 at 10:40 PM, adnega said:

Кста, у меня загрузчик даже исправное приложение запускает не сразу, а через 200мс (быстрый старт) - 5000мс (медленный старт, после NVIC_SystemReset), чтоб можно было к нему как-то подключиться.

У вас каким образом выполняется обновление? По какому каналу?

Файл с SD. Нет никакого канала. Есть новый файл прошивки - обновляемся. Нету - проверяем и грузим что есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 26.03.2023 в 22:38, fpga_student сказал:

Я сказал FRAM, она работает на 40МГц. Достаточно быстро, чтобы сильно не гадить ПО, кроме того есть аппаратные очереди. Записанный стек позволит хотя бы понять, в одном и том же месте происходит сбой или в разных, если в одном то хотя бы укажет направление куда смотреть.

Видимо теперь будем, спасибо

Если у вас нету отладочной консоли (UART), то во внешнюю память можно сбрасывать стек, извлеченный из недр HardFault, а дальше - хоть ногодрыгом кинуть значение регистров и стека во внешнюю память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, fpga_student сказал:

3. Область хранения настроек ПО.

Настройки в процессе работы устройства изменяются? Как реализовано изменение? Безопасно? Или при внезапной перезагрузке они могут слететь? Может тогда просто это у вас и происходит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2023 at 10:43 PM, adnega said:

Если у вас нету отладочной консоли (UART), то во внешнюю память можно сбрасывать стек, извлеченный из недр HardFault, а дальше - хоть ногодрыгом кинуть значение регистров и стека во внешнюю память.

Сперва надо узнать что там HardFault. И какую внешнюю память Вы предлагаете использовать ?

 

On 3/26/2023 at 10:43 PM, jcxz said:

Настройки в процессе работы устройства изменяются? Как реализовано изменение? Безопасно? Или при внезапной перезагрузке они могут слететь? Может тогда просто это у вас и происходит?

Да изменяет пользователь в меню HMI. Насчет безопасно я не в курсе, нужно пытать программиста.

Нет скорее всего дело не в этом, слишком много плат слетело. 20-30% Практически невероятно такое совпадение, я думаю почти невероятно чтобы даже 2 машины таких было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, fpga_student сказал:

Я сказал FRAM, она работает на 40МГц. Достаточно быстро

SPI? Это очень медленно. Так как для того чтобы вести какие-то логи, нужно выполнить множество операций записи (может и чтения). Каждая операция - команда разрешения, команда посылки данных. Каждая со своими стробами CS и т.п.

На параллельной FRAM может были бы какие-то шансы.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 26.03.2023 в 22:41, fpga_student сказал:

Файл с SD. Нет никакого канала.

Я для таких случаев всегда использую копию обновления во флешь. Т.е. обнаруживаю корректное обновление на карте, если требуется обновить, то записываю его в регион IMAGE во флешь МК, делаю перезагрузку. Загрузчик видит корректное обновление в IMAGE, принимает решение обновить APPLICATION, стирает APPLICATION, расшифровывает IMAGE и копирует его в APPLICATION, проверяет корректность записи и ставит штамп с CRC32, если все ок. После этого APPLICATION можно запускать. И если когда-то APPLICATION поплохеет, всегда есть копия в IMAGE для автоматического восстановления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2023 at 10:49 PM, adnega said:

Я для таких случаев всегда использую копию обновления во флешь. Т.е. обнаруживаю корректное обновление на карте, если требуется обновить, то записываю его в регион IMAGE во флешь МК, делаю перезагрузку. Загрузчик видит корректное обновление в IMAGE, принимает решение обновить APPLICATION, стирает APPLICATION, расшифровывает IMAGE и копирует его в APPLICATION, проверяет корректность записи и ставит штамп с CRC32, если все ок. После этого APPLICATION можно запускать. И если когда-то APPLICATION поплохеет, всегда есть копия в IMAGE для автоматического восстановления.

Прошивка огромная она едва влазит в память. Места на 2 копии нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 26.03.2023 в 22:43, jcxz сказал:

Настройки в процессе работы устройства изменяются? Как реализовано изменение? Безопасно? Или при внезапной перезагрузке они могут слететь? Может тогда просто это у вас и происходит?

Кста, подергать питание в моменты изменения настроек - это первое, что нужно попробовать для удачного окирпичивания на столе.

В 26.03.2023 в 22:48, jcxz сказал:

SPI? Это очень медленно.

Дык, кирпич никуда и не торопится - это по сути канал с внешним миром для выгрузки хоть какого-то дампа

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2023 at 10:51 PM, adnega said:

Кста, подергать питание в моменты изменения настроек - это первое, что нужно попробовать для удачного окирпичивания на столе.

Там есть проблемы, но по статистике не сходится имхо никак. Но вообще попробую, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 26.03.2023 в 22:50, fpga_student сказал:

Прошивка огромная она едва влазит в память. Места на 2 копии нет.

Кста, внешняя SPI флешка под IMAGE - рулит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, fpga_student сказал:

Там и так несколько мегабайт прошивка, я не стал прессовать(

Чувствую, что программист и сам не в курсе - кто там что у него в ПО пишет во флешь. :sarcastic:  При таких-то размерах можно предположить - явно где-то надёргал чужого кода, который непонятно что внутри себя вытворяет.

4 минуты назад, adnega сказал:

Дык, кирпич никуда и не торопится - это по сути канал с внешним миром для выгрузки хоть какого-то дампа

Напомню, что ТС собирался писать в него лог штатной работы функций программы.  :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/26/2023 at 10:53 PM, jcxz said:

Чувствую, что программист и сам не в курсе - кто там что у него в ПО пишет во флешь. :sarcastic:  При таких-то размерах можно предположить - явно где-то надёргал чужого кода, который непонятно что внутри себя вытворяет.

Вы злы к моему программисту. Он чрезвычайно хорош. Единственный из 15 студентов, кто с первого дня меня консультировал) Драйверы ядра под линукс, техническое зрение, сейчас нейросети. Он великолепный, просто там действительно большая хрень, которой уделялось не так много времени как было нужно. Кода заимствованного действительно было много, тк сам с нуля он бы писал все в разы дольше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 26.03.2023 в 22:52, fpga_student сказал:

Там есть проблемы, но по статистике не сходится имхо никак.

У Заказчика всяко может быть. Например, он изменяет какие-то уставки, которые в реальном времени щелкают каким-нить мощным контактором, от помехи которого МК сбоит - статистика в этом случае меняется кардинально.

В 26.03.2023 в 22:56, fpga_student сказал:

Вы злы к моему программисту. Он чрезвычайно хорош. Единственный из 15 студентов за 5 лет, кто с первого дня меня консультировал) Драйверы ядра под линукс, техническое зрение, сейчас нейросети. Он великолепный, просто там действительно большая хрень, которой уделялось не так много времени как было нужно.

Самое простое - сделайте индикацию HardFault.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...