Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IXP425 дышит ли проц?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
maxcy
Есть плата сделана по образу и подобию KIT-a под проц IXP425. Но стандартный REDBOOT не дышит. Решили написать програмку чтобы зоморгал проц светодиодами. Но вот беда даже не предпологаем как это сделать. подскажить кто знает как создать бинарник для проца чтобы просто поморгать.
amw
Цитата(maxcy @ Apr 7 2008, 13:43) *
Есть плата сделана по образу и подобию KIT-a под проц IXP425. Но стандартный REDBOOT не дышит. Решили написать програмку чтобы зоморгал проц светодиодами. Но вот беда даже не предпологаем как это сделать. подскажить кто знает как создать бинарник для проца чтобы просто поморгать.

Сначала по вопросу.
В общем так-же как и для любого ARM процессора.
Как я понимаю, у Вас есть, ну по крайней мере должен быть, компилятор для IXP425 для Linux.
Пишете программу мигания светодиодом, подсовываете свой собственный скрипт линкера с правильным распределением адресов. Выводите бинарик и прошиваете его во флеш.
Хотя лучше взять компилятор для ARM7TDMI. С ним будет гораздо проще.

По RedBoot.
Вы его прошивали во флаш как? Откуда брали винарик для прошивки? А этот бинарик точно тот, что Вам нужен?

1) Intel дает мануалы, в которых описаны все ситуации. Читайте.
2) Intel дает четыре варианта (вообще-то 8, но это с NPE и без, а Вас касаются четыре).
2.1) Little Endian, RAM
2.2) Little Endian, ROM
2.3) Big Endian, RAM
2.4) Big Endian, ROM
Вам, как я догадываюсь, нужен Big Endian, ROM. Прошить его во флеш через JTAG.
Чем шьете? Не забудте про byte-swap. Это должен делать программатор.
Я использовал jtag с http://openwince.sourceforge.net/jtag/. Он это делать умеет.
Примеры скриптов прилагаются.
maxcy
Цитата(amw @ Apr 7 2008, 15:12) *
Сначала по вопросу.
В общем так-же как и для любого ARM процессора.
Как я понимаю, у Вас есть, ну по крайней мере должен быть, компилятор для IXP425 для Linux.
Пишете программу мигания светодиодом, подсовываете свой собственный скрипт линкера с правильным распределением адресов. Выводите бинарик и прошиваете его во флеш.
Хотя лучше взять компилятор для ARM7TDMI. С ним будет гораздо проще.

По RedBoot.
Вы его прошивали во флаш как? Откуда брали винарик для прошивки? А этот бинарик точно тот, что Вам нужен?

1) Intel дает мануалы, в которых описаны все ситуации. Читайте.
2) Intel дает четыре варианта (вообще-то 8, но это с NPE и без, а Вас касаются четыре).
2.1) Little Endian, RAM
2.2) Little Endian, ROM
2.3) Big Endian, RAM
2.4) Big Endian, ROM
Вам, как я догадываюсь, нужен Big Endian, ROM. Прошить его во флеш через JTAG.
Чем шьете? Не забудте про byte-swap. Это должен делать программатор.
Я использовал jtag с http://openwince.sourceforge.net/jtag/. Он это делать умеет.
Примеры скриптов прилагаются.

Значится так сначала мы баловались на ките, перепрошивали флешку програматором и вставляли в панельку. Компилили под линуксом исходники RedBoot 1.94. вобщем на ките моргали светодиодами. Потом перешли к нашей плате подправили RedBoot, но некаких признаков жизни не получили. постарались всунуть код мигания как можно ближе к началу загрузки. Вобщем ничего нам это не дало. И поскольку мы вообщето чайни в этих делах то не понимаем сам процес компиляции под линуксом. как сделать прожку моргнуть и всё. Привыкли блин к средам разработки под виндой, где как говорится всё включено в пакет програмирования. Я так подозреваю что всё дело в makefile но как это пределать мы "0"! smile.gif
amw
Цитата(maxcy @ Apr 7 2008, 14:25) *
Значится так сначала мы баловались на ките, перепрошивали флешку програматором и вставляли в панельку. Компилили под линуксом исходники RedBoot 1.94. вобщем на ките моргали светодиодами. Потом перешли к нашей плате подправили RedBoot, но некаких признаков жизни не получили. постарались всунуть код мигания как можно ближе к началу загрузки. Вобщем ничего нам это не дало. И поскольку мы вообщето чайни в этих делах то не понимаем сам процес компиляции под линуксом. как сделать прожку моргнуть и всё. Привыкли блин к средам разработки под виндой, где как говорится всё включено в пакет програмирования. Я так подозреваю что всё дело в makefile но как это пределать мы "0"! smile.gif

А зачем пересобирать RedBoot? Память отличается от кита? Тип или размер?
Перекомпилить RedBoot, поставить в него другую флешку и прошить. RedBoot не править!!! Добиться работоспособности RedBoot на ките.
Кит IXDP425? Там в комплекте вторая флешка с загрузчиком vxworks. Чтоб не запортить единственную рабочую - тренируйтесь на ней.

Есть программист для микроконтроллеров? Желательно ARM. Если есть такой - он раскажет как сделать это.
Чтоб программа работала без ОС нужно в этой рограмме все сделать вручную. Т.е. инициализацию процессора, стека, памяти, секций .data и .bss, периферию, и потом мигать светодиодами. Линкер должен все это разместить в памяти - то есть нужно скрипт линкера писать.
Никаких libc (glibc, uclibc и прочих) использовать нельзя, потому как они расчитаны на операционную систему, которой а Вас пока нет.
В общем, попробуйте сначала скомпилить RedBoot и заставить его работать на ките.
А потом акуратно внося изменения в инициализацию SDRAM подкоректируйте и прошейте в свою плату.

На этом этапе никаких Makefile Вам писать не надо. Пользуйтесь тем, что есть в RedBoot.
Да, а компилер Вы какой используете? Случайно не gcc хоста? Это вопрос так, из параноидальных соображений, но все-же.

А в Вашей плате процессор к флешке обращается?
Что осцилограф показывает?
maxcy
Цитата(amw @ Apr 7 2008, 16:16) *
А зачем пересобирать RedBoot? Память отличается от кита? Тип или размер?
Перекомпилить RedBoot, поставить в него другую флешку и прошить. RedBoot не править!!! Добиться работоспособности RedBoot на ките.
Кит IXDP425? Там в комплекте вторая флешка с загрузчиком vxworks. Чтоб не запортить единственную рабочую - тренируйтесь на ней.

Есть программист для микроконтроллеров? Желательно ARM. Если есть такой - он раскажет как сделать это.
Чтоб программа работала без ОС нужно в этой рограмме все сделать вручную. Т.е. инициализацию процессора, стека, памяти, секций .data и .bss, периферию, и потом мигать светодиодами. Линкер должен все это разместить в памяти - то есть нужно скрипт линкера писать.
Никаких libc (glibc, uclibc и прочих) использовать нельзя, потому как они расчитаны на операционную систему, которой а Вас пока нет.
В общем, попробуйте сначала скомпилить RedBoot и заставить его работать на ките.
А потом акуратно внося изменения в инициализацию SDRAM подкоректируйте и прошейте в свою плату.

На этом этапе никаких Makefile Вам писать не надо. Пользуйтесь тем, что есть в RedBoot.
Да, а компилер Вы какой используете? Случайно не gcc хоста? Это вопрос так, из параноидальных соображений, но все-же.

А в Вашей плате процессор к флешке обращается?
Что осцилограф показывает?

Я ж и говорю на ките мы RedBoot запускаем без вопросов, и моргаем светодиодами, а вот плата наша мертвецом лежит, к флешке вроде обращается сигналы какито ставит, но посеольку частота огогенная, то соответственно понять правильно ли оно обращается нереально. Вот а щас глянул что к оперативке он всегда на третий банкобращается не знаю правильно ли это.
AlexandrY
Вы KIT один в один скопировали? Из герберов или имели полный проект платы в EDA?
Если трассировали сами, то даже не берусь че-то советовать.
А так мертвые платы поднимают через JTAG.
GCC тут плохой помошник.
Возьмите пакет RealView и JTAG адаптер Multi-ICE.
В RealView есть профиль цепочки JTAG для IXP425
Если Multi-ICE задорого покажется, то можно прикупить кажется за 70$ клон адаптера J-Link.
Он поддерживает интерфейс RDI который в свою очередь поддерживает RealView.
Можно пытаться даже Wiggler присобачить, но это уже на любителя.

Далее пытаетесь без всякой инициализации залить через JTAG простую прогу во внутреннюю RAM проца. В IXP вроде есть какие-то несчастные 8 Кб в движке очередей мапированные на общее пространство.
Вот эта прога и может пытаться поморгать светодиодом, правда придется еще завести соответствующую шину и порт.


Цитата(maxcy @ Apr 7 2008, 16:20) *
Я ж и говорю на ките мы RedBoot запускаем без вопросов, и моргаем светодиодами, а вот плата наша мертвецом лежит, к флешке вроде обращается сигналы какито ставит, но посеольку частота огогенная, то соответственно понять правильно ли оно обращается нереально. Вот а щас глянул что к оперативке он всегда на третий банкобращается не знаю правильно ли это.
Andrew2000
Цитата(AlexandrY @ Apr 7 2008, 19:41) *
Если Multi-ICE задорого покажется, то можно прикупить кажется за 70$ клон адаптера J-Link.

J-Link раньше (год назад) XScale не поддерживал. Только Wiggler (LPT или USB) - для штоб задышало - самое то.
И ручками + утилиты от макраигора его потрогать:
http://www.macraigor.com/ocd_cmd.htm

А компилятор можно тут взять:
http://www.macraigor.com/full_gnu.htm
maxcy
это всё конечно хорошо, но сетуация ещё сложнее чем вы можете себе представить. У нас Jtag не выведен, ну короче нету его wacko.gif

Да и ещё один попутный вопрос, подскажите что можно почитать по начальной инициализации таких процов. В документации мы чё т ничё путного не нашкрябали.
Andrew2000
Тогда сюда можно:
http://www.rowley.co.uk/arm/index.htm
+
http://www.rowleydownload.co.uk/arm/packages/XScale.htm

вроде, там должны быть простейшие примеры
amw
Цитата(maxcy @ Apr 8 2008, 10:49) *
это всё конечно хорошо, но сетуация ещё сложнее чем вы можете себе представить. У нас Jtag не выведен, ну короче нету его wacko.gif

Да и ещё один попутный вопрос, подскажите что можно почитать по начальной инициализации таких процов. В документации мы чё т ничё путного не нашкрябали.

А как Вы флешку програмируете без JTAG?

А что скачать с сайта Intel нельзя?
25248006.pdf - Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor Developer’s Manual
http://www.intel.com/design/network/produc...docs/ixp4xx.htm
Читаем раздел GPIO, инициализируем его и мигаем светодиодом.


И проверте, что у Вас на плате за сигналы подаются на те пины, к которым на ките припаяны переключатели SW2, SW3, SW4.
Там задается конфигурация при сбросе, в том числе и конфигурация флеш памяти.
maxcy
Цитата(amw @ Apr 8 2008, 15:48) *
А как Вы флешку програмируете без JTAG?

А что скачать с сайта Intel нельзя?
25248006.pdf - Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor Developer’s Manual
http://www.intel.com/design/network/produc...docs/ixp4xx.htm
Читаем раздел GPIO, инициализируем его и мигаем светодиодом.
И проверте, что у Вас на плате за сигналы подаются на те пины, к которым на ките припаяны переключатели SW2, SW3, SW4.
Там задается конфигурация при сбросе, в том числе и конфигурация флеш памяти.

1. в ките у нас панелька с флешкой, поэтому мы её вынимаем и перепрошиваем и назад ставим.
2. инициализация GPIO, само по себе ничё не дпёт, мы так подозриваем что необходимо провести начальную инициализацию проца (ну там выделить память и т.д.).
3. и почему то мы не находим на плате переключателей SW2, SW3, SW4.
4. а кит у нас такой http://www.intel.com/design/network/produc...ntation_kit.htm
amw
Цитата(maxcy @ Apr 8 2008, 17:21) *
1. в ките у нас панелька с флешкой, поэтому мы её вынимаем и перепрошиваем и назад ставим.
2. инициализация GPIO, само по себе ничё не дпёт, мы так подозриваем что необходимо провести начальную инициализацию проца (ну там выделить память и т.д.).
3. и почему то мы не находим на плате переключателей SW2, SW3, SW4.
4. а кит у нас такой http://www.intel.com/design/network/produc...ntation_kit.htm


Во первых! Согласно данному Вами линку. в этом ките нет панельки на флеш. ixdpg425_user_guide.pdf, Page 10, Figure 2.
Во вторых! 2) Как Вы прошиваете ВАШИ платы?
В третьих! Согласно данному Вами линку. ixdpg425_user_guide.pdf, Page 15, Table 5.

Напишите маленькую програмку на ассемблере, слинкованную для флеш без ремапа и использующую только регистры. Без кешей и SDRAM.
maxcy
Цитата(amw @ Apr 8 2008, 19:53) *
Во первых! Согласно данному Вами линку. в этом ките нет панельки на флеш. ixdpg425_user_guide.pdf, Page 10, Figure 2.
Во вторых! 2) Как Вы прошиваете ВАШИ платы?
В третьих! Согласно данному Вами линку. ixdpg425_user_guide.pdf, Page 15, Table 5.

Напишите маленькую програмку на ассемблере, слинкованную для флеш без ремапа и использующую только регистры. Без кешей и SDRAM.

панельки там не нарисованы но на нашем ките они есть.
amw
Цитата(maxcy @ Apr 9 2008, 10:05) *
панельки там не нарисованы но на нашем ките они есть.

Вы предпочитаете читать посты и отвечать на самые незначительные вопросы?
maxcy
Цитата(amw @ Apr 8 2008, 19:53) *
Во первых! Согласно данному Вами линку. в этом ките нет панельки на флеш. ixdpg425_user_guide.pdf, Page 10, Figure 2.
Во вторых! 2) Как Вы прошиваете ВАШИ платы?
В третьих! Согласно данному Вами линку. ixdpg425_user_guide.pdf, Page 15, Table 5.

Напишите маленькую програмку на ассемблере, слинкованную для флеш без ремапа и использующую только регистры. Без кешей и SDRAM.

Очень помогли спасибо. Оказывается когда тросировали плату просто случайно недогледели. И подтяжки на конфигурацию проца непоставили. Вобщем пока ждём когда нам запаяют подтяжки и продолжим наладку.
AlexandrY
Круто! Считай баксов 1000 выкинули на ветер.
6-8-и слойная плата + маска + пайка + накладные на бессмысленное ковыряние.
Если у вас столько денег, то на BGA тоже есть колодки с интерфейсными ответвлениями (JTAG например), паяйте сразу их, а то вдруг еще че забыли страссировать. biggrin.gif

Цитата(maxcy @ Apr 9 2008, 13:51) *
Очень помогли спасибо. Оказывается когда тросировали плату просто случайно недогледели. И подтяжки на конфигурацию проца непоставили. Вобщем пока ждём когда нам запаяют подтяжки и продолжим наладку.
maxcy
Подскажите Дезасемблятор для IXP 425. Просто флешку вроде читает, а работать коректно не хочет sad.gif
amw
Цитата(maxcy @ Apr 10 2008, 15:33) *
Подскажите Дезасемблятор для IXP 425. Просто флешку вроде читает, а работать коректно не хочет sad.gif

arm-linux-objdump
А что Вы хотите дизассемблировать?
Дизассемблировать RedBoot (например) по считанному из флеш файлу почти невозможно.
Потому как там код и данные в перемешку.
maxcy
Цитата(amw @ Apr 10 2008, 17:30) *
arm-linux-objdump
А что Вы хотите дизассемблировать?
Дизассемблировать RedBoot (например) по считанному из флеш файлу почти невозможно.
Потому как там код и данные в перемешку.

дело в том что у нас есть исходник RedBoota и мы хоти понять что в самом начале происходит, потому как проц считывает с флэхи буквально 10 мс. А остальное время мёртвый. Хоти понять чё он вешается.
maxcy
Подскажите плз компилятор под XP для этого проца. Мы пользуемся под линуксом тот что вместе с бутом прилагался. Но разобратся в нём достаточно сложно. Может есть чёт для винды.
amw
Цитата(maxcy @ Apr 10 2008, 16:44) *
дело в том что у нас есть исходник RedBoota и мы хоти понять что в самом начале происходит, потому как проц считывает с флэхи буквально 10 мс. А остальное время мёртвый. Хоти понять чё он вешается.

По прежнему вопрос: как Вы шьете свою плату? Какой RedBoot Вы получаете: RAM, ROM, LE, BE, NPE?
За 10мс он как раз успеет полезть в ОЗУ. И там могут быть грабли.
Если на пальцах и ооооочень сильно упрощенно, RedBootделает следующее.
1. Инициализация подсистемы памяти, GPIO, ExpBus.
2. Переводит процессор в BE режим если надо.
3. Инициализация последовательного порта.
4. Инициализация NPE если надо.
5. Инициализация Ethernet если надо.
6. Инициализауия FIS.
7. Попытка считать конфигурацию из флеш.
8. Если 7 успешно - выполнить что указано, в противном случае выводит приглашение на последовательный порт.
Проверяйте дальше железо и конфигурацию RedBoot.

Цитата(maxcy @ Apr 10 2008, 18:54) *
Подскажите плз компилятор под XP для этого проца.

Понятия не имею. Видел на сайте Intel можно купить компилер для него под винду.
Цитата
Мы пользуемся под линуксом тот что вместе с бутом прилагался. Но разобратся в нём достаточно сложно.

А что там есть?
AlexandrY
На фтп просто море таких компиляторов:
RealView, IAR, Multi, CrossWorks, VisualStudio и т.д.

Цитата(maxcy @ Apr 10 2008, 19:24) *
Подскажите плз компилятор под XP для этого проца. Мы пользуемся под линуксом тот что вместе с бутом прилагался. Но разобратся в нём достаточно сложно. Может есть чёт для винды.
maxcy
во нормально, задышало. Причины оказалось орсновных две. Не сконфигурирован был конфигурационный регистр и вешается RedBoot так и не проинициализировав Uart. Поэтому, всем огромное спасибо!
maxcy
Решил темы не плодить а спросить здесь. Короче делаем ещё один девайс, теперь решили на IXP430, так как 425 вроде не рекомендуют в новых наработках. В общем сделали, вроде как запустили только вот температура корпуса градусов так 65 по Цельсию. А 425 работая на всю гашетку градусов 45. Возник вопрос почему. Понятное дело цепи проверили короткого нету плата в местах проводников не нагревается, проц работает в консоль отвечает. И причом нагревается даже без флешки то есть без проекта. Нагрев происходит достаточно быстро потом температура больше не нарастает.
VslavX
Цитата(maxcy @ Jun 16 2010, 16:57) *
на IXP430, так как 425 вроде не рекомендуют в новых наработках. В общем сделали, вроде как запустили только вот температура корпуса градусов так 65 по Цельсию. А 425 работая на всю гашетку градусов 45. Возник вопрос почему.

DDR как затерминирована? Контроллер памяти может потреблять заметно, особенно если резисторы на VTT небольшие.
maxcy
как советовали в документациях, в основном 20, 22 ома.
VslavX
Цитата(maxcy @ Jun 18 2010, 10:18) *
как советовали в документациях, в основном 20, 22 ома.

DDR-266/400 уже как бы и промоделировать не грех smile.gif. Рекомендации то дело такое - общее. Я обычно стараюсь при моделировании номиналы резисторов побольше выбрать - в VTT поменьше уйдет - типовые значения Rs/Rt получаются 33/56 Ом.
А вообще, я бегло глянул - ixp43x уже до 3.7W кушать может, против 2.6W ixp42x (1.6W typ @533MHz), так что рост температуры вполне оправданный.
maxcy
Мда разница в 1 Вт, для такого корпуса даст прирост температуры. Спасибо что откликнулись.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.