1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
|
|
1 | |
STM8 IAR... нюансы02.02.2017, 13:25. Просмотров 2986. Ответов 5
Метки нет Все метки)
(
Написал свой криптозагрузчик... сделал все красиво, с индикацией на дисплее режима ожидания, индикацией процесса загрузки, для этого использовал несколько прерываний...
НО в конце с удивлением обнаружил, что таблица векторов прерываний в STM8 намертво прибита к начальному адресу флэша... я то дума что просто переопределю поле векторов на адрес загруженной прошивки и все... но не тут то было... Пришлось убрать все прерывания, чтобы в векторах разместить переадресацию на поле векторов загружаемой прошивки. Вроде без прерываний по минимуму реализовал те же функции, но в итоге опять уперся в вопрос как именно заменить адреса переходов в поле векторов загрузчика. Порылся в интернете, вроде в сети есть несколько примеров реализации загрузчиков, но там либо какой то нестандартный способ размещения загрузчика, например вверху флэша, либо не IAR а RAISONANSE, и т.д. Думаю - ну пока не разобрался как это сделать красиво, силами компилятора - попробовал реализовать нестандартно... Первым делом решил что загрузчик сам может переписать адреса в своей таблице векторов при первом старте, а уже потом закрыть доступ к записи в UBC... но почему то у меня это не получилось... в отладчике вижу как команды отрабатываются но почему то запись в поле векторов не происходит... хотя тот же код пользовательскую прошивку нормально пишет... при этом, при первом старте защита UBC отключена, она программно должна активироваться только после перезаписи адресов в векторном пространстве... в общем не получилось таким способом... Пока что решил так - открываю HEX загрузчика в STVP и вручную меняю адреса векторов (кроме первого) на адреса соответствующих векторов пользовательской программы ))))))))))))) В общем вопрос такой, как это просто и красиво сделать в IAR-е. Т.е. нужно вместо адресов векторов рассчитываемых компилятором, прописать статические адреса вручную?
0
|
|
02.02.2017, 13:25 | |
кто сделает экспорт SDCC STM8 -> IAR STM8 ? IAR for STM8 V2.10 IAR, STM8, C++, Наследование IAR for STM8 - license out of date |
|
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
|
|
02.02.2017, 17:34 | 2 |
http://www.st.com/content/ccc/resource/ ... 176595.pdf
http://omkit5a.narod.ru/stm8/boot1.html http://we.iosyitistromyss.ru/STM8/bootl ... zduhu.html
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
|
|
02.02.2017, 20:34 | 3 |
Спасибо конечно, за столь широкий выбор материала, но если вас не затруднит, ткните меня носом в том месте где там говорится о том, как можно IAR-а попросить поставить в таблице вместо рассчитанных им векторов прерываний - нужные мне значения...
Может я не совсем правильно изложил, чего именно я хочу добиться... проще так... при компиляции загрузчика (не пользовательской программы) нужно чтобы первые 128 байт кекса (кроме первых 4 байт) были конкретно вот такими: Код
00008000 xx xx xx xx 82 00 88 04 82 00 88 08 82 00 88 0C 00008010 82 00 88 10 82 00 88 14 82 00 88 18 82 00 88 1C 00008020 82 00 88 20 82 00 88 24 82 00 88 28 82 00 88 2C 00008030 82 00 88 30 82 00 88 34 82 00 88 38 82 00 88 3C 00008040 82 00 88 40 82 00 88 44 82 00 88 48 82 00 88 4C 00008050 82 00 88 50 82 00 88 54 82 00 88 58 82 00 88 5C 00008060 82 00 88 60 82 00 88 64 82 00 88 68 82 00 88 6C 00008070 82 00 88 70 82 00 88 74 82 00 88 78 82 00 88 7C Как вариант, загрузчик сам может поменять таблицу при первом запуске, но я пока не разобрался почему у меня этот вариант не сработал (... ЗЫ Сразу оговорюсь, вариант от Den1s, когда нужно заливать за один раз обе (пользовательскую и бут) прошивки мне не подходит... Вариант от Omkit5o тоже, там бут висит вверху и не защищен от перезаписи... В AN2659 я вообще слова IAR не нашел... (хотя нет... извиняюсь... ctrl+f выделил эти три буквы в составе слова "subsidiaries")...
0
|
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
|
|
02.02.2017, 23:14 | 4 |
А по образу и подобию телодвижений в COSMIC, из официального pdf?
Еще инфа - https://github.com/Zepan/hairBoot И IAR не лучший выбор для STM8...
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
|
|
03.02.2017, 00:13 | 5 |
![]() проще все таки разобраться почему сам контроллер не пишет в таблицу, там один цикл то добавить и все... ![]() Этот дядя как я понял тоже вручную меняет таблицу... ![]() В принципе до сих все устраивало... правда редактор там - жуть... редактирую пока в pn, а остальное в оболочке...
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,011
|
|
03.02.2017, 15:50 | 6 |
![]()
0
|
03.02.2017, 15:50 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Новый IAR для STM8 IAR(1.30.2) - Не получается прошить в stm8-discovery Начало файла проекта STM8 IAR Загрузчик под IAR для STM8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |