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

 
 
> 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
 
Start new topic
Ответов
klen
сообщение Sep 2 2009, 12:21
Сообщение #2


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

Группа: Свой
Сообщений: 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
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- Vitaliy_ARM   Code Red Suit v2.0   Sep 1 2009, 14:11
- - AHTOXA   Цитата(Vitaliy_ARM @ Sep 1 2009, 20:11) К...   Sep 1 2009, 17:54
|- - Vitaliy_ARM   Цитата(AHTOXA @ Sep 1 2009, 21:54) Ну а в...   Sep 2 2009, 08:22
|- - gotty    Цитата(Vitaliy_ARM @ Sep 2 2009, 11:22) ...   Sep 2 2009, 10:46
|- - Vitaliy_ARM   Цитата(gotty @ Sep 2 2009, 14:46)  Вы уст...   Sep 2 2009, 10:58
- - klen   за что собсно денги уплачены? за отладчик? причем...   Sep 2 2009, 11:30
|- - Vitaliy_ARM   Цитата(klen @ Sep 2 2009, 15:30) за что с...   Sep 2 2009, 12:05
- - klen   у меня отладка работает на ура, даже в инлайн конс...   Sep 3 2009, 13:29
|- - Vitaliy_ARM   Цитата(klen @ Sep 3 2009, 17:29) у меня о...   Sep 3 2009, 13:35
|- - Vitaliy_ARM   Какая-то ерудна с линкером. Вот не прошло и пол го...   Sep 4 2009, 12:06
|- - Vitaliy_ARM   Цитата(Vitaliy_ARM @ Sep 4 2009, 16:06) К...   Oct 1 2009, 11:15
|- - Vitaliy_ARM   Итог такой: про C и Cpp Newlib is a complete C/C+...   Oct 2 2009, 15:38
|- - Petka   Цитата(Vitaliy_ARM @ Oct 2 2009, 19:38) П...   Oct 2 2009, 15:44
||- - Vitaliy_ARM   Цитата(Petka @ Oct 2 2009, 19:44) Кодint ...   Oct 2 2009, 15:51
||- - Petka   Цитата(Vitaliy_ARM @ Oct 2 2009, 19:51) Ц...   Oct 2 2009, 15:59
|- - demiurg_spb   Цитата(Vitaliy_ARM @ Oct 2 2009, 19:38) П...   Oct 3 2009, 14:51
|- - Vitaliy_ARM   Цитата(demiurg_spb @ Oct 3 2009, 18:51) Д...   Oct 5 2009, 08:32
|- - Vitaliy_ARM   Цитата(demiurg_spb @ Oct 3 2009, 18:51) Д...   Oct 5 2009, 14:20
- - Flexz   А как у вас секция "батареечной памяти" ...   Oct 5 2009, 20:24
- - klen   я так понимаю все это области ОЗУ? ход мыслей так...   Oct 6 2009, 07:10
- - Make_Pic   Цитата(klen @ Oct 6 2009, 10:10) я так по...   Oct 6 2009, 13:27


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

 


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


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