Easyelectronics.ru

Электроника для всех
Текущее время: 20 июл 2018, 17:39

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: STM8 IAR... нюансы
СообщениеДобавлено: 03 фев 2017, 14:12 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2128
Откуда: Нальчик
Написал свой криптозагрузчик... сделал все красиво, с индикацией на дисплее режима ожидания, индикацией процесса загрузки, для этого использовал несколько прерываний...
НО в конце с удивлением обнаружил, что таблица векторов прерываний в STM8 намертво прибита к начальному адресу флэша... я то дума что просто переопределю поле векторов на адрес загруженной прошивки и все... но не тут то было...

Пришлось убрать все прерывания, чтобы в векторах разместить переадресацию на поле векторов загружаемой прошивки.
Вроде без прерываний по минимуму реализовал те же функции, но в итоге опять уперся в вопрос как именно заменить адреса переходов в поле векторов загрузчика.
Порылся в интернете, вроде в сети есть несколько примеров реализации загрузчиков, но там либо какой то нестандартный способ размещения загрузчика, например вверху флэша, либо не IAR а RAISONANSE, и т.д.

Думаю - ну пока не разобрался как это сделать красиво, силами компилятора - попробовал реализовать нестандартно...
Первым делом решил что загрузчик сам может переписать адреса в своей таблице векторов при первом старте, а уже потом закрыть доступ к записи в UBC... но почему то у меня это не получилось... в отладчике вижу как команды отрабатываются но почему то запись в поле векторов не происходит... хотя тот же код пользовательскую прошивку нормально пишет... при этом, при первом старте защита UBC отключена, она программно должна активироваться только после перезаписи адресов в векторном пространстве... в общем не получилось таким способом...

Пока что решил так - открываю HEX загрузчика в STVP и вручную меняю адреса векторов (кроме первого) на адреса соответствующих векторов пользовательской программы )))))))))))))

В общем вопрос такой, как это просто и красиво сделать в IAR-е.
Т.е. нужно вместо адресов векторов рассчитываемых компилятором, прописать статические адреса вручную?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 IAR... нюансы
СообщениеДобавлено: 03 фев 2017, 18:21 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4783
http://www.st.com/content/ccc/resource/ ... 176595.pdf

http://angel5a.narod.ru/stm8/boot1.html

http://we.easyelectronics.ru/STM8/bootl ... zduhu.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 IAR... нюансы
СообщениеДобавлено: 03 фев 2017, 21:21 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2128
Откуда: Нальчик
Спасибо конечно, за столь широкий выбор материала, но если вас не затруднит, ткните меня носом в том месте где там говорится о том, как можно 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
Как я уже сказал, пока что заменяю вручную, что конечно в наш 21 век не очень солидно )
Как вариант, загрузчик сам может поменять таблицу при первом запуске, но я пока не разобрался почему у меня этот вариант не сработал (...


ЗЫ
Сразу оговорюсь, вариант от Den1s, когда нужно заливать за один раз обе (пользовательскую и бут) прошивки мне не подходит...

Вариант от Angel5a тоже, там бут висит вверху и не защищен от перезаписи...

В AN2659 я вообще слова IAR не нашел... (хотя нет... извиняюсь... ctrl+f выделил эти три буквы в составе слова "subsidiaries")...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 IAR... нюансы
СообщениеДобавлено: 04 фев 2017, 00:01 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4783
А по образу и подобию телодвижений в COSMIC, из официального pdf?
Еще инфа - https://github.com/Zepan/hairBoot

И IAR не лучший выбор для STM8...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 IAR... нюансы
СообщениеДобавлено: 04 фев 2017, 01:00 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2128
Откуда: Нальчик
dosikus_2 писал(а):
А по образу и подобию телодвижений в COSMIC, из официального pdf?
Не охота рыться во внутренностях IAR-а, по системным файлам проекта пробежался, нигде вроде не нашел описания векторной таблицы, ну и .....
проще все таки разобраться почему сам контроллер не пишет в таблицу, там один цикл то добавить и все...


dosikus_2 писал(а):
Ха... весело)
Этот дядя как я понял тоже вручную меняет таблицу...
Цитата:
1. Install IAR for stm8, add xxx\IAR Systems\Embedded workbench 6.5\stm8\bin to Environment var Path
2. Run make.bat to get bin, run out2hex to get hex
3. fix all interrupt vectors except the vecter 0. change vector n to 0x82008200 + 4*n, eg vector 1: 82008204
4. finished! you get the bin/hex/out now~


dosikus_2 писал(а):
И IAR не лучший выбор для STM8...
Ну уж времени нет все на свете попробовать... что попало под руку, с тем и мучаемся...
В принципе до сих все устраивало... правда редактор там - жуть... редактирую пока в pn, а остальное в оболочке...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 IAR... нюансы
СообщениеДобавлено: 04 фев 2017, 16:37 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2128
Откуда: Нальчик
ShadS писал(а):
решил что загрузчик сам может переписать адреса в своей таблице векторов при первом старте, а уже потом закрыть доступ к записи в UBC... но почему то у меня это не получилось... в отладчике вижу как команды отрабатываются но почему то запись в поле векторов не происходит... хотя тот же код пользовательскую прошивку нормально пишет... при этом, при первом старте защита UBC отключена, она программно должна активироваться только после перезаписи адресов в векторном пространстве... в общем не получилось таким способом...
Вроде напал на след... Тут описал...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB