IAR и CLIB
Всем привет.
Столкнулся с такой проблемой: есть довольно большая программа, которую необходимо уместить на мк AT89S8252 ( 8К flash + 256 RAM ).
Решил отказаться от использования CLIB( разница по размеру при макс. оптимизации 6 Кб, 13 Кб с CLIB и 7 Кб без нее ).
( Мало того в составе компилятор нет lib-файла CLIB, поддерживающего размещение констант в CODE-сегменте ).
Возникло довольно много unresolved external.
В большинстве случаев удалось исправить, но, если используется функция обработки прерывания:
#pragma vector = UART_int
__interrupt void UART_interrupt()
{
...
}
То компилятор добавляет несколько служебных вызовов - ?FUNC_ENTER_OVERLAY, ?FUNC_LEAVE_OVERLAY, ?V0
Может кто сталкивался с такой проблемой?
Возможно мне не стоит отказываться от использования CLIB?
Заранее спасибо.
|