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

 
 
 
Reply to this topicStart new topic
> Подсчет CRC части кода программы
Kacman
сообщение Apr 2 2012, 11:51
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 25-09-06
Из: Пенза
Пользователь №: 20 653



Дано:
IAR AVR ATMEGA328P

Задача:
Есть программа одна из функция которой не подлежит изменению и должна быть закрыта CRC.
Размещаем эту функцию в отдельном сегменте. Никаких вызовов других функций из данной нет.

Проблема.
При изменение остального кода программы меняется CRC данной функции, поскольку компилятор плодит несколько
подпрограмм, размещаемых где придется, и вызывает их из этой функции.

Есть ли какие либо мысли как с этим бороться?

Сообщение отредактировал Kacman - Apr 2 2012, 11:53
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 2 2012, 12:28
Сообщение #2


Гуру
******

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



Если хочется, чтобы кусок кода, выполняющий определённую функцию, не менялся при изменении остального кода, то нужно этот кусок оформить в виде отдельного проекта. Связь с остальным кодом сделать через какой-нибудь доморощенный ABI.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 2 2012, 18:34
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Kacman @ Apr 2 2012, 14:51) *
Проблема.
При изменение остального кода программы меняется CRC данной функции, поскольку компилятор плодит несколько
подпрограмм, размещаемых где придется, и вызывает их из этой функции.

Есть ли какие либо мысли как с этим бороться?

В первую очередь нужно перестать обманывать себя - если закрытая(защищенная) функция вызывает другие, незащищенные функции, то как она может быть закрыта? wink.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Kacman
сообщение Apr 3 2012, 05:55
Сообщение #4





Группа: Участник
Сообщений: 5
Регистрация: 25-09-06
Из: Пенза
Пользователь №: 20 653



Цитата(Dog Pawlowa @ Apr 2 2012, 22:34) *
В первую очередь нужно перестать обманывать себя - если закрытая(защищенная) функция вызывает другие, незащищенные функции, то как она может быть закрыта? wink.gif


Сама по себе эта функция ничего не вызывает. Компилятор сам создает свои собственные подпрограммы и помещает их за пределами данного сегмента.
Хотелось бы этого избежать. Например разместить их в том же сегменте.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 3 2012, 09:06
Сообщение #5


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Kacman @ Apr 3 2012, 09:55) *
Сама по себе эта функция ничего не вызывает. Компилятор сам создает свои собственные подпрограммы и помещает их за пределами данного сегмента.
Хотелось бы этого избежать. Например разместить их в том же сегменте.

Не поможет. Потом выйдет следующая версия компилятора и опять что-нибудь обязательно изменится.
ИМХО тут один лишь путь сбилдить один раз, как уже советовали, в отдельном проекте либу или объектник и линковать ко всем остальным проектам.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 3 2012, 09:44
Сообщение #6


Гуру
******

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



Цитата(demiurg_spb @ Apr 3 2012, 13:06) *
ИМХО тут один лишь путь сбилдить один раз, как уже советовали, в отдельном проекте либу или объектник и линковать ко всем остальным проектам.

Формат объектных файлов тоже может измениться в новой версии. Поэтому я и заговорил про ABI.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 3 2012, 11:18
Сообщение #7


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



согласен.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st August 2025 - 19:48
Рейтинг@Mail.ru


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