Возникла необходимость кусок кода, а точнее функцию, выделить в отдельную, не занятую область. С этим разобрался. Функция в отдельном файле test_file.c
Код
__attribute__((section(".ARM.__at_0x08012B00"))) float test(float t1, float t2, float t3)
{
return (t1 * t2 + 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
:102AF00000000000000000000000000000000000D6
:102B00002DE9F04105460E46144631462846FDF7AC
:102B10007DF907462146FDF7A3F8BDE8F0810000E6
:102B200000000000000000000000000000000000A5
:102B30000000000000000000000000000000000095
но при изменении кода, никак не касающегося этой функции! имею, что в этом куске hex происходят изменения во второй строке
Код
:102AE00000000000000000000000000000000000E6
:102AF00000000000000000000000000000000000D6
:102B00002DE9F04105460E46144631462846FDF7AC
:102B100039F907462146FDF75FF8BDE8F08100006E
:102B200000000000000000000000000000000000A5
:102B30000000000000000000000000000000000095
:102AF00000000000000000000000000000000000D6
:102B00002DE9F04105460E46144631462846FDF7AC
:102B100039F907462146FDF75FF8BDE8F08100006E
:102B200000000000000000000000000000000000A5
:102B30000000000000000000000000000000000095
не могу понять почему?
Задача, выделить эту функцию, посчитать ее CRC, и чтобы это CRC не менялось при изменении остальной части программы.