|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 9:33 am
Изпитан toolchain за Cortex M3.
| Автор |
Съобщение |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Изравям пак тая тема, защото май ще трябва да преразгледам избора си на Toolchain за Cortex M3....
Накратко, подкарах yagarto, подкарах С++ но проблемите май ми идват в повечко...
Проблем #1
GDB много често изпада в безкрайно четене на таргет памет и единствения изход е да се килва. Случаите са няколко, най-често при опит да undwind-не стека. И тъй като плъгина на Еклипс автоматично на всяка стъпка развива стека то на практика не може да се дебъгва през Еклипс. Остава варианта да се дебъгва през команд промпт конзола - но аз не съм чак такъв мазохист. Или през Insight, където не трябва да се отваря stack прозореца. Лошото е, че има случаи в които зацикля и не само заради стека, така че дори и Insight не помага.
С две думи дебъгването си е проблем.
Проблем #2
Компилатора или може би линкера се дънят. Имам един клас, на който трябва да се извика статично конструктор. Когато пусна всички оптимизации обаче в листинга конструктора се среща два пъти, при това с едно и също име. Двете копия са 100% идентични и като код и като всичко.
Тук най-малкият проблем е че ще ми дублира код... По-големият проблем е, че това побърква и дебъгера и като дам step in в дублирана функция GDB нещо се ошашква и пак изпада в безкрайно четене. Вероятно като търси текущата функция намира едното копие, а пък програмния брояч сочи другото копие и с две думи не става да се дъбъгва...
Проблем #3
OpenOCD освен перипетиите около инсталирането му също е супер нестабилно. Не че го ползвам лично, но е добре да имам и такава алтернатива.
Та това е в общи линии... Интересува ме следното:
1) Някой ползва ли стандартен GNU тулчейн освен Yagarto? Просто Yagarto няма пресен релийз пък тия бъгчета може вече да са оправени...
2) Знам че Цецо ползваше Codesourcery... как е там хавата? Колко стабилно е и до колко е легално?
|
| Пон Мар 08, 2010 12:25 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
CodeSourcery би следвало да е легално. Аз поне си изтеглих Lite версията и сам си сглобих нещата с Eclipse.
При мен нещата работят. Дебъгвам си, ама и аз някой неща така и не успях да ги пусна като хората. Лошото е че тоя проект беше преди половин година и оттогава не съм го пипал. Ама щото си работи де  Някъде в темата бях описал какво ми куцаше в дебъга, май нещо трудно успявах да гледам регистрите на периферията. С някой ставаше с някой не. Ама все си мисля, че това беше някакъв проблем на дефиниции и скриптове, обаче тогава бързах да свърша работата и нямах време да търся проблема и го заобикалях по баламски начини.
Твоя проблем с стека и дебъгера не го разбрах. При мен не е зависвал, ама може да е щото не съм правил точно това което ти.
И това с уточнението, че съм ползвал Eclipse и GCC версия от преди 1-1,5 години, щото това беше актуално тогава. Сега незнам актуалните версии как работят. C++ не съм пускал на мойта сглобка, но очаквам да има същите проблеми като твойта, щото там явно проблемите са си от самото GCC.
Дебъгвал съм само с J-link+GDB. Open_OCD -то към оня момент беше пълна боза по отношение на куртекса и освен псувни и нерви друго не постигнах тогава.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 08, 2010 12:54 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
codered e супер. Бачка с развойната платка на luminary, но без трасйс-а. Като минат 3-те месеца, може да се дебъгва и през openocd.. или преинсталация и наново 
|
| Пон Мар 08, 2010 1:23 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
А да и важното уточнение - не ползвам Luminary, a ST.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 08, 2010 1:29 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
а тоя codered и на мен ми беше любопитен, ама нещо не открих демо версия поне на времето - от къде да го дръпна?
Освен това с кои GCC версии е? Щото аз съм с:
arm-elf-gcc (GCC) 4.4.2
GNU gdb (GDB) 7.0.1
и освен ако не са с патчове се съмнявам в по-старите версии...
|
| Пон Мар 08, 2010 2:00 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
http://www.code-red-tech.com/downloadrequest.php
Гледам, 3та вересия... нямам наблюдения за нея, 2.022 е при мене:
GNU gdb (Code Red Technologies Red Suite Q3/2007) 6.6.50.20070821-cvs
arm-none-eabi-gcc (Red Suite q3-08 by Code Red) 4.3.2
Няма ли я на диск заедно с развойната платка на luminary, която имаш? Аз съм си гну профан  Ама с какво би следвало да са по-добри новите версии, които цитираш ?
|
| Пон Мар 08, 2010 3:40 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
code_red няма да ми върши работа ...
Това че ползва стари версии на GCC и GDB не е фатално (всъщност може бъговете дето ме мъчат да само в новите версии)...
Проблемът на code_reda е че са го затворили, поддържа си само техните работи и толкоз. С триста мъки подкарах моя емулатор, подкарах Zylin, ама няма дизасемблер няма нищо.
С две думи това което те са добавили като функционалност (примерно периферии и т.н.) не работи със стандартните емулатори (простаци!! )
В същото време старата функционалност я няма.. Абе не става! Язък 
|
| Пон Мар 08, 2010 7:16 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Ако намериш подходящо решение, сподели, моля
|
| Вто Мар 09, 2010 2:10 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Е той решението го има - GCC+Eclipse.
Ама има ядове. Е освен да пробваш с по новите версии.... явно ще пробиваш пръв стената с глава. Което си е гадно, аз нали вече го правих.....
Прави впечатление, че сравнително бавно се развива комбинацията GCC+куртекс. Поне определено е по бавно от ARM7. Аз бих го отдал на кризата де.
Що не провериш какво мислят КодСорсери по въпроса - мисля че и големия пакет можеше да се драпа на траял, поне ще знаеш има ли решение проблема в по новите версии. И ако има ще сглобяваш сам.
Апропо, като изкрънкаш триала, ти дават безплатен супорт за месец. И направо можеш тях да питаш ако проблема още е там. Компетентни са хората и отговарят бързо и качествено. Поне преди година.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Вто Мар 09, 2010 3:06 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
добре де, ще споделя
Първо Цецо е прав, подкарването на кортекс под GNU ме измъчи доста. Не го очаквах, защото си мислех че вече имам достатъчно опит, но....
Сега относно code_red - в крайна сметка успях да го подкарам, но за съжаление се оказа безсмислено начинание за мен. Те са направили две неща:
1) project managment, имаш си wizard, който ти създава проекта, създава мейкфайл, линкерски скрипт и т.н. Добре е направено и по нищо не отстъпва на други комерсиални среди от сорта на IAR, даже тъй като ползват Еклипс имат много повече функции. Мен това обаче не ме топли, тъй като не ползвам wizard-и и сам си организирам проектите поради куп причини дето е излишно да обяснявам.
2) Дебъг & трейс функционалност. Особено трейса поне по картинки (не го подкарах) изглежда супер. Но за съжаление всичката им функционалност работи само и единствено с техния емулатор. Като са се постарали да скрият стандартната (постна) функционалност, което пък мен ме измъчи защото с моите емулатори не мога да им ползвам тяхната.
Та с две думи - първото не искам да ползвам, а второто не мога. Така че code_red не ми върши никаква работа, даже само главоболия, защото те са го затворили - едно единствено ЕХЕ дето тръгва и инсталира всичко без да те пита. На всичкото отгоре работят с по-стари GCC и GDB версии. Накратко - не е за мен тоя тул.
Codesourcery го оставих колегата да го тества... и там нещата стоят по подобен начин, даже като слушам думите му още по-зле.
Сега за "истинското" GNU... както знаят повечето тулчейна от Yagarto е може би най-известния нейтив и пича се грижи да го опреснява сравнително често. Но за съжаление в самото GCC има все още прекалено много трески за дялане. Разбира се тия трески ще ги има във всички GNU базирани включително и code_red/codesourcery. Ех примерно проблема със забиването на дебъгера го няма в code_red, защото те ползват стари версии, където тоя проблем още не се е появил
Както и да е, дотук успях да подкарам Ягартото... и да намеря решение на най-дразнещите проблеми....
Може би няма смисъл да правя списък с проблемите - те са най-различни - от гърмене на компилатора при определени опции, до забиване на дебъгера. Важното е решението, а то се състои в изчистен мейкфайл и линкерски скрипт. Ако някой почва с куртекс да свирка ще му дам тия файлове, в момента още ги изчиствам/тествам...
С две думи - ягарто вече бачка на някакво задоволително ниво. Не е хептен без забележки. Примерно проблемът със зациклянето на GDB се решава с добавяне на "eh_frame" секция. Самата секция е много странна, не се подчинява на place-ване, в нея компилатора (засега) ми блъска едни 300 байта дето в никой листинг не се виждат. Изобщо магия някаква... търсих информация някои казват че е "exception handling" други че е за stack unwinding и второто май е вярното щото като я има GDB си бачка, като я няма се побърква от четене на паметта до безкрай...
Засега тия 300 байта не са ми проблем, надявам се да не растат, но и да станат повече в релийз версията разкарвам тая секция и готово....
Другият неизчистен проблем е дублирането на конструктури при включена оптимизация. Боря го, но нещо не мога да открия... както и да е, по принцип няма да ползвам много С++ класове със статична инициализация и огромно конструктори, така че за момента ще преживея дублирането на няколко функции. Ако е бъг на GCC се надявам да го изчистят, ако не ще го бора пак...
ми това е...
едит: -fno-dwarf2-cfi-asm премахва нуждата от "вълшебната" секция...
|
| Вто Мар 09, 2010 4:12 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Миро, днес видях на сайта на Луминари, че ТИ са пуснали 8 нови кита с безплатна версия на Code Composer Studio без лимит за кода и времето. Та сега свалям CD-то от единия кит да видим що за животно е това. Та мисълта ми е, че имаш вече още една възможност  .
|
| Пон Мар 15, 2010 7:29 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Не познавам Composer студиото пък и вече изразходвахме времето за експерименти
Освен това днес е на прИмоция, ама утре откъде де да знам следващата версия как ще...
|
| Пон Мар 15, 2010 8:32 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
Да питам и тук за всеки случай, някой подкарвал ли е трейс по SWO/SWV на луминари?
Аз нещо не мога да конфигурирам може би, а никъде не виждам пример как се пуска...
|
| Вто Мар 30, 2010 10:52 am |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Пак да вдигна темата. Подхващам нов проект с куртекс (STM32). Аз си имам един тулчеин дето си го събирах навремето. Ама той малко одъртя, от преди 2 години е.
Та каква е модата към момента. Гледам Code Sourcery са пуснали пролетно издание на Lite версията. Gcc сложили 4.4.1 (мойто е 4.3.2 май). Yagarto пуснал 4.5 нещо си....
Еклипса сигурно и той има новости, на моя (3.4 нещо си) от преди 2 години така и не успях да подкрам някой неща в дебъгера. Някой регистри така и не искаха да ми се ъпдейтват при дебъг. Вероятно проблема идваше от кофти inc файлове, ама знам ли....
Та с какво работите към момента на куртекс и как се държи. Говорим само за GCC и еклипс де.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Окт 15, 2010 6:37 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
аз лично я карам на стар еклипс (Ганимед), естествено yagarto което не съм ъпдейтвал... ама тъкмо днес на един колега настройвах машина и за по-лесно сложихме последните версии...
Значи впАчатленията са следните:
1) Еклипс още по-шарен... Вградения плъгин за CDT-debug са му сложели един куп настройки, като го пуснеш вади 15 конзоли. Изтърпях го цели 20-на минути, след което си дръпнах Zylin и всичко си дойде на мястото. Просто новия плъгин ти пишеш в една конзола GDB команди, то ти отговаря в някоя друга, абе луда работа!
Иначе самия Еклипс - еклипс като еклипс
2) GCC 4.5 може и да е по-добре. В смисъл на проекта дето стария (4.4) компилира без забележки това намери забележки
Линкера ми създаде проблемче, вика ми че не можело компилатора да слага MVW инструкция, когато се извличали shared данни. Да съм бил ползвал PIC (position independat code)... Аз естествено не искам PIC, та се почесах, почесах... Най-накрая махнах "-shared" от опциите на линкера и той миряса.
Та общо взето доколкото се бъзиках нещата тръгнаха... По-късно обаче колегата се оплака, че на няколко пъти му се случвало новото GDB да не може да намери сорса на функции. Другата седмица ще взема и аз да ъпдейтна и ако наистина има такива проблеми ще си остана със сегашната версия.
С две думи предпоследната версия на ягарто бачка стабилно. За последната е рано да се каже
edit: Сложих си новия Еклипс... супер е! Проверих всички бъгчета дето знаех - изчистени са, а нови не откривам 
|
| Пет Окт 15, 2010 7:38 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|