|
|
  |
Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем |
|
|
|
Jul 26 2012, 15:30
|
Участник

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

|
Цитата(_Артём_ @ Jul 26 2012, 19:08)  А совместим ли ваш eclipse с EmbSys? B выбран ли тип процессора? А бог его знает. Версия эклипса - 3,7, но на сайте плагина написано только о проблемах версий старше 3,6 в сочетании с GDB (который я не использую). Тип процессора выбран, без этого структуру регистров было бы не видно вообще (и ошибка выдавалась).
|
|
|
|
|
Jul 30 2012, 09:54
|

фанат дивана
     
Группа: Свой
Сообщений: 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
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jul 31 2012, 12:40
|
Участник

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

|
Забил на кейловский плагин (раз уж, видимо, кейл генерирует такой map-файл по которому потом шаблонный код криво виден). Поднял отладку на yagarto с отладчиком j-link.
Новая проблема - программа не останавливается в main (точнее, не доходит). Вишу в hard_fault_handler (при этом установлены биты STKERR и IMPRECISERR регистра BFSR - не совсем понятно, с чего это вдруг). Все настройки для debug conftiguartion брал с сайта yagarto.
(Чтобы увидеть этот регистр, кстати говоря, пришлось в xml для EmbSys Registers ручками прописать его адрес, из коробки нема)
|
|
|
|
|
Aug 10 2012, 06:43
|
Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457

|
Подскажите гуру, почему при компиляции в Эклипс в хэдере класа не узнает тип namespace? Выдает: ./Include/dInput_hw.hpp:54:1: error: unknown type name 'namespace'
PS: ранее проект компилился в IAR, синтаксис должен быть правильный.
|
|
|
|
|
Aug 10 2012, 07:09
|
Группа: Новичок
Сообщений: 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]для длинного кода!!!
|
|
|
|
|
Aug 10 2012, 07:13
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
ну попробуй сделать проект из одного файл main.cpp: Код namespace N {} class C {};
int main() { return 0; } комментарии типа Код CdInput(void); // конструктор ~CdInput(void); // деструктор просто супер полезны
|
|
|
|
|
Aug 10 2012, 07:39
|
Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457

|
С одним main нормально. Грешен. И даже с классом в main.hpp в namespace {...} нормально. Видимо где-то в проекте накосячил при переносе По поводу комментариев согласен  - наследие предков.
|
|
|
|
|
Aug 10 2012, 09:45
|
Группа: Новичок
Сообщений: 4
Регистрация: 22-06-12
Пользователь №: 72 457

|
Буду пробовать. Спасибо.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|