Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Своими руками

Своими руками Завершенные и текущие проекты, хард & софт

Ответ
 
Опции темы Опции просмотра
Старый 04.08.2010, 10:53   #51
vptr
Senior Member
 
Регистрация: 25.02.2007
Сообщений: 281
Вес репутации: 344/52
vptr is a jewel in the roughvptr is a jewel in the roughvptr is a jewel in the roughvptr is a jewel in the rough
По умолчанию Re: Самодиагностика PIC'ов

Я согласен с тем, что диагностика должна быть, по мере возможности. Но часто изделие это ящик, закрепленный где-то и который во-время эксплуатации никто снимать не будет (если оборудование в работе на передвижном комплексе например) или прибор решает отдельную задачу в составе большой системы. И здесь уже работает правило предложенное на конфе в сахаре - если уже п...ц то он не лечится. Будь то сбой флеш, попадание болта и гаек на плату, воды и т.д. В этом случае используется резервирование на аппаратном уровне, когда по определенным алгоритмам подключается другой резервный прибор. Причем контроль сбоя осуществляет внешнее устройство.
А чтобы минимизировать вероятность отказа, существует куча нормативов на разработку, испытания, производство, хранение и эксплуатацию прибора.
Цитата:
Нет ГОСТов, регламентирующих написание программы. Вернее, они есть, но они предписывают "что" делать, а не "как"
Имелось ввиду ГОСТы на изделие в целом (разраработка, испытания и т.д), где процессор с программой одна из многих составляющих и контролировать его самим себя (после всех проведенных испытаний) уже не имеет смысла (если есть требование надежности, то только резервирование на аппаратном уровне т.е. несколько приборов)
Цитата:
тривиальный пример - старение: автомобиль с контроллером на борту может прожить хоть 30 лет, а показатель Data Retention для Flash, например для PIC32, всего 20 лет; и не иметь в данном случае средств самодиагностики Flash - опасно для участников дорожного движения.
Это тривиальный пример нарушения условий эксплуатации. Автомобиль, как и серьезный прибор, имеет требования по техническому обслуживанию в процессе эксплуатации, которые определены по времени и по пробегу и срок службы отдельных узлов известен. И если хочется безопасно ездить, то надо своевременно проходить тех обслуживание, на котором меняют то что по регламенту определено. Здесь уже самотестирование флеш ничем не поможет (например еду и тут она оттестировалась и решила завершить работу, а я на 100 км/ч)

В общем краткое итого:
1. Если есть возможность самотестирования и безопасного завершение работы, то это надо делать.
2. Для создания надежного изделия надо представлять этапы проектирования, производства, испытаний, состав документации на все этапы, соблюдение условий эксплуатации (там же определяется и срок службы прибора и его регламент по обслуживанию).
3. Для серьезных систем применять аппаратное резервирование.
vptr вне форума   Ответить с цитированием
Старый 04.08.2010, 11:06   #52
Ruslan
Senior Member
 
Регистрация: 16.01.2008
Возраст: 40
Сообщений: 287
Вес репутации: 120/47
Ruslan will become famous soon enoughRuslan will become famous soon enough
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от vptr Посмотреть сообщение
Имелось ввиду ГОСТы на изделие в целом (разраработка, испытания и т.д), где процессор с программой одна из многих составляющих
Перечень ГОСТов можно привести?
Буду очень признателен.
Ruslan вне форума   Ответить с цитированием
Старый 04.08.2010, 14:52   #53
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Ecole Посмотреть сообщение
Еще один полу-офф.
Предлагаю для повышения надежности копию прошивки контроллера держать во внешней Flash или EEPROM (естественно с контр. суммами и даже можно с дублированием данных). При необходимости можно даже контроллер перешить, если окажется, что его flash испорчена.
На самом деле на борту одного МК такого не встречал (и вряд ли встречу). Тут есть три сложных момента:
1. Слететь может и сам бутлоадер, так что в МК придется держать две его копии. Обычно бутлоадер получает управление при подаче питания, чтобы не давать запустить программу, если прошивка не дошита (например во время прошивки выключили пиание). И тут управление может получить только одна копия бутлоадера (возможно та, которая битая).
2. Надо помнить, что прошивка слетела не просто так, и причины, вызвавшие это, могли также попортить остальные компонены.
3. Открытая прошивка.

Так что лучше отсиживаться в безопасном режиме.

А вообще такое встречается, только загрузчик стоит внешний (т.е. МК не сам себя шьет). Обычно его цель - прошивка биоса (или булоадера).
tester вне форума   Ответить с цитированием
Старый 04.08.2010, 14:55   #54
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

2 vptr:

Три оговорки:

1. Надежность ПО и отказоустойчивость ПО - это характеристики, которые должны быть присущи пргограммам во всех эелектронных устройствах, а не только там, где могут быть жертвы или многомиллионные убытки. Конечно, надо разумно оценивать грань, где прекращать проверки.

2. Реальные условия эксплуатации могут не соблюдаться. Я, конечно, понимаю, что самодиагностика на скорости 100 км/ч - это ирония, но при включении зажигания диагностика выполняется (я работал с исходниками для авто, там это есть). Представьте, если автовладелец забил на плановые ТО, и по прошествии 20 лет какой-то бит во флеш стал нестабильно читаться. Что лучше: иметь диагностику или пускай и так работает?

3. Аппаратное резервирование не всегда возможно. Дело не только в цене, но и в габаритах, массе, потребляемом токе и т.п. Когда работал над ПО к метеозонду, в той фирме были разборки с главным инженером из-за того, что один из работников, разводя схему, поставил SMD типоразмера 0603 вместо 0402. А там шла борьба за каждый миллиграмм, и из-за бОльших размеров площадок увеличивался общий вес припоя.
tester вне форума   Ответить с цитированием
Старый 04.08.2010, 23:18   #55
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Petr Посмотреть сообщение
Вообще такая ситуация при использовании рекомендуемых алгоритмов
прошивки - абсолютно надуманная. Ибо эти алгоритмы(рекомендуемые) в большинстве
случаев довольно замысловаты и нацелены на исключение именно таких ситуаций.
Вообще я не с бухты барахты сделал, а получил хороший пинок.

Простая ситуация позвонил заказчик и попросил привезти устройство. Сняли со стенда и через две границы приехал к заказчику, запускаем 3 секунды и останов по ошибке даже инициализация до конца не прошла.
Приехал домой начали логи изучать и пришли к выводу изменилась прошивка.
Причину понять не могу, коллективный разум предположил низкое напряжение при программировании. Программировалось клоном ИСД2 при питании от ЮСБ. Поставили самописец на ЮСВ получили 4,4 - 4,8 вольт.
Устройство до этого момента нормально отработало на стенде чуть более двух месяцев и после перепрограммирования совершенно нормально опять заработало.
ТО что устройство нормально заработало после перепрограммирования слегка расстроило. Так родилась идея проверки флеши и еще добавили способов контроля при несоответствии замыкается мощный ключ по входному питанию и сгорает предохранитель. Логи пишутся посмотреть можно.
Понятно что это не панацея, и очень может быть, что это был один тот случай 1/10..00.
Подобный случай более не повторился.
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 18:04   #56
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
2 DL36: не занимаешься ли ты случайно расширением программы для PIC32? (Что-то я поздно спохватился, скоро программу сдавать, а CRC еще не сделал.)
Если кому еще понадобится, Илья подсказал аппноут: AN1229

Есть исходники для PIC32 и dsPIC'ов, выполняющие основные тесты по IEC 60730:
- регистры CPU
- программный счетчик
- RAM
- ROM
- прерывания
- тактирование
(остальных тестов: адресация, периферия, временные интервалы, АЦП и пр. - нет)

Последний раз редактировалось tester; 10.08.2010 в 18:16.
tester вне форума   Ответить с цитированием
Старый 10.08.2010, 18:19   #57
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Спасибо!
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 18:25   #58
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
2 DL36: не занимаешься ли ты случайно расширением программы для PIC32? (Что-то я поздно спохватился, скоро программу сдавать, а CRC еще не сделал.)
Ответ пропустил, получилось как роз между командировками.

Позже планирую расширить на всю линейку.

Сейчас есть два варианта,
самый первый где все прописывалось вручную
или сделай для меня тестовый проект для пик32 думаю дней через 8-10 смогу уделить некоторое время для расширения.
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 18:32   #59
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от DL36 Посмотреть сообщение
Ответ пропустил, получилось как роз между командировками.

Позже планирую расширить на всю линейку.

Сейчас есть два варианта,
самый первый где все прописывалось вручную
или сделай для меня тестовый проект для пик32 думаю дней через 8-10 смогу уделить некоторое время для расширения.
Хочу вникнуть сначала в их библиотеку. Там-то CRC вычисляется не над HEX'ом, а кодом над самим собой. Поизучаю, куда он что складывает и либо постараюсь подготовить описание этой либы по-русски, либо подготовлю тебе пример для твоей разработки (пока детально не разбирался, но если либа предполагает запись вычисленного при первом запуске CRC во flash, то этой либой пользоваться нельзя)
tester вне форума   Ответить с цитированием
Старый 10.08.2010, 18:36   #60
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
но если либа предполагает запись вычисленного при первом запуске CRC во flash, то этой либой пользоваться нельзя)
Первоначально я почти так и делал, только писал в епром сигнатуру и crc при первом запуске.

В старших пиках ведь есть аппаратный вычислитель crc было бы здорово его использовать.
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 18:41   #61
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от DL36 Посмотреть сообщение
Первоначально я почти так и делал, только писал в епром сигнатуру и crc при первом запуске.
Я бы не рисковал с таким подходом. Если побьется сигнатура в EEPROM (например по той же причине, что и Flash), то программа просто пересчитает CRC заново? (Т.е. уже неправильной программы).
tester вне форума   Ответить с цитированием
Старый 10.08.2010, 18:48   #62
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
Я бы не рисковал с таким подходом. Если побьется сигнатура в EEPROM (например по той же причине, что и Flash), то программа просто пересчитает CRC заново? (Т.е. уже неправильной программы).
Нет не получится, там сигнатура была и проверка на чистоту памяти. Любая испорченная запись приводит к остановке, перезапись crc производилась только после стирания всего массива епром.
Просто надо было дать решение за день.
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 19:07   #63
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
Я бы не рисковал с таким подходом. Если побьется сигнатура в EEPROM (например по той же причине, что и Flash), то программа просто пересчитает CRC заново? (Т.е. уже неправильной программы).
Вообще вычисление CRC при первом старте имеет другой недостаток.
Можно предположить, что прошивка сразу прошла неверно (ну допустим) или первое включение сделали на следующий день,
при более низкой(высокой) температуре.
В результате контрольная CRC бедет неправильной.
Но это все уже малек паранойя.
В реале запись CRC при первом старте в дата флеш (или в программу)
неплохой вариант. Он исключает доп. операции по подготовке прошивки. А блок CRC никак не может быть перезаписан повторно.
Можно же метку ставить где угодно (да 10 меток в разных местах)

Развиваем идею :-)
Берем контроллер с флешью, существенно большей, чем необходимо.
В свободную часть пишем прошивку с соломоном ридом(высокой избыточности).
Программа сбоя CRC делает восстановление
Petr вне форума   Ответить с цитированием
Старый 10.08.2010, 19:20   #64
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Petr Посмотреть сообщение
В реале запись CRC при первом старте в дата флеш (или в программу) неплохой вариант. Он исключает доп. операции по подготовке прошивки. А блок CRC никак не может быть перезаписан повторно. Можно же метку ставить где угодно (да 10 меток в разных местах)
Если только так. (+ еще несколько защит от случайного попадания в функции записи.)

Цитата:
Развиваем идею :-)
Берем контроллер с флешью, существенно большей, чем необходимо.
В свободную часть пишем прошивку с соломоном ридом(высокой избыточности). Программа сбоя CRC делает восстановление
Понимаю, что шутка, но возражу: восстанавливать сбитую прошивку опасно (не важно откуда: из внешней памяти или из внутренней), т.к. причины, вызвавшие ее порчу (прямое попадание снаряда ), могли попортить и внешние элементы (например, внешнее АЦП, которое начнет гнать неправильные данные). Так что лучше сидеть тихо в безопасном режиме и ждать команду инженеров с новым блоком.
tester вне форума   Ответить с цитированием
Старый 10.08.2010, 19:28   #65
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
Так что лучше сидеть тихо в безопасном режиме и ждать команду инженеров с новым блоком.
+++
DL36 вне форума   Ответить с цитированием
Старый 10.08.2010, 22:31   #66
Timik
Member
 
Регистрация: 24.09.2007
Возраст: 35
Сообщений: 46
Вес репутации: 126/46
Timik will become famous soon enoughTimik will become famous soon enough
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Petr Посмотреть сообщение
...
В реале запись CRC при первом старте в дата флеш (или в программу)
неплохой вариант. Он исключает доп. операции по подготовке прошивки. А блок CRC никак не может быть перезаписан повторно.
Можно же метку ставить где угодно (да 10 меток в разных местах)
...
Petr, поясните пожалуйста, почему блок CRC никак не может быть перезаписан повторно? Или нетривиальная сигнатура (т.е. не просто байт-индикатор) в EEPROM это всецело исключает?
Очень заинтересовал подход с метками. Что это? Или это та же самая сигнатура состоящая из нескольких байт "разбросанных" в памяти МК?
Timik вне форума   Ответить с цитированием
Старый 10.08.2010, 23:21   #67
Timik
Member
 
Регистрация: 24.09.2007
Возраст: 35
Сообщений: 46
Вес репутации: 126/46
Timik will become famous soon enoughTimik will become famous soon enough
Smile Re: Самодиагностика PIC'ов

Цитата:
Сообщение от tester Посмотреть сообщение
Если только так. (+ еще несколько защит от случайного попадания в функции записи.)
...
tester, расскажите пожалуйста по подробнее о способах защиты от случайного попадания в функции записи. Приведите пожалуйста примеры или ссылки на источники.
Если память программ МК не превышает 16K есть ли смысл в CRC32 вместо CRC16? Правильно ли передавать пакеты "бутлоудеру" размером не более 256 байт с контролем целостности по CRC8?
Timik вне форума   Ответить с цитированием
Старый 11.08.2010, 00:58   #68
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Timik Посмотреть сообщение
tester, расскажите пожалуйста по подробнее о способах защиты от случайного попадания в функции записи.
В двух словах: должна выполняться проверка стека и проверка сигнатур в RAM-памяти. Для особых случаев имеет смысл применять внешние сигнатуры (т.е. формируемые программой перед вызовом функции, а не внутри ее). Ну, и, соответственно, проверка правильности аргументов функций и соответствия их текущей задачи.

Цитата:
Приведите пожалуйста примеры или ссылки на источники.
Ссылок на источники о защите от непредусмотренного входа в функции у меня нет, собственно, поэтому и решил написать статью по этой теме. Простых примеров, где бы четко прослеживалась логика защиты, под рукой нет. Я потом все опишу в статье (но не очень скоро). Схематически это можно показать так:
Код:
volatile unsigned char Signature[4] = {0,0,0,0};
void bootloader (void)
{
    unsigned char *pData;
    unsigned long  dwAddress;
    ...
    for (...)
    {
        ...
        Signature[0] = 0x12;
        Signature[0] = 0x34;
        Signature[0] = 0x56;
        Signature[0] = 0x78;
        flash_write_block(dwAddress, pData);
        ...
    }
}
...
void flash_write_block (unsigned long dwAddress, unsigned char *pData)
{
    // Делаем контроль стека (различатся для разных платформ)
    // Например для PIC18:
    if (STKPTR != 2) reset();
 
    // Выполянем проверку на правильность аргументов:
    // - dwAddress не должен попадать в область бутлоадера
    // - dwAddress должно быть меньше объема памяти
    // - и пр.
    ...
 
    // Далее идет формирование регистров адреса для записи во флеш
    ...
 
    // Теперь проверяем сигнатуру:
    if (Signature[0] != 0x12) reset();
    if (Signature[1] != 0x34) reset();
    if (Signature[2] != 0x56) reset();
    if (Signature[3] != 0x78) reset();
 
    // Чистим сигнатуру
    Signature[0] = Signature[1] = Signature[2] = Signature[3] = 0;
 
    // Выполняем стирание/запись
    ...
}
Цитата:
Если память программ МК не превышает 16K есть ли смысл в CRC32 вместо CRC16?
Как это "есть ли смысл"? Можно и тот и тот применять. Вряд ли CRC32 будет намного эффективнее при 2^17 битах. Но для переносимости кода лучше использоваться ЦРЦ32.

Цитата:
Правильно ли передавать пакеты "бутлоудеру" размером не более 256 байт с контролем целостности по CRC8?
Если это просто ЦРЦ (т.е. исключительно для проверки, без коррекции), то црц8 достаточно (если это конечно именно ЦРЦ, а не арифметическая сумма или xor).
tester вне форума   Ответить с цитированием
Старый 11.08.2010, 14:11   #69
Timik
Member
 
Регистрация: 24.09.2007
Возраст: 35
Сообщений: 46
Вес репутации: 126/46
Timik will become famous soon enoughTimik will become famous soon enough
Smile Re: Самодиагностика PIC'ов

tester, спасибо. Мне встречался подобный подход при изучении исходников бутлоудера для PIC24 от Microchip. Там использовали две переменные, которые в разных участках кода изменялись определенным способом. В то время не придал им особое значение. Теперь вижу в них четкий смысл.

Цитата:
Сообщение от tester Посмотреть сообщение
Как это "есть ли смысл"? Можно и тот и тот применять. Вряд ли CRC32 будет намного эффективнее при 2^17 битах. Но для переносимости кода лучше использоваться ЦРЦ32.
.
Имел ввиду использование менее затратного в вычислительном плане способа контроля целостности памяти программ в МК с размером флэша не более 16K.

Цитата:
Сообщение от tester Посмотреть сообщение
Если это просто ЦРЦ (т.е. исключительно для проверки, без коррекции), то црц8 достаточно (если это конечно именно ЦРЦ, а не арифметическая сумма или xor).
Исключительно тока для контроля целостности пакета. Если целостность нарушена (нет ответного пакета с подтверждением от бутлоудера), то повторная передача со стороны ПК.
Timik вне форума   Ответить с цитированием
Старый 27.08.2010, 21:57   #70
Fry__
Senior Member
 
Регистрация: 06.01.2010
Сообщений: 456
Вес репутации: 759/47
Fry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to behold
По умолчанию Re: Самодиагностика PIC'ов

2 DL36: calcCrc32 обновляет файл crc32.h из своих ресурсов.
Хотел изменить возвращаемый тип на signed char (привычка), определения свои поставить - нет возможности...
Исправится ли в будущем?
Fry__ вне форума   Ответить с цитированием
Старый 28.08.2010, 12:24   #71
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Fry__ Посмотреть сообщение
2 DL36: calcCrc32 обновляет файл crc32.h из своих ресурсов.
Хотел изменить возвращаемый тип на signed char (привычка), определения свои поставить - нет возможности...
Исправится ли в будущем?
Специально для Вас сделал хотя возвращенный тип и без знаковый. Позже сделаю возможность выбора.
И поправил ошибку файла crc связанную с формированием параметров командной строки.
Код:
CommandLine= -o C:\#Work\#Project\Project58\Cod\PICC18\Release\TestCrc.crc -e -q
Вложения
Тип файла: rar calcCrc32 1.0.0.48a.rar (111.1 Кб, 8 просмотров)
DL36 вне форума   Ответить с цитированием
Старый 28.08.2010, 17:27   #72
Fry__
Senior Member
 
Регистрация: 06.01.2010
Сообщений: 456
Вес репутации: 759/47
Fry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to behold
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от DL36 Посмотреть сообщение
Специально для Вас сделал хотя возвращенный тип и без знаковый. Позже сделаю возможность выбора.
Отлично. Спасибо.
Файл .crc стал более читаем - включаю его в состав проекта.

Но я имею некоторые проблемы c calcCRC32, использую ее для старого проекта под C18 (PIC18F2550).

При сборке в окне MPLAB Build:
Цитата:
Crc32Addr = 0x4F00 Crc32 =0x38CF5E11
Crc32 for Rom = 0x5856AE19
Configuration Bits = 23 0E 28 1E 00 82 00 00 0F 00 0F 20 0F 00
На самом деле конфиг из .hex другой:
23 0E 28 1E 00 82 80 00 0F C0 0F E0 0F 40
Цитата:
:020000040030CA
:0100000023DC
:010001000EF0
:0100020028D5
:010003001EDE
:010005008278
:010006008079
:010008000FE8
:01000900C036
:01000A000FE6
:01000B00E014
:01000C000FE4
:01000D0040B2
:00000001FF
В результате я могу использовать только _CRC_32_FOR_ROM_ (хотел сам просить об этом определении в хедере - опоздал) - она сходится по симулятору, Crc32 нет. Маска конфига верная...
У себя я кажется все проверил...
Fry__ вне форума   Ответить с цитированием
Старый 28.08.2010, 19:35   #73
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от Fry__ Посмотреть сообщение
В результате я могу использовать только _CRC_32_FOR_ROM_ (хотел сам просить об этом определении в хедере - опоздал) - она сходится по симулятору, Crc32 нет. Маска конфига верная...
У себя я кажется все проверил...
Если можешь пришли хекс на почту, посмотрю сегодня.
А какой компилятор так хекс строит?
DL36 вне форума   Ответить с цитированием
Старый 28.08.2010, 20:45   #74
Fry__
Senior Member
 
Регистрация: 06.01.2010
Сообщений: 456
Вес репутации: 759/47
Fry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to beholdFry__ is a splendid one to behold
По умолчанию Re: Самодиагностика PIC'ов

Цитата:
Сообщение от DL36 Посмотреть сообщение
А какой компилятор так хекс строит?
C18: mcc18 v3.30, mplink v4.30.01, HEX Format по дефолту: INHX32.
Fry__ вне форума   Ответить с цитированием
Старый 28.08.2010, 22:10   #75
DL36
Senior Member
 
Регистрация: 25.02.2007
Адрес: Херсон
Сообщений: 3,642
Вес репутации: 1983/102
DL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant futureDL36 has a brilliant future
По умолчанию Re: Самодиагностика PIC'ов

Проблему понял, сейчас качну ДШ и буду разбираться
DL36 вне форума   Ответить с цитированием
Ответ

Метки
контроль прошивки


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39


Часовой пояс GMT +3, время: 06:49.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot