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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Code Red Suit v2.0, Среда разработки на базе эклипса
Vitaliy_ARM
сообщение Sep 1 2009, 14:11
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Приобрели эту среду, так как очень хотелось иметь среду на базе эклипса с нормальным дебагером.
Среда на базе эклипса 3.3 и гнушного компилятора gcc 4.2.0. Этот вариант гораздо бюджетнее IAR.
О нем можно почитать здесь: www.code-red-tech.com

В кратце о среде:
Джитаг собран на FT2232, максимальная скорость - 6МГц. По сравнению с IAR,
работает заметно медленнее.
Геммора с настройкой проекта практически нет (C-проекта).
На мой взгляд, очень удачное решение для тех, кому нравится эклипс.

Со средой вместе идут несколько проектов, в частности для LPC17xx и LPC23xx/24xx. и гигобайтная флешка rolleyes.gif с фирменным лабелом.
Все проекты написаны на C, компилируются и работают сностно. При создании
проекта на С, автоматически генерируются 3 файла для компановщика.

При создании проекта на C++ так же генерятся три файла скрипта компановщика, в которых отсутствуют секции для конструкторов и прочее. cranky.gif
При использовании обычного класса компановщик начинает ругаться непонятными ошибками:
Код
make all
Building target: BootCR.axf
Invoking: MCU C++ Linker
arm-none-eabi-c++ -nostdlib -Xlinker --gc-sections -Xlinker -Map=BootCR.map -mcpu=arm7tdmi -T BootCR.ld -o"BootCR.axf"  ./src/DoCmd.o ./src/Emac.o ./src/Fldr.o ./src/PortIO.o ./src/Rc6.o ./src/Stip.o ./src/TestPins.o ./src/cr_startup.o ./src/main.o  
c:/code_red/red_suite/tools/bin/../lib/gcc/arm-none-eabi/4.3.2/../../../../arm-none-eabi/lib\libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xc): undefined reference to `_exit'
c:/code_red/red_suite/tools/bin/../lib/gcc/arm-none-eabi/4.3.2/../../../../arm-none-eabi/lib\libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x4): undefined reference to `_getpid'
c:/code_red/red_suite/tools/bin/../lib/gcc/arm-none-eabi/4.3.2/../../../../arm-none-eabi/lib\libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0x2c): undefined reference to `_kill'
c:/code_red/red_suite/tools/bin/../lib/gcc/arm-none-eabi/4.3.2/../../../../arm-none-eabi/lib\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0x18): undefined reference to `_sbrk'
collect2: ld returned 1 exit status
make: *** [BootCR.axf] Error 1


Был у меня еще один проект, который собирался в gcc ранней версии (уже не помню в какой). Путем колдовства и добавления секций, таких как .сtors и .dtors результата не принесло,
только ошибки сменились. Потом засунул скрипт от старого проекта линкеру. Написал, что все скомпилилось с размером кода 0.
Вывод пока такой, что ребята не доделали поддержку C++ (генерятся неправильные файлы линковщика). Возможность вставлять свой файл есть.
Приведу изначальный скрипт компановщика.
Может кто знает, чего там не хватает, может кто-то уже использует эту среду с С++?
Прикрепленные файлы
Прикрепленный файл  Debug.zip ( 1.58 килобайт ) Кол-во скачиваний: 28
 


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Sep 1 2009, 17:54
Сообщение #2


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

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



Цитата(Vitaliy_ARM @ Sep 1 2009, 20:11) *
Код
c:/code_red/red_suite/tools/bin/../lib/gcc/arm-none-eabi/4.3.2/../../../../arm-none-eabi/lib\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0x18): undefined reference to `_sbrk'


Никакой code red не избавит от необходимости изучать кишочки gcc smile.gif

Попробуйте добавить в проект вот этот файлик: Прикрепленный файл  syscalls.rar ( 1.2 килобайт ) Кол-во скачиваний: 351


Это минимальный набор системных вызовов. В каком-нибудь своём .cpp определите
Код
extern "C" int putChar(int ch);
int putChar(int ch)
{
    uart0.putch(ch);
    return ch;
}


Хотя скорее всего всё это уже есть в какой-нибудь их библиотеке, надо просто указать в какой.

Цитата
Приведу изначальный скрипт компановщика.
Может кто знает, чего там не хватает, может кто-то уже использует эту среду с С++?


Ну ctors там есть. Возможно там сделано иначе, через .init_array

Попробуйте что-то вроде этого:
Код
    .text :
    {
        __ctors_start__ = .;
        *(.init_array)
        __ctors_end__ = .;
        __dtors_start__ = .;
        __dtors_end__ = .;
        KEEP(SORT(*)(.init_array))
        
        . = ALIGN(4);
        *(.text)                   /* remaining code */
        *(.text.*)                   /* remaining code */
        *(.rodata)                 /* read-only data (constants) */
        *(.rodata*)

        *(.eh_frame_hdr)
        *(.eh_frame)
        *(.ARM.extab* .gnu.linkonce.armextab.*)
        *(.gcc_except_table)
        *(.eh_frame_hdr)
        *(.eh_frame)

        *(.glue_7)
        *(.glue_7t)
        . = ALIGN(4);
    } >FLASH


секции .ctors и .dtors уберите.

Вот тут про .eh_frame.

Ну а вообще, раз купили, то можно напрячь продавца, наверноеsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 2 2009, 08:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(AHTOXA @ Sep 1 2009, 21:54) *
Ну а вообще, раз купили, то можно напрячь продавца, наверноеsmile.gif


Они сильно не напрягаются. В терре сказали что это еще пока группа интузиастов. Пробовал перед
покупкой написать им на маил, ответа не было. Потом раза три пытался позвонить. Трубку не брали.
Повторно написал на маил, с вопросом как купить? Написали, что покупайте джитаг в терраэлектронике и дали ссылку,
а лицензию на программу у нас smile.gif .

А вообще впечатления от компилера: проект был скомпилирован в IAR, занимал 7кБ, (директива оптимизации - Speed)
после перенесения его на язык С и компиляции в этом компиляторе, проект стал занимать 10кБ (директива оптимизации -O3) wacko.gif


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
msalov
сообщение Sep 2 2009, 10:46
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



 
Цитата(Vitaliy_ARM @ Sep 2 2009, 11:22) *
А вообще впечатления от компилера: проект был скомпилирован в IAR, занимал 7кБ, (директива оптимизации - Speed)
после перенесения его на язык С и компиляции в этом компиляторе, проект стал занимать 10кБ (директива оптимизации -O3) wacko.gif
Вы устанавливаете оптимизацию по скорости, меняете проект и сравниваете обьем? Где логика?
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 2 2009, 10:58
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(gotty @ Sep 2 2009, 14:46) *
 Вы устанавливаете оптимизацию по скорости, меняете проект и сравниваете обьем? Где логика?

Просто в этом компиляторе в комбобоксе нету -Os. Прописал в ручную, один фиг, все равно результат тот же.


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 2 2009, 11:30
Сообщение #6


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



за что собсно денги уплачены?
за отладчик? причем тут эклипс?
за GCC , так он вообще ничего не стоит.
за эклипс, а чем он отличается от бесплатного?

единственно что могу предположить - библиотеки! больше незачто. но по описанию автра не сложилось за это впечатления.

cranky.gif забавно


вопросы.
Вы упоминули о комбобоксе в котором нет -Os, видимо авторы продукта всетаки написали свой плагин в эклипс, это так? Скриншот этого можно глянуть.

GCC 4.2.0
gcc -v че выдает? чей сборки?

что в качестве libc предложено? собственное чтото как у CrossWorks ( в чем сомневаюсь) или newlib, если newlib то какой версии, какой версии GDB?
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 2 2009, 12:05
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(klen @ Sep 2 2009, 15:30) *
за что собсно денги уплачены?

Мы купили пока джитаг. Среда работает с ограничением 8кБ.
Она продается отдельно и стоит порядка 1000$
Деньги берут за плагин эклипса и за то, что у Вас все будет работать сразу smile.gif

Цитата(klen @ Sep 2 2009, 15:30) *
за эклипс, а чем он отличается от бесплатного?

Эклипс с их плагином полностью настроен на работу с их джитагом. Так же среда
позволяет полноценно просмтривать регистры процессоров, внутреннюю память и т.п.
в божеских окнах.

Цитата(klen @ Sep 2 2009, 15:30) *
GCC 4.2.0
gcc -v че выдает? чей сборки?


Выложил скриншот консоли gcc.jpeg

Цитата(klen @ Sep 2 2009, 15:30) *
что в качестве libc предложено? собственное чтото как у CrossWorks ( в чем сомневаюсь) или newlib, если newlib то какой версии, какой версии GDB?

Скажите как посмотреть, посмотрю. rolleyes.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 2 2009, 12:21
Сообщение #8


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



вижу плагин, котрый парсит регисты переферии - это гуд

но чето 1000$ както дороговато на мой взгляд.

используется newlib, судя по компиллеру
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 2 2009, 12:31
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(klen @ Sep 2 2009, 16:21) *
Вижу плагин, котрый парсит регисты переферии - это гуд
но чето 1000$ как-то дороговато на мой взгляд.

IAR вообще не реальных денег стоит. Этот еще можно купить unsure.gif


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 3 2009, 06:30
Сообщение #10


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



ыыы laughing.gif

мож попробуем выдрать "ихний плагин", поглядеть ... все остально даром ненадо.

вообще я даже разбирался с плагинописательством к эклипсу. хотелось сделать парсинг битов регистров переферии. принципиально все просто - просиш IDE создать окошко в нужной группе, сделать интерфейск к командам GDB, прочитать файл обисания регистров и вывести на окно. Несложно. но как дело дошло писания на яве я както затормозил и бросил. жду пока муза опять появится.
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 3 2009, 10:08
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(klen @ Sep 3 2009, 10:30) *
ыыы laughing.gif
мож попробуем выдрать "ихний плагин", поглядеть ... все остально даром ненадо.


Можно попробовать. У меня постоянно был геммор с отладчиком. GDB сервер постоянно вылетал, то сбоил, то еще чего нибудь выдавал, например жмешь перепрыгнуть
через функцию, а он туда залетает и потом вешается. Джитаг от Olimex. Сносно работал j-link со своим GDB сервером, но тоже не все было гладко. Короче говоря я надолбался с
бесплатным софтом, но так нормально и не настроил.
Думаю тут надо сначала состыковать это добро между собой, чтобы не глючило. А потом браться за плагин. В коде реде вроде бы свой GDB сервер, с их джитагом вроде работает
более или менее.
Как появится возможность, постараюсь залить на местный фтп эту среду.

Сейчас порюсь с такой проблемой, наверное это больше к линкеру относится. Переписываю свой бутлодер.
Где находятся вектора прерываний в этом коде? (перенос KEEP(*(.isr_vector)) в другую секцию, размещенную по нулевому адресу результата не принесло, может чего упустил?).

Цитата
.text :
{
KEEP(*(.isr_vector))
*(.text*)
*(.rodata*)
KEEP(*(.init));
KEEP(*(.fini));
} > FLASH

Вот еще нашел такой комментарий в скрипте линкера:
Цитата
/*
Note: (ref: M0000066)
Moving the stack down by 16 is to work around a GDB bug.
This space can be reclaimed for Production Builds.
*/


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 3 2009, 12:54
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Понял что вектора прерываний находятся полностью в KEEP(*(.isr_vector).

Однако .text должен находиться в в одной секции и после KEEP(*(.isr_vector).
Код
.boot :
    {
        KEEP(*(.isr_vector));
        *(.text*)
        *(.rodata*)        
        
    } > BOOTMEM


Если сделать так:

Код
    .boot :
    {
        KEEP(*(.isr_vector));        
        
    } > BOOTMEM

    .text :
    {
        *(.text*)
        *(.rodata*)  
    } > MFlash512


То дебагер улетает в undefine handler. Получается что вектор резета указывает не на начало .text, а непонятно куда.
В чем может быть дело, как правильно разнести вектора и основную программу?


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
klen
сообщение Sep 3 2009, 13:29
Сообщение #13


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



у меня отладка работает на ура, даже в инлайн конструкторы заходить.

могу ВСЕ в кучу запаковатьь и выложить. сможете сравнить.
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 3 2009, 13:35
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Цитата(klen @ Sep 3 2009, 17:29) *
у меня отладка работает на ура, даже в инлайн конструкторы заходить.

могу ВСЕ в кучу запаковатьь и выложить. сможете сравнить.


Выкладывайте, будет интересно. А джитаг какой вы используете?

Кстати вот еще интересная ссылка на исходники для их отладочной платы, много чего интересного: http://support.code-red-tech.com/CodeRedWiki/RDB1768Support


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
Vitaliy_ARM
сообщение Sep 4 2009, 12:06
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Какая-то ерудна с линкером. Вот не прошло и пол года: http://electronix.ru/forum/lofiversion/index.php/t58320.html
а вектора стали называться по другому 07.gif


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:36
Рейтинг@Mail.ru


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