[quote name='defunct' post='175102' date='Nov 13 2006, 03:58']
[quote name='goodwin' post='175100' date='Nov 13 2006, 03:46']
А вот насчет "У m8535 и у m16 разные таблицы векторов" - это как раз не проблема - таблицу с редиректом можно разместить в boot области/загрузчике... Проблема в другом - RJMP/RCALL...
Увы, относительная адресация фирмвари 8535 некорректно работает в меге16, если смещение отрицательное, при переходе через границу памяти

[/quote]
На мой взгляд RCALL/RJMP как раз не проблема, т.к. стандартная прошивка STK не выходит за границу 8k и работать должна. А не заработала как раз по причине того, что таблица векторов у M16 больше и как следствие затирает часть кода STK. Можно попробовать применить M32 с JTAG'овской прошивкой никаких вопросов, а STKшную попробовать залить начиная с адреса 16k, и пользовать с соответвующим редиректом. В функцию бутлоадера вставить возможность смены первой страницы флеш.
[/quote]
Пардон, что-то и-нет глючит. Пытался отредактировать сообщение, вообще половину съело...
Насчет векторов такой трюк:
Векторы размещаем в boot области (таблица вида : jmp 2, jmp 4, jmp 6...)
Фирмварь STK ничего не знает про IVCE, IVSEL, ибо писана для AT90S8535...
По идее должно работать... А вот с RJMP атмелевцы подкачали - зачем то прибавляют к смещению размер памяти кристалла - нет бы оставили +-2К...
С мегой32 думаю не прокатит тоже, ибо кроме относительной адресации скорее всего в прошиве есть еще таблицы во флэш... Правда можно попробовать ход конем - разместить два образа STK - с нулевого адреса и с адреса 16кБ. Меги32 под руками нет
[quote name='defunct' date='Nov 13 2006, 03:58' post='175102']
[quote name='goodwin' post='175100' date='Nov 13 2006, 03:46']
А вот насчет "У m8535 и у m16 разные таблицы векторов" - это как раз не проблема - таблицу с редиректом можно разместить в boot области/загрузчике... Проблема в другом - RJMP/RCALL...
Увы, относительная адресация фирмвари 8535 некорректно работает в меге16, если смещение отрицательное, при переходе через границу памяти

[/quote]
На мой взгляд RCALL/RJMP как раз не проблема, т.к. стандартная прошивка STK не выходит за границу 8k и работать должна. А не заработала как раз по причине того, что таблица векторов у M16 больше и как следствие затирает часть кода STK. Можно попробовать применить M32 с JTAG'овской прошивкой никаких вопросов, а STKшную попробовать
[quote name='defunct' date='Nov 13 2006, 03:58' post='175102']
[quote name='goodwin' post='175100' date='Nov 13 2006, 03:46']
А вот насчет "У m8535 и у m16 разные таблицы векторов" - это как раз не проблема - таблицу с редиректом можно разместить в boot области/загрузчике... Проблема в другом - RJMP/RCALL...
Увы, относительная адресация фирмвари 8535 некорректно работает в меге16, если смещение отрицательное, при переходе через границу памяти

[/quote]
На мой взгляд RCALL/RJMP как раз не проблема, т.к. стандартная прошивка STK не выходит за границу 8k и работать должна. А не заработала как раз по причине того, что таблица векторов у M16 больше и как следствие затирает часть кода STK. Можно попробовать применить M32 с JTAG'овской прошивкой никаких вопросов, а STKшную попробовать
Хотя нет - увы, это тоже не прокатит - прошивка STK использует wrap через границу памяти 4кБ. Переходы будут в никуда...
(извиняюсь за глюки спутникового и-нета...)