Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с расположением виртуальной таблицы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Zzzaru
Здравствуйте! Имеется абстрактный класс:

class Interface
{
public:
Buffer bufferRX, bufferTX;
virtual void Send() = 0;
};

Функция Send() определяется в производном от Interface классе USART.

При компиляции класса USART компилятор почему-то располагает таблицу виртуальных функции в сегменте NEAR_F. Как заставить компилятор располагать эту таблицу по адресам старше NEAR_F? Использую компилятор IAR 5.30. Таблицу виртуальных функции необходимо размещать после адреса 0x1E000, поскольку здесь у меня располагается программа бутлоадера. А сегмент NEAR_F - это от 0x00 до 0xFFFF. Вот такая вот проблема! Буду очень благодарен за помощь! )
Сергей Борщ
Цитата(Zzzaru @ Nov 15 2009, 18:07) *
При компиляции класса USART компилятор почему-то располагает таблицу виртуальных функции в сегменте NEAR_F. Как заставить компилятор располагать эту таблицу по адресам старше NEAR_F?
Может надо пойти более прямым путем - разместить сегмент NEAR_F там, где вам нужно?
Илья Рогожкин
Цитата(Сергей Борщ @ Nov 16 2009, 15:40) *
Может надо пойти более прямым путем - разместить сегмент NEAR_F там, где вам нужно?


У меня такая же проблема.
Так сделать можно, но что делать, если использовать микроконтроллер у которого памяти больше, чем 64Кб? Згрузчик находится за пределами 0xffff, а IAR, как было сказано, не размещает сегмент NEAR_F дальше этого адреса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.