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

 
 
> Глюк линкера в ewarm 4.31A (код в рам)
SpiritDance
сообщение Jul 3 2007, 06:30
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Исходные:
Есть маленький проектик в котором используются ассемблерные подпрограммы размещающиеся в сегменте CODE_I.
проблема:
В нужном месте вместо функций при помощи отладчика наблюдал мусор в RAM.
Проблема была устранена когда объявил одну из функций C как __ramfunc
причина:
У иара есть таблица в сегменте INITTAB, в нее записываются перерменные для функции __segment_init. Так вот, если в сишном коде не определяется ни одной функции в рам значения для сегмента CODE_I прибиваются, несмотря на то что в этом сегменте существуют вызывающиеся в сишном коде ассемблерные функции. Все это видно в map файле линкера.

Либо я что-то недопонимаю либо одно из двух. Проектитк прилагается, кому не влом проверьте на более старших версиях. будет ли проявлятся такое поведение

ЗЫ. Подобное поведение наблюдал в crossworks, но детально пока не изучал.
Прикрепленные файлы
Прикрепленный файл  blink_with_bootrom_iar.rar ( 89.89 килобайт ) Кол-во скачиваний: 36
 


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MALLOY2
сообщение Jul 3 2007, 09:43
Сообщение #2


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



может немного не в тему но есть директива __root которая может применятся как к переменным так и к функциям, а смысл ее в том что она заставляет компилятор оставить функцию или переменную даже если она нигде не используется. Тоесть если вы прменили эту дерективу к функции то эта функция 100% попадет в код даже если ее никто не вызывает.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:45
Рейтинг@Mail.ru


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