Цитата
вы создаете себе лишние трудности.
Есть такое. Но это в целях самообразования, хотя я стараюсь обычно далеко не соваться в "недокументированные особенности".
Цитата
А что, прошивка не проходит какое-то тестирование перед отправкой в производство?
Проходит, еще как, вот оттуда и выяснилось, хотя когда Вы посмотрите исходники, то увидите, что это не мешает загрузчику доделать свое дело до конца (при условии, что период watchdog'а находится в пределах нескольких секунд).
Цитата
А что мешает сделать несколько файлов линкера для разных кристаллов?
Они есть. Только неизвестно, что и как повернется потом.
Цитата
меня настораживает сама идея, что загрузчик может переписывать области, от которых зависит его собственная работа. Как к гадалке не ходите - у удаленного заказчика возникнет сбой питания в момент перезаписи и придется возвращать прибор к производителю вместо того, чтобы просто повторить апгрейд прошивки.
Так дело в том, что область переписывается только один раз - при первом запуске устройства, а происходит это на производстве. Последующие запуски сводятся к пропуску данного шага.
Цитата
Но что мешает один раз вызвать IAP, сохранить полученное значение и дальше пользовать его
Сохранить куда? Только во flash, в известное место в своем секторе, а это по сути то же самое. Уславливаться с разработчиком о выделенном месте в ОЗУ? Тогда мне проще оставить все как есть.
Цитата
В документации иного способа кроме IAP не описано, поэтому если вы и найдете какое-либо "левое" решение, никаких гарантий что оно будет работать на другом типе кристалла или даже на этом же процессоре другой партии.
Вы правы. Но я подумал, вдруг чего упустил или есть какие-нибудь косвенные методы определения применяемой flash?