Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MIPSel & FreeBSD
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
cryax
Здравствуйте.

Необходимо заставить работать FreeBSD на роутере Asus WL-500W. Проц роутера имеет архитектуру MIPSel. Будет ли на нём работать ядро скомпилированное для архитектуры MIPS? К сожалению нигде не нашёл инфы по MIPSel - какие у него отличия от MIPS. На форуме разработчиков в разделе 'embedded' вот что пишут - http://forums.freebsd.org/showthread.php?t=161 .
amw
Цитата(cryax @ Feb 10 2009, 13:41) *
Здравствуйте.

Необходимо заставить работать FreeBSD на роутере Asus WL-500W. Проц роутера имеет архитектуру MIPSel. Будет ли на нём работать ядро скомпилированное для архитектуры MIPS? К сожалению нигде не нашёл инфы по MIPSel - какие у него отличия от MIPS. На форуме разработчиков в разделе 'embedded' вот что пишут - http://forums.freebsd.org/showthread.php?t=161 .

У меня тулчейн под MIPS
mipsel-linux-gcc симлинк на mips-linux-gcc
el/bl = endian little/endian big
О том что MIPSel это какое-то отдельное ядро, отличающееся от MIPS никогда не слышал.

http://www.debian.org/ports/mips/
Цитата
The MIPS port is actually two ports, debian-mips and debian-mipsel. They differ in the endianness of the binaries. MIPS CPUs are able to run at both endiannesses, but since that's normally not changeable in software, we need to have both architectures. SGI machines run in big-endian mode (debian-mips) while Digital DECstations and Cobalt Qube/RaQ run in little-endian, mode (debian-mipsel). Some boards, such as Broadcom's BCM91250A evaluation board (aka SWARM) can run in both modes, selectable by a switch on the board.

Тут еще
http://www-rocq.inria.fr/imara/wikilara/us...llinuxtoolchain
cryax
Проц в роутере Broadcom BCM4704/BCM4780 (http://oleg.wl500g.info/devices.html). Я так понял у них есть процессоры которые поддерживают обе архитектуры (MIPS и MIPSel). поддерживает ли этот - не известно.

Я так понял архитектуры отличаются длиной команд.. Так называемый MIPSel имеет короткую длину. В репозитории ядра FreeBSD недавно появилась ветвь mips.

http://wiki.freebsd.org/FreeBSD/mips

Цитата
setenv SRCROOT /usr/home/gonzo/FreeBSD/p4/mips/src
setenv KERNCONF MALTA

setenv TARGET_ARCH mips
setenv TARGET mips
setenv TARGET_CPUTYPE mips32

setenv MAKEOBJDIRPREFIX ${HOME}/FreeBSD/mips.build
cd ${SRCROOT}
make kernel-toolchain
make NO_CLEAN=yes NO_MODULES=yes TARGET_LITTLE_ENDIAN=yes buildkernel
make WITHOUT_ACPI=yes NO_CLEAN=1 TARGET_LITTLE_ENDIAN=yes NO_KERBEROS=1 \
NO_RESCUE=1 NO_MAN=1 NO_PROFILE=1 NO_GAMES=1 NO_INFO=1 buildworld


если включена опция TARGET_LITTLE_ENDIAN=yes то будет использоваться короткая длина команд.. надежда есть.? unsure.gif
demiurg_spb
Цитата(cryax @ Feb 10 2009, 16:27) *
если включена опция TARGET_LITTLE_ENDIAN=yes то будет использоваться короткая длина команд.. надежда есть.?
BIG ENDIAN или LITTLE ENDIAN никак не определяют "длину команд". Они определяют порядок следования байт в многобайтных типах данных.
amw
Цитата(cryax @ Feb 10 2009, 15:27) *
Проц в роутере Broadcom BCM4704/BCM4780 (http://oleg.wl500g.info/devices.html). Я так понял у них есть процессоры которые поддерживают обе архитектуры (MIPS и MIPSel). поддерживает ли этот - не известно.

Я так понял архитектуры отличаются длиной команд.. Так называемый MIPSel имеет короткую длину. В репозитории ядра FreeBSD недавно появилась ветвь mips.

если включена опция TARGET_LITTLE_ENDIAN=yes то будет использоваться короткая длина команд.. надежда есть.? unsure.gif

http://www.broadcom.com/collateral/pb/4703_4704-PB00-R.pdf
Там сказано в частности
Цитата
The BCM4704/BCM4703 integrate an advanced custom 400-DMIPS/
300-MHz MIPS32 core with the following:
• 2-way, set associative, 16-KB I-cache and 16-KB D-cache
• Two 10/100 Ethernet MACs
• V.92 codec interface

Т.е. ЯДРО ПРОЦЕССОРА MIPS32. И этим ВСЕ сказано об архитектуре.
Little Endian - это не длина, а порядок хранения байтов в памяти.
Например x86 - Little Endian процессор.
MIPS может быть как little endian так и big endian. Обычно процессор переключается в какой-то из режимлв либо аппаратно (конф.пин) либо программно (бит в регистре).

У gcc есть опция -mlittle-endian и -mbig-endian.
Для того, чтобы кросскомпилятор позволял задать любой из них нужно configure --enable-multilib

PS: Мне пока встречался только один процессор, с изменяемой длиной команд - ARM. Но тип endian тут нипричем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.