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

 
 
> Адрес функции
Vadim.Dyachuk
сообщение Oct 24 2013, 08:46
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Доброго времени суток!

Как можно узнать адрес определенной процедуры или функции которая находится в Boot Section?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vadim.Dyachuk
сообщение Oct 24 2013, 10:00
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 9-10-13
Пользователь №: 78 662



Извините за неполное формулирование предложения.

Я хочу в основной программе (которая находится а AppSection) вызвать процедуру которая находится в BootLoader'е. Но для этого мне нужно знать адрес этой процедуры. Поскольку я пишу программу в IAR EW то его компилятор не дает нормального .map-файла, и по этому я решил спросить у Вас, как можно определить этот адрес программно или хотя бы вручную (увидеть своими глазами).
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 24 2013, 10:21
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Vadim.Dyachuk @ Oct 24 2013, 13:00) *
Извините за неполное формулирование предложения.

Я хочу в основной программе (которая находится а AppSection) вызвать процедуру которая находится в BootLoader'е. Но для этого мне нужно знать адрес этой процедуры.
Теперь понятно. Но если делать так, как вы хотите - это будет работать до того момента, как вы захотите что-то поменять (исправить) в BootLoader`е и адрес этой функции "уплывет".

QUOTE (Vadim.Dyachuk @ Oct 24 2013, 13:00) *
Поскольку я пишу программу в IAR EW то его компилятор не дает нормального .map-файла,
Неправда, ой неправда... Либо вы не включили его генерацию, либо не разобрались в его содержимом. Вот отрывок из моего очень-очень старого проекта:
CODE
################################################################################
#                                                                              #
#      IAR Universal Linker V4.53O/WIN                                         #
#                                                                              #
#           Link time     =  18/May/2005  13:09:41                             #
.........
CODE
  Relative segment, address: CODE 00000506 - 00000527 (22 bytes), align: 1
  Segment part 28.
           ENTRY                   ADDRESS         REF BY
           =====                   =======         ======
           main                    00000506        ?cstartup_call_main (?C_STARTUP)


QUOTE (Vadim.Dyachuk @ Oct 24 2013, 13:00) *
и поэтому я решил спросить у Вас, как можно определить этот адрес программно или хотя бы вручную (увидеть своими глазами).
Вот теперь вопрос понятнен. Посмотрите ответ на аналогичный вопрос тут и тут. Там описана идея. Вам останется просто переложить ее на ваш компилятор. Увы, с IARом давно не работаю, поэтому дать готовое решение для вашего случая не могу.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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