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

 
 
> Генерация HEX в Keil, Не пойму, как генерируется HEX в Keil
Booger
сообщение Feb 19 2016, 13:08
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 2-07-15
Пользователь №: 87 377



Добрый день!
Возникла необходимость кусок кода, а точнее функцию, выделить в отдельную, не занятую область. С этим разобрался. Функция в отдельном файле test_file.c

Код
__attribute__((section(".ARM.__at_0x08012B00"))) float test(float t1, float t2, float t3)  
{
    return (t1 * t2 + t3);    
}

всё хорошо, область не занятая
вот выписки из map файла
сама функция (кстати, не пойму почему адрес 0x08012b01, а не 0x08012b00?)
Код
test(float, float, float)            0x08012b01   Thumb Code    30  metrologicalcalculation.o(.ARM.__at_0x08012B00)

секция
Код
.ARM.__at_0x08012B00                     0x08012b00   Section        0  test_file.o(.ARM.__at_0x08012B00)

генерируется hex, всё замечательно
Код
:102AE00000000000000000000000000000000000E6
:102AF00000000000000000000000000000000000D6
:102B00002DE9F04105460E46144631462846FDF7AC
:102B10007DF907462146FDF7A3F8BDE8F0810000E6
:102B200000000000000000000000000000000000A5
:102B30000000000000000000000000000000000095

но при изменении кода, никак не касающегося этой функции! имею, что в этом куске hex происходят изменения во второй строке
Код
:102AE00000000000000000000000000000000000E6
:102AF00000000000000000000000000000000000D6
:102B00002DE9F04105460E46144631462846FDF7AC
:102B100039F907462146FDF75FF8BDE8F08100006E
:102B200000000000000000000000000000000000A5
:102B30000000000000000000000000000000000095

не могу понять почему?
Задача, выделить эту функцию, посчитать ее CRC, и чтобы это CRC не менялось при изменении остальной части программы.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 20)
scifi
сообщение Feb 25 2016, 13:33
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Booger @ Feb 25 2016, 16:08) *
Еще раз говорю, в дизассемблере функция выглядит одинаково. Или не функцию нужно смотреть?

Ещё раз говорю, читайте то, что вам пишут. А то неприлично как-то получается.

Цитата(Kabdim @ Feb 20 2016, 12:27) *
Приведите листинг 1 и 2 варианта, только так что бы было видно хексы-асемблерная команда. Как могут быть дизасемблерованые команды быть полностью одинаковыми при разном бинарном наполнении. Это же не х86 в котором можно десяток байт только префиксов вставить.

Цитата(esaulenka @ Feb 20 2016, 12:35) *
Так это от уровня дизассемблера зависит. Если он развернёт команду "branch по адресу 0xabcd" в "branch в функцию def()", в дизассемблере, действительно "ничего не поменяется" :-)
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Feb 25 2016, 14:24
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(esaulenka @ Feb 20 2016, 12:35) *
Так это от уровня дизассемблера зависит. Если он развернёт команду "branch по адресу 0xabcd" в "branch в функцию def()", в дизассемблере, действительно "ничего не поменяется" :-)

Видимо мораль из этого - слишком хороший инструментарий мешает учиться. sm.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 26 2016, 06:12
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Kabdim @ Feb 25 2016, 17:24) *
Видимо мораль из этого - слишком хороший инструментарий мешает учиться. sm.gif

Нет, не так. Мораль такова: чукче нужно поменьше писать и побольше читать. laughing.gif
Go to the top of the page
 
+Quote Post
Booger
сообщение Feb 29 2016, 04:23
Сообщение #19





Группа: Участник
Сообщений: 8
Регистрация: 2-07-15
Пользователь №: 87 377



Прикрепленное изображение

Прикрепленное изображение


Вот скриншоты обоих вариантов.
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 29 2016, 05:45
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Booger @ Feb 29 2016, 07:23) *
Вот скриншоты обоих вариантов.

Ну и?
Там же всё очевидно и уже объяснено выше. В чём трудности?
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Feb 29 2016, 10:43
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Да и дизасм у вас не совпадает. Он вам в скобочках после асемблерной команды пишет адрес вызываемой функции, но вы эту информацию игнорируете.
Go to the top of the page
 
+Quote Post

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

 


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


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