|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
STM8 IAR... нюансы02.02.2017, 13:25. Показов 3587. Ответов 5
Метки нет (Все метки)
Написал свой криптозагрузчик... сделал все красиво, с индикацией на дисплее режима ожидания, индикацией процесса загрузки, для этого использовал несколько прерываний...
НО в конце с удивлением обнаружил, что таблица векторов прерываний в STM8 намертво прибита к начальному адресу флэша... я то дума что просто переопределю поле векторов на адрес загруженной прошивки и все... но не тут то было... Пришлось убрать все прерывания, чтобы в векторах разместить переадресацию на поле векторов загружаемой прошивки. Вроде без прерываний по минимуму реализовал те же функции, но в итоге опять уперся в вопрос как именно заменить адреса переходов в поле векторов загрузчика. Порылся в интернете, вроде в сети есть несколько примеров реализации загрузчиков, но там либо какой то нестандартный способ размещения загрузчика, например вверху флэша, либо не IAR а RAISONANSE, и т.д. Думаю - ну пока не разобрался как это сделать красиво, силами компилятора - попробовал реализовать нестандартно... Первым делом решил что загрузчик сам может переписать адреса в своей таблице векторов при первом старте, а уже потом закрыть доступ к записи в UBC... но почему то у меня это не получилось... в отладчике вижу как команды отрабатываются но почему то запись в поле векторов не происходит... хотя тот же код пользовательскую прошивку нормально пишет... при этом, при первом старте защита UBC отключена, она программно должна активироваться только после перезаписи адресов в векторном пространстве... в общем не получилось таким способом... Пока что решил так - открываю HEX загрузчика в STVP и вручную меняю адреса векторов (кроме первого) на адреса соответствующих векторов пользовательской программы ))))))))))))) В общем вопрос такой, как это просто и красиво сделать в IAR-е. Т.е. нужно вместо адресов векторов рассчитываемых компилятором, прописать статические адреса вручную?
0
|
|
| 02.02.2017, 13:25 | |
|
Ответы с готовыми решениями:
5
кто сделает экспорт SDCC STM8 -> IAR STM8 ? IAR for STM8 V2.10 IAR, STM8, C++, Наследование |
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 02.02.2017, 17:34 | |
|
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,010
|
||||||
| 02.02.2017, 20:34 | ||||||
|
Спасибо конечно, за столь широкий выбор материала, но если вас не затруднит, ткните меня носом в том месте где там говорится о том, как можно IAR-а попросить поставить в таблице вместо рассчитанных им векторов прерываний - нужные мне значения...
Может я не совсем правильно изложил, чего именно я хочу добиться... проще так... при компиляции загрузчика (не пользовательской программы) нужно чтобы первые 128 байт кекса (кроме первых 4 байт) были конкретно вот такими:
Как вариант, загрузчик сам может поменять таблицу при первом запуске, но я пока не разобрался почему у меня этот вариант не сработал (... ЗЫ Сразу оговорюсь, вариант от Den1s, когда нужно заливать за один раз обе (пользовательскую и бут) прошивки мне не подходит... Вариант от Omkit5o тоже, там бут висит вверху и не защищен от перезаписи... В AN2659 я вообще слова IAR не нашел... (хотя нет... извиняюсь... ctrl+f выделил эти три буквы в составе слова "subsidiaries")...
0
|
||||||
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
| 02.02.2017, 23:14 | |
|
А по образу и подобию телодвижений в COSMIC, из официального pdf?
Еще инфа - https://github.com/Zepan/hairBoot И IAR не лучший выбор для STM8...
0
|
|
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|||||
| 03.02.2017, 00:13 | |||||
проще все таки разобраться почему сам контроллер не пишет в таблицу, там один цикл то добавить и все...
Этот дядя как я понял тоже вручную меняет таблицу...
В принципе до сих все устраивало... правда редактор там - жуть... редактирую пока в pn, а остальное в оболочке...
0
|
|||||
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
||
| 03.02.2017, 15:50 | ||
0
|
||
| 03.02.2017, 15:50 | |
|
Помогаю со студенческими работами здесь
6
Новый IAR для STM8 IAR for STM8 - license out of date Начало файла проекта STM8 IAR IAR for stm8 под windows8.1x64 IAR(1.30.2) - Не получается прошить в stm8-discovery Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|