Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Работал ли кто-нибудь с шаблонами на ARM C++ Keil? Нужна помощь!!!

Отправлено Yaumen 02 апреля 2009, г. 09:41


Пытаюсь написать класс по типу очереди сообщений на отправку через UART, CAN и т.д. Так для разных каналов связи размерность очереди будет разная, то решил применить шаблон для класса:

//queue.h
template<int MAX_SIZE> CQueue
{
public:
int GetMsg(BYTE * lpData, WORD wLength);
protected:
BYTE m_byBuffer[MAX_SIZE];
};

//queue.cpp
template<int MAX_SIZE>int CQueue<MAX_SIZE>::GetMsg(BYTE * lpData, WORD wLength)
{
BYTE * lpDest = (BYTE*)m_nBuffer;
while (wLength)
{
*lpData++ = *lpDest++;
wLength--;
};
}

Этот код ТОЛЬКО ПРИМЕР и его содержательность критиковать не надо :))

Все нормально компилируется. Теперь пытаемся его использовать

//can.h
class CCan
{
public:
void Init();
BYTE m_Data[256];
};

//can.cpp
CQueue<1024> m_TxQueue;

void CCan::Init()
{
m_TxQueue.GetMsg((BYTE*)m_Data, 256);
}

В результате при компиляции получаю следующую ошибку:

.\Debug\ModulCpu.axf: Error: L6218E: Undefined symbol CQueue<(int)1024>::GetMsg(unsigned char*, unsigned) (referred from can.o).

В чем может быть проблема?


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 38:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru