реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Сигнатура LPC
zltigo
сообщение Jan 14 2007, 15:34
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(makc @ Jan 14 2007, 14:11) *
ничего плохого не случится до тех пор, пока ассемблер не изменит свой алгоритм работы и, соответственно

Ассемблер не сможет ничего "изменить" и сгенерить более короткй/длинный код, если он конечно он для ARM smile.gif. Для маньяков - никто не мешает нафаршировать код ORG-ами перед каждой из первых 16 команд smile.gif, а не только QRG 0 перед первой.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
makc
сообщение Jan 14 2007, 15:39
Сообщение #17


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(zltigo @ Jan 14 2007, 15:34) *
Цитата(makc @ Jan 14 2007, 14:11) *

ничего плохого не случится до тех пор, пока ассемблер не изменит свой алгоритм работы и, соответственно

Ассемблер не сможет ничего "изменить" и сгенерить более короткй/длинный код, если он конечно он для ARM smile.gif . Для маньяков - никто не мешает нафаршировать код ORG-ами перед каждой из первых 16 команд smile.gif , а не только QRG 0 перед первой.


Это все понятно. Я просто попытался описать гипотетическую ситуацию, при которой может нарушиться установленный сейчас порядок вещей. smile.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jan 14 2007, 16:00
Сообщение #18


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Тогда разъясните плиз по синтаксису (приведенного выше стартапа).
После загрузки РС (хотя выражение "#reset_handler_address - . - 8" выглядит как-то странно), в РС снова должен грузится адрес, а вместо этого:
reset_handler_address:
.word reset_handler
Это как ...?


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Alex03
сообщение Jan 14 2007, 16:30
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(3.14 @ Jan 14 2007, 18:00) *
Тогда разъясните плиз по синтаксису (приведенного выше стартапа).
После загрузки РС (хотя выражение "#reset_handler_address - . - 8" выглядит как-то странно), в РС снова должен грузится адрес, а вместо этого:
reset_handler_address:
.word reset_handler
Это как ...?

Код
_vectors:
  ldr pc, [pc, #reset_handler_address - . - 8]  /* reset */

Тут #reset_handler_address это адрес переменной (константы) в которой лежит адрес настоящего обработчика.
"." это адрес текущей инструкции.
"-8" - особенности АРМ архитектуры, где, скажем так, PC указывает не на текущую исполняемую команду, а на голову конвеера, которая уже убежала вперёд. (поправьте если я не так выразился smile.gif )
Кстати этого момента я не очень понял, не уж то так сложно им было расширить корвеер 32-х битным регистром для PC на каждой стадии. smile.gif

В LPC контольная сумма считается только для первых 8-ми слов.
Т.е. из приведённого примера от
Код
  ldr pc, [pc, #reset_handler_address - . - 8]  /* reset */

до
Код
  ldr pc, [pc, #fiq_handler_address - . - 8]    /* fiq handler */

поэтому изменение "указателей" на обработчики (при их перемещении линкером)
Код
  .word reset_handler
  .word undef_handler
  .word swi_handler
  .word pabort_handler
  .word dabort_handler
  .word fiq_handler

Никак не влияет на контрольную сумму.

Ну а
Код
ldr pc, [pc, #-0xFF0]                         /* irq handler */

Это сразу загрузка из VICVectAddr
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 14 2007, 16:55
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Alex03 @ Jan 14 2007, 15:30) *
Ну а
Код
ldr pc, [pc, #-0xFF0]                         /* irq handler */

Это сразу загрузка из VICVectAddr

Дополнительные разъяснения:
VICVectAddr = 0xFFFFF030
Текущий PC 18h +8 конвеер поминаемый ранее. Вычитаем 0xFF0 получаем желанный
0xFFFFF030.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
amw
сообщение Jan 15 2007, 16:01
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(3.14 @ Jan 12 2007, 22:42) *
Именно та что по 0х14 адресу ставится, не поделитесь своей тулзой.

В составе самописного программатора.
_hттp://projects.org.ua/project/amw/arm/lpcflash-0.2.0.tar.gz

Сообщение отредактировал amw - Jan 15 2007, 16:01


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jan 15 2007, 17:35
Сообщение #22


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Кстати, в подробности не вдавался, но HEX-ы IAR-а уже имеют правильную сигнатуру, хотя к его стартапу я не прикасался.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 15 2007, 18:00
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(3.14 @ Jan 15 2007, 16:35) *
Кстати, в подробности не вдавался, но HEX-ы IAR-а уже имеют правильную сигнатуру, хотя к его стартапу я не прикасался.

Незнаю не знаю - при заливке IARовских HEX своим программатором неизменно получаю уведомление о том, что контрольная сумма была посчитана, не совпала и была заменена.....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016