Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как заставить HiTech компилировать GOTO $+"смещение" вместо GOTO 0x"адрес"
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
malysh_nrg
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.
Если удастся заставить компилятор HiTech делать вместо точного адреса перескока на относительное, возможно это поможет практически автоматизировать встраивание Си-шного кода в ассемблеровский.

Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте
Vlad27
Цитата(malysh_nrg @ Dec 9 2010, 12:25) *
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.
Если удастся заставить компилятор HiTech делать вместо точного адреса перескока на относительное, возможно это поможет практически автоматизировать встраивание Си-шного кода в ассемблеровский.

Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте


А опцию компилятора Generate relocatable code пробовали?
xemul
Цитата(malysh_nrg @ Dec 9 2010, 13:25) *
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.
Если удастся заставить компилятор HiTech делать вместо точного адреса перескока на относительное, возможно это поможет практически автоматизировать встраивание Си-шного кода в ассемблеровский.

Выделить математику в отдельный(-ые) .as файл(-ы). От $+ в ассемблерной вставке в .c у оптимизатора обычно сносит крышу.
Цитата
Может есть еще варианты встраивания? Заставить код лежать в двух проектах в одном месте

Задать имя программной секции
Код
// .c
#pragma psect text%%u=mytext
// .as
PSECT mytext, class=CODE, delta=2

и сказать линкеру, по какому адресу её разместить
Код
-L-Pmytext=...

Подробности, естесно, в мануале.
Привязываться к абсолютным адресам без крайней нужды крайне неправильно.
Danis
Цитата(malysh_nrg @ Dec 9 2010, 14:25) *
Требуется перенести математику написанную на Си из одного проекта в другой проект, который написан на ассемблере.

Что за математика?, что ее на ассемблере нельзя написать?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.