Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятки со средой Green Hills for MIPS
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
andk
Попробовал писать для MIPS на Green Hills MULTI v4.0.5 и наткнулся на такой прикол:
Пишу процедуру прерывания по примеру из их документации:
Процессор - IDT 79RC32355

__interrupt void foo(void);

int main(int argc, char *argv[])
{
bla-bla-bla
}

#pragma intvect foo 0x80000200
__interrupt void foo()
{
bla-bla-bla
}
Компилируется, линкуется на ура.
Не работает.
Смотрю под отладчиком - в 0x80000200 лежит АДРЕС функции foo!!!!
А должен быть либо переход на нее либо сама функция должна там расположиться.

Еще один прикол связан с генерацией ELF файла:
В линкерном скрипте для секции ставлю атрибуты "NOLOAD"
В ELF вижу - ВСЕ программные секции с атрибутом "LOAD"

Кто нибудь сталкивался ?
Может что-то не так делаю?
Искал на сайте у зеленых - не нашел ни патчей, ни еррат - Ну не верю что софт у них безглючный!
jojo
Может быть, так и надо. Вопрос в том, как устроен startup для Мипсов. И как работают в них прерывания.

Я когда-то делал проект в GreenHills ARM. Прагмой

#pragma ghs interrupt
void handler(void){

}

делается обработчик прерывания.

А в стартапе делается переход по адресу handler.
.import handler
...
ldr pc, [pc, #&18] ; IRQHandler
...
DCD handler

Вообще то, что у вас получилось, скорее всего годится для вызова функции обработчика прерывания.
Про секции вообще не знаю.

Вы через Wiggler отладку не пробовали? Работает она вообще для МИПСов?
andk
Да нет, сильно похоже на глюк компилятора.
У мипсов в векторах прерываний должно быть или переход на функцию либо сама функция.
Wigglera у меня нет, отлаживаюсь через Com порт.
Хотя враги пишут, что поддержка есть.
jojo
Все же эту проблему можно решить через стартап. Там, в векторе прерываний сделать переход по тому адресу, который был получен с помощью pragmы interrupt.
andk
Да я так и сделал, когда увидел что мне нагенерил компилятор.
Но "Абыдно, да?".
Вообще общее впечатление от софта для разработки мипсов - какое-то все кривое, убогое.
Уже пожалел, что связался с этими процами.
Evgeny_CD
Цитата(andk @ Jan 23 2006, 15:49) *
Вообще общее впечатление от софта для разработки мипсов - какое-то все кривое, убогое.
Уже пожалел, что связался с этими процами.
Странно все это.
MIPS довольно уверенно лидирует на рынке embedded-настольно-consumer девайсов: мелкие и средние роутеры, Set Top Boxes, digital video & audio. Т.е. в тех областях, где ими занимаются серьезные фирмы. И что, куча девелоперов сидит на кривых средствах разработки во имя каких-то непонятных целей? blink.gif

Может, правильные средства разработки еще не ...и?

ARM уверенно лидирует на рынке портативных деайсов и простых контроллеров с FLASH.

MIPS FLASH контроллеры мне известны одни - от Тошибы
TX19 Family
http://www.semicon.toshiba.co.jp/eng/prd/m.../td/td_all.html
andk
Цитата(Evgeny_CD @ Jan 23 2006, 20:02) *
Странно все это.
И что, куча девелоперов сидит на кривых средствах разработки во имя каких-то непонятных целей?


Спасибо за ссылку, посмотрю.

Цитата(Evgeny_CD @ Jan 23 2006, 20:02) *
Может, правильные средства разработки еще не ...и?


Ну может и не с...и smile.gif

Кроме досады на каждом шагу у меня других положительных чуств не возникло.
То не поддерживают мой проц, то кривое как у выше описанного, то еще какая фигня.
Вроде и процы хорошие а время я убиваю на вылавливание плохо документированных фич, поиск ошибок в "примерах" и на борьбу с софтом. Про гнутый софт - отдельная песня.

Скомпилировал проект в грин хиле - не могу загрузить в проц!
Фантастика!
ELF не грузится, потому что как выяснилось, IDTSIM(монитор/отладчик живущий в пзу)
может грузить только 6 программных секций, а грин хил, который вобщем-то на бумаге поддерживает этот IDTSIM делает запросто 16 секций.
Ну ладно, не можешь ELF - грузи Srec. Фиг там!!!
Вчера дошел до очередного сладкого места - при превышении какого-то обьема кода при загрузке грин хил не дожидается от IDTSIMа промпта-готовности и говорит "тайм-аутнах". Настройка тайм-аута есть, но не работает.
Все.
Приплыл.
Сижу и думаю "Ну что, еще и загрузчик свой писать с отладчиком?"

С другой стороны я уже почти созрел купить нормальный софт, только куда смотреть?
Evgeny_CD
Цитата(andk @ Jan 23 2006, 19:40) *
Скомпилировал проект в грин хиле - не могу загрузить в проц!
Фантастика!
ELF не грузится, потому что как выяснилось, IDTSIM(монитор/отладчик живущий в пзу)
может грузить только 6 программных секций, а грин хил, который вобщем-то на бумаге поддерживает этот IDTSIM делает запросто 16 секций.
Ну ладно, не можешь ELF - грузи Srec. Фиг там!!!
Вчера дошел до очередного сладкого места - при превышении какого-то обьема кода при загрузке грин хил не дожидается от IDTSIMа промпта-готовности и говорит "тайм-аутнах". Настройка тайм-аута есть, но не работает.
Все.
Приплыл.
Сижу и думаю "Ну что, еще и загрузчик свой писать с отладчиком?"

С другой стороны я уже почти созрел купить нормальный софт, только куда смотреть?
Ну а если http://www.macraigor.com/ через Wiggler & JTAG?

Еще есть стандартный MIPS лоадер YAMON.
andk
Спасибо за ответы.
Поплакался в жилетку, блин, легче стало smile.gif
Грин хил снес к черту, буду расковыривать SDE-MIPS от MIPS.org (бывший Algoritmics) - весь ГНУтый насквозь.
Evgeny_CD
Цитата(andk @ Jan 24 2006, 07:19) *
...Грин хил снес к черту, буду расковыривать SDE-MIPS от MIPS.org (бывший Algoritmics) - весь ГНУтый насквозь....
это оно?
http://www.mips.com/content/Products/Softw...te/content_html
mips.org что-то у меня не открывается.

Еще сборка GNU тулзов. Хоть и первоначально ориентирована на PPC, но MIPS и ARM вполне нормально поддерживает.
http://www.denx.de/wiki/DULG/ELDK
http://www.denx.de/wiki/view/DULG/ELDKAvailability
andk
Угу, оно. MIPS.com, вы правы.

Спасибо за ссылки, посмотрю
palito
Цитата(Evgeny_CD @ Jan 23 2006, 20:24) *
С другой стороны я уже почти созрел купить нормальный софт, только куда смотреть?

Ну а если http://www.macraigor.com/ через Wiggler & JTAG?
Еще есть стандартный MIPS лоадер YAMON.


Извиняйте, что вклиниваюсь....

Опыта работы с GHS MULTI у меня нет, всё что делал под MIPS делал на GNU ELDK - особых проблем не заметил. Работал совсем немного (факультативно wink.gif) по этому грузил bin (loader ADAM2) путём отпаивания flash, её программирования в программаторе и обратного запаивания... потом, уже через ADAM2 грузил Linux. Вот сам буквально вчера озадачился "более современными" методами работы с процем... jtag.

Долго смотрел на jtag адаптеры от GHS - вроде описано всё красиво, да и с MULTI должно работать на ура. Правда вот цены кусаются... Самый простенький адаптер http://www.ghs.com/products/slingshot.html стоит $990... Но зато привлекает его универсальность.

MIPS® SDE - не пробовал, в linux перезагружаться некогда...

Скачал с MIPS.com Multi® 4.0.7 includes integration with MIPSsim™ Simulator - видимо демо, но пощупать хочется.

Сейчас паяю Wiggler - посмотрю, что с ним можно сделать по отношению к MIPS.
Evgeny_CD
Цитата(palito @ Jan 24 2006, 15:08) *
...потом, уже через ADAM2 грузил Linux...
Это оно?
http://seattlewireless.net/?ADAM2
palito
Да, то самое.

Сейчас запаял Wiggler, используя OCD Commander пытаюсь провести отладку... Шагает, показывает регистры ... как читать память ещё не понял. Ну и тормоза с этим Wiggler.... пока пустой цикл на 0хFFFF отработает можно и пообедать и поспать wink.gif
andk
Ух ты! А что уже есть Multi 4.07? А где бы его качнуть?
И про Адама я не знал. Смотрю на него усиленно smile.gif

>>MIPS® SDE - не пробовал, в linux перезагружаться некогда...
Да она виндовая, не нужно никуда перегружаться...
palito
Да качнуть его можно прямо с mips.com
ftp://ftp.mips.com/pub/ghs/Windows/GHS_407_Windows.zip
Вот только ни лицензии ни лекарства нет sad.gif ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.