pld embedded - port pld dla arm9
Radosław Kintzi
radek w rakin.eu.org
Pon, 8 Sie 2005, 11:40:37 CEST
Pisałem parę dni temu na pld-users-pl, że przydałoby mi się
środowisko/narzędzia do tworzenia obrazów systemu (Linuksa - najlepiej
PLD) dla urządzeń wbudowanych (w tej chwili platforma docelowa, która
mnie interesuje to EP9312 [1] - bazuje to na ARM9). Coś o czym pisał
kiedyś Tomasz Jadowski [2].
Wydaje mi się, że najlepszym rozwiazaniem byłoby stworzenie miniportu
PLD dla ARMa. Coś takiego jak [5]. Oto oprogramowanie jakie potrzebuję
(chciałbym w tym widzieć):
- kernel-2.4 oraz kernel-2.6
- binutils-2.16.91.0.2
- gcc-3.3.5
- newlib lub uClibc (nie wiem czy to pierwsze się nadaje)
- automake/autoconf
- nano-x/microwindows oraz thiny-x
- wxWidgets dla nano-x/microwinodws
To co chciałbym uzyskać, to móc sobie zrobić poldek --sn pld4arm9 --root
arm-root --install-dists --pset ...., a potem genext2fs ... i mieć
gotowy system do wrzucenia na flesha.
Mam teraz kilka pytań na temat cross-kompilacji i towrzenia portów
embedded (zaznaczam, że moje doswiadczenie w tym temacie jest raczej
żadne, a wiedza to kilka dni googlowania):
1. Jak wygląda proces tworzenia cross-kompilatora? Na
http://billgatliff.com/~bgat/twiki/bin/view/Crossgcc/WebHome jest
opisany taki proces, który składa się z trzech części:
- kompilacja bootstrapowego kompilatora (bez biblioteki libc -
--without-headers)
- kompilacja bootstrapowym kompilatorem biblioteki libc
- kompilacja kompilatora w otoczeniu biblioteki libc
Czy ten proces nadal obowiązuje w serii 3.x kompilatora gcc? - gdziś
wyczytałem, że --without-headers jest zepsute (nie działa od wersjach 3.x).
Na
http://billgatliff.com/~bgat/twiki/bin/view/Crossgcc/BuildBootstrapGcc
stoi napisane, że ten proces obowiązuje w przypadku targetów, na ktorych
nie działa linuks. Kiedy kod ma być uruchamiany w Linuksie wymagane są
nagłówki kernela oraz nagłówki biblioteki libc w pierwszym etapie. Czy
wówczas trzeci etap też jest potrzebny?
2. Czy newlib nadaje się jako biblioteka libc dla Linuksa embedded? To
pytanie ma związek z tym co napisałem w poprzednim akapicie.
3. Crt0/Startup code. Czy to jest potrzebne również w przypadku kiedy
używamy Linuksa na docelowej maszynie, czy tylko w sytuacji, kiedy
uruchamiamy program bez systemu operacyjnego?
4. Co jest jeszcze potrzebne, żeby przygotować builder pod taki port
PLD? Ile czasu może to zająć (osobie, która nie ma doświadczenia) i czy
mogę liczyć na Waszą pomoc (głównie chodzi o konsultacje niż o pracę
przy poprawianiu specy). Myślę, że uda mi się wyciągnąć od firmy maszynę
na taki builder, pod warunkiem, że takie przedsięwzięcie będzie miało
szansę realizacji (w rozsądnym czasie)
Pozdr,
Radosław Kintzi
Linki (proszę uzupełnić):
[1] http://www.cirrus.com/en/products/pro/detail/P131.html
[2]
http://lists.pld-linux.org/mailman/pipermail/pld-embedded-pl/2004-July/000000.html
[3] http://buildroot.uclibc.org/ - narzędzia (zestaw Makefili) do
budowania (wielu) programów dla różnych małych arch oraz generowania
obrazów z linuksem gotowych do wrzucenia np. na flesha.
[4] http://www.scratchbox.org/ - środowisko cross-kompilacj, którego
obecnie (z niemałym powodzeniem) używamy. Problem jest z uaktualnianim
oprogramowania, generowaniem obrazów i utrzymywaniem spójności
środowiska na różnych workstacjach.
[5] http://www.netwinder.org/ - dystrybucja oparta na rpmach
optymalizowana dla arm
[6] http://billgatliff.com/~bgat/twiki/bin/view/Crossgcc/WebHome - The
Crossgcc Wiki
Więcej informacji o liście dyskusyjnej pld-devel-pl