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

 
 
51 страниц V  « < 37 38 39 40 41 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
_Артём_
сообщение Jul 26 2012, 15:08
Сообщение #571


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(poganoe_lamerishe @ Jul 26 2012, 17:27) *
А у меня не появляются sad.gif

А совместим ли ваш eclipse с EmbSys? B выбран ли тип процессора?

Цитата(poganoe_lamerishe @ Jul 26 2012, 17:27) *
Скажите, а как у вас с отладкой шаблонного кода?

Вроде нормально было.
Go to the top of the page
 
+Quote Post
poganoe_lamerish...
сообщение Jul 26 2012, 15:30
Сообщение #572


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 4-07-11
Пользователь №: 66 052



Цитата(_Артём_ @ Jul 26 2012, 19:08) *
А совместим ли ваш eclipse с EmbSys? B выбран ли тип процессора?

А бог его знает. Версия эклипса - 3,7, но на сайте плагина написано только о проблемах версий старше 3,6 в сочетании с GDB (который я не использую). Тип процессора выбран, без этого структуру регистров было бы не видно вообще (и ошибка выдавалась).

Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 30 2012, 09:54
Сообщение #573


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Давно хотел спросить.
Эклипса ругается на макрос:

Код
off(PIN_OUTPUT);


пишет: Invalid use of macro pasting in macro: _clrL.

Макрос объявлен так:
Код
#define _clrL(port,bit,val) PDR##port##_P##port##bit##=1
#define _clrH(port,bit,val) PDR##port##_P##port##bit##=0
#define _clr(port,bit,val) _clr##val(port,bit,val)


Макрос рабочий, проверенный. Что в нём не нравится эклипсе?

ЗЫ. PIN_OUTPUT определён так:
Код
#define PIN_OUTPUT        1, 4, L



--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 31 2012, 09:20
Сообщение #574


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Короче, вот так заработало:
Код
#define _clrL(line) line=1
#define _clrH(line) line=0
#define _clr(port,bit,val) _clr##val(PDR##port##_P##port##bit)
#define off(x) _clr(x)

Что эклипсе не нравилось - так и не понял.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 31 2012, 11:19
Сообщение #575


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (AHTOXA @ Jul 31 2012, 12:20) *
Что эклипсе не нравилось - так и не понял.
Возможно - последние ## после bit


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
poganoe_lamerish...
сообщение Jul 31 2012, 12:40
Сообщение #576


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 4-07-11
Пользователь №: 66 052



Забил на кейловский плагин (раз уж, видимо, кейл генерирует такой map-файл по которому потом шаблонный код криво виден).
Поднял отладку на yagarto с отладчиком j-link.

Новая проблема - программа не останавливается в main (точнее, не доходит). Вишу в hard_fault_handler (при этом установлены биты STKERR и IMPRECISERR регистра BFSR - не совсем понятно, с чего это вдруг). Все настройки для debug conftiguartion брал с сайта yagarto.

(Чтобы увидеть этот регистр, кстати говоря, пришлось в xml для EmbSys Registers ручками прописать его адрес, из коробки нема)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 31 2012, 14:16
Сообщение #577


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Сергей Борщ @ Jul 31 2012, 17:19) *
Возможно - последние ## после bit

Точно! А фуджиковый препроцессор нормально это съедал. Интересно, кто из них прав? sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Canzo
сообщение Aug 10 2012, 06:43
Сообщение #578





Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457



Подскажите гуру, почему при компиляции в Эклипс в хэдере класа не узнает тип namespace?
Выдает: ./Include/dInput_hw.hpp:54:1: error: unknown type name 'namespace'

PS: ранее проект компилился в IAR, синтаксис должен быть правильный.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 10 2012, 06:49
Сообщение #579


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Код покажи...

Навскидку, может быть расширение файла .c и вызывается gcc?
Go to the top of the page
 
+Quote Post
Canzo
сообщение Aug 10 2012, 07:09
Сообщение #580





Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457



CODE
//********************************************************************************
*****************
//* Discrete Input
//* ARM AT91SAM7X128 Serial I/O Low Level Driver
//********************************************************************************
*************************

#if !defined(_dInput_hw_hpp_)
#define _dInput_hw_hpp_

//********************************************************************************
*************************
//* CONFIGURATION CONSTANTS
//********************************************************************************
*************************

#define IN0 (AT91C_PIO_PB27)
#define IN1 (AT91C_PIO_PB28)
#define IN2 (AT91C_PIO_PB29)
#define IN3 (AT91C_PIO_PB30)
#define IN4 (AT91C_PIO_PA8)
#define IN5 (AT91C_PIO_PA9)
#define IN6 (AT91C_PIO_PA10)
#define IN7 (AT91C_PIO_PA11)
#define IN8 (AT91C_PIO_PA12)
#define IN9 (AT91C_PIO_PA13)
#define IN10 (AT91C_PIO_PA14)
#define IN11 (AT91C_PIO_PA15)
#define IN12 (AT91C_PIO_PA16)
#define IN13 (AT91C_PIO_PA17)
#define IN14 (AT91C_PIO_PA18)
#define IN15 (AT91C_PIO_PB9)
#define INB_MASK (IN0 | IN1 | IN2 | IN3 | IN15)
#define INA_MASK (IN4 | IN5 | IN6 | IN7 | IN8 | IN9 | IN10 | IN11 | IN12 | IN13 | IN14)

#define _Nbr_dIn_Ports_ (16) // Количество входов в блоке дискретных входов
#define Nbr_dIn_Ports_Max (_Nbr_dIn_Ports_)

/*
********************************************************************************
*************************
* FUNCTION PROTOTYPES
********************************************************************************
*************************
*/

/*
********************************************************************************
*************************
* CLASS DEFINITION
********************************************************************************
*************************
*/
namespace nm_dInput
{
class CdInput
{
public:
CdInput(void); // конструктор
~CdInput(void); // деструктор
s8 dInput_Cfg (void); // конфигурирование порта ввода
s8 Init (void); // инициализация (полная перезагрузка)
s8 ReInit (void); // переинициализация (частичная перезагрузка без перебоя в работе)
s8 Update (void); // считывание и обработка данных принимаемых блоками дискретных входов
s32 Get_Sts (u8 Addr) const; // считывание буфера дискретного входа
s8 Get_EvntFlag (void); // считывание флага изменения состояния на входе
private:
u8 Nbr_dIn_Ports; // Количество входов в блоке дискретных входов
u32 dIn_In [Nbr_dIn_Ports_Max]; // Массив считанных данных со входов блоков
u32 dIn_Buf [Nbr_dIn_Ports_Max]; // Буферный массив считанных данных со входов блоков
u32 dIn_Sts [Nbr_dIn_Ports_Max]; // Массив обработанных данных со входов блоков
u8 dIn_Cnt [Nbr_dIn_Ports_Max]; // Массив счетчиков числа считываний входа
u8 dIn_EvntFlag; // Флаг изменения на входе
bool WE; // разрешение работы с экземляром класса - устанавливается если произведена инициализация
};
extern CdInput dInput; // объявление глобальной переменной
}

#endif



Компилятор Yagarto gcc
arm-none-eabi-g++

Сообщение отредактировал IgorKossak - Aug 10 2012, 11:09
Причина редактирования: [codebox]для длинного кода!!!
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 10 2012, 07:13
Сообщение #581


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



ну попробуй сделать проект из одного файл main.cpp:
Код
namespace N {}
class C {};

int main()
{
  return 0;
}


bb-offtopic.gif
комментарии типа
Код
CdInput(void); // конструктор
~CdInput(void); // деструктор

просто супер полезны wink.gif
Go to the top of the page
 
+Quote Post
Canzo
сообщение Aug 10 2012, 07:39
Сообщение #582





Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457



С одним main нормально. Грешен. И даже с классом в main.hpp в namespace {...} нормально.
Видимо где-то в проекте накосячил при переносе cranky.gif

По поводу комментариев согласен biggrin.gif - наследие предков.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Aug 10 2012, 07:48
Сообщение #583


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Поисключай лишнее. Может предыдущий include включает что-то кривое... Или может все таки режим компиляции C, а не С++ для того файла, при компиляции которого вылезает ошибка.
Go to the top of the page
 
+Quote Post
Canzo
сообщение Aug 10 2012, 09:45
Сообщение #584





Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457



Буду пробовать. Спасибо.
Go to the top of the page
 
+Quote Post
Aaron
сообщение Aug 13 2012, 10:06
Сообщение #585


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



я в такие файлы, где есть дефайны и для C, и для C++ файлов, всегда ставлю #ifdef __cplusplus. И проблемы бы не возникло.
Go to the top of the page
 
+Quote Post

51 страниц V  « < 37 38 39 40 41 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:17
Рейтинг@Mail.ru


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