Цитата(Redaer @ Aug 15 2007, 17:38)

Можно ли с помощью иара залить во флешь процессора 2 разные программы переопределив в файлах at91SAM7S256_64KRAM.xlc и at91SAM7S256_NoRemap.xlc параметр -DROMSTART
Теоретически да, причем поскольку во флешь, то использовать второй из перечисленных файлов и не забыть, что память стирается страницами, чтобы при стирании памяти под одну программу не затереть часть другой.
Цитата(Redaer @ Aug 15 2007, 17:38)

Я так понимаю, при запуске АРМ начинает работать с нулевого адреса. Так?
Собсно, хочется из первой программки(бутлоадер своеобразные) прыгнуть на вторую(основную)... Можно ли это сделать посредством ассемблеровской вставки asm("B 0x2000")
Да, начинает с адреса 0. Не уверен, что команда "B" в асм-вставке поймет абсолютный адрес. Можно в .xcl первой программы определить символ, скажем -DApplication=0x2000, а в самой программе сделать extern void Application(); Application();
Цитата(Redaer @ Aug 15 2007, 17:38)

И ещё вопрос. При загрузке программы в АРМ посредством ИАРа какие-нть происходят действия с флеш (полностью ли она затирается или начиная с аддреса, обозначенного в xlc)?
Затираются только те страницы, в которые записываются данные. Т.е. если программа заняла 1К, то только этот 1К будет стерт, даже если в .xcl под программу отведено 100К.
Цитата(Redaer @ Aug 15 2007, 17:38)

Попробовал в бутлоадере сделать asm("B 0x2000"). Залил во флеш.
Потом в основной проге в обоих xcl изменяю -DROMSTART=0x00002000.
Это лишнее. Первый .xcl нужен только для отладки в RAM.
Цитата(Redaer @ Aug 15 2007, 17:38)

Пытаюсь залить во флеш через дебагер. Ну и дебагер у меня подвисает, т.е. как я понимаю, прыжка не происходит на адрес 0x2000 со стороны бутлоадера.
Сначала убедитесь, что асм-вставка действует именно так, как вы хотите. Пройдите это место в симуляторе и убедитесь, что переход происходит. Команда "B" подразумевает в качестве аргумента смещение относительно PC.
P.S. Надо было все же в отдельную тему писать - предыдущее обсуждение шло про AVR.