Ответте, пожалуйста на следующие вопросы:
1. Какой режим загрузки процессора выбран железно пинами (он не меняется!!!) и, соответственно, с каких адресов стартует процессор при включении питания?
2. Что делает OTP загрузчик после загрузки загрузчика второго уровня в RAM? Каждый ли раз при включении питания происходит загрузка загрузчика второго уровня в RAM?
3. Что делает загрузчик второго уровня после записи прошивки во флэш-память? Каждый ли раз при включении питания происходит загрузка прошивки и её запись во флэш?
Цитата(PrSt @ May 31 2014, 20:50)

Щас вопрос не про загрузку. Там я уже разобрался давно. Тут вопрос про то если этот код загружен уже в ОЗУ и из него произвидится запись в флеш, тоесть мне прилетает стрим и я его должен записать, потом перегрузиться и должно работать с новой прошивкой.
Тут и нужно понимать алгоритм запуска, всю последовательность передачи управления (из Вашего описания не совсем понятно), иначе ничего не должно работать, вобщем ответте на вопросы, а там дальше посмотрим.
Цитата(PrSt @ May 31 2014, 20:50)

на данном этапе, в вопросе это по идее и не важно, исходим из того что программа уже в работе...
Программа в работе, если процессор перешёл на адрес выполнения программы, тут-то у Вас, по-идее, и проблема.
Цитата(PrSt @ May 31 2014, 20:50)

Да все стандартно, линкуются секции
codestart .initboot .text cinit, .pinit ... итд.
юзается библиотека rts2800_ml.lib которая предоставляет точку входа _c_int00 и она уже вызывает main()
Классика.
Классика, это когда выбран режим загрузки с флэша, вы кладёте прошивку по нужным адресам флэша и при включении питания она стартует. У Вас же несколько этапов загрузки, так что рассказывайте всё по-порядку.