-
- Делаю по второму варианту. LPC, SAM7. Работает без нареканий. Сергей Борщ(1289 знак., 16.11.2007 19:37)
- Сергей, и еще в тему вопрос. После установки границ сегмента INTVEC 0x00001000...0x0000103f (у меня LPC). Возникает ошибка проверки диапазонов. Argon(601 знак., 16.11.2007 23:06)
- Уточнение: это у меня было в связи с прямым назначением сегмента INTVEC в "неродные" адреса. Сделал как в Вашем варианте, с копированием сегментов, предупреждения пропали. Но возникли еще вопросы. Argon(1370 знак., 17.11.2007 15:12)
- Я прошиваю в два этапа. И имею два отдельных проекта - загрузчика и приложения. Это позволяет модифицировать их независимо. Вам, например, надо для всех функций загрузчика указывать принудительное их размещение в BLCODE, а у меня в скрипте линкера для Сергей Борщ(1898 знак., 17.11.2007 18:12)
- Ага, спасибо! Про -QINTVEC еще раз: все же это копирование, или точнее сказать, дублирование, т.к. в обоих сегментах INTVEC и INTVEC_I после прошивки содержатся одинаковые данные. Argon(541 знак., 17.11.2007 18:33)
- Нет, это не копирование. В этом вашем примере MYSEG_I находится в ОЗУ, а MYSEG_ID - во флеш. Точно так же размещаются функции в ОЗУ - они хранятся во флеш, потом переписываются в ОЗУ, но никому нет никакого дела до того, где они лежали - интересует Сергей Борщ(509 знак., 17.11.2007 20:11)
- сорри, на 0 адрес не первого сектора, конечно, а таблицы векторов. А передача управления приложению произойдет по __program_start() после ремапа автоматически. Правильно? - Argon(17.11.2007 19:13)
- Да, совершенно верно. - Сергей Борщ(17.11.2007 20:09)
- Ага, спасибо! Про -QINTVEC еще раз: все же это копирование, или точнее сказать, дублирование, т.к. в обоих сегментах INTVEC и INTVEC_I после прошивки содержатся одинаковые данные. Argon(541 знак., 17.11.2007 18:33)
- Я прошиваю в два этапа. И имею два отдельных проекта - загрузчика и приложения. Это позволяет модифицировать их независимо. Вам, например, надо для всех функций загрузчика указывать принудительное их размещение в BLCODE, а у меня в скрипте линкера для Сергей Борщ(1898 знак., 17.11.2007 18:12)
- Уточнение: это у меня было в связи с прямым назначением сегмента INTVEC в "неродные" адреса. Сделал как в Вашем варианте, с копированием сегментов, предупреждения пропали. Но возникли еще вопросы. Argon(1370 знак., 17.11.2007 15:12)
- Редко такое говорю, но... гениально... Разместить сегмент векторов не в 0-м а в 1-м секторе! Я-то собирался генерировать таблицу на основе "плавающих по памяти от прошивки к прошивке" адресов, а здесь такое простое решение! Супер! Спасибо! - Argon(16.11.2007 21:51)
- Сергей, и еще в тему вопрос. После установки границ сегмента INTVEC 0x00001000...0x0000103f (у меня LPC). Возникает ошибка проверки диапазонов. Argon(601 знак., 16.11.2007 23:06)
- 1-й вариант вообще не понял. Каким макаром загруженный код будет юзать осевые и остальные ISR'ы? Во 2-м не вижу уязвимости. Делал такое для LPC2134. - Алексей Мусин(16.11.2007 13:59)
- Делаю по второму варианту. LPC, SAM7. Работает без нареканий. Сергей Борщ(1289 знак., 16.11.2007 19:37)