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