Micro2440

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Micro2440

Micro2440 von FriendlyARM

Das Micro2440 ist im Prinzip wie das Mini2440 nur das es keine 64/128MB Flash Variante gibt. Aufgebaut ist es als Stamp-Modul welches meistens mit einem SDK-Bord, der Peripherie und wahlweise einem 3,5" / 7" TFT oder einen LCD2VGA Adapter.

Technische Daten (Stamp Modul)

Micro2440.jpg
Dimension: 63 x 52 mm
CPU: 400 MHz Samsung S3C2440A ARM920T (Max freq. 533 MHz)
RAM: 64 MB SDRAM, 32 bit 100 MHz Bus
Flash: 64 MB / 128 MB / 256 MB / 1GB NAND Flash and 2 MB NOR Flash with BIOS
User Outputs: 4x LEDs Expansion headers (2.0mm)
Debug: 10 pin JTAG (2.0mm)
OS Support: Android, Linux 2.6, Windows CE 5 and 6

Technische Daten (SDK-Board)

Micro2440-SDK.jpg
Dimension: 180 x 130 mm
EEPROM: 1024 Byte 24C08 (I2C)
Ext. Memory: SD-Card socket
Serial Ports: 3x DB9 connector (RS232)
USB: 4x USB-A Host, 1x USB-B Device
Audio Output: 3.5 mm stereo jack
Audio Input: 3.5mm jack (mono)
Ethernet: RJ-45 10/100M (DM9000)
RTC: Real Time Clock with battery
Beeper: PWM buzzer
Camera: 20 pin Camera interface
LCD: Connector for FriendlyARM Displays (3,5" and 7") and VGA Board
Touch Panel: 4 pin
User Inputs: 6x push buttons and 1x A/D pot
Expansion header (2.0mm)
Power: 5V connector, power switch and LED

U-Boot

U-Boot aus den Quellen Bauen

Leider kann der vivi-Bootlader nicht viel. Vivi unterstützt nur yaffs2 Kernel Images, daher ist es sinnvoll diesen durch den U-Boot-Bootloader auszutauschen. Ich benutze U-Boot aus dem OPENMOKO Projekt für das Micro2440 mit 256MB. Für den Anfang sollte abgewägt werden, ob der vivi-Bootloader reicht. Im Fehlerfall kann dieser wieder per jtag wieder eingespielt werden.

Voraussetzungen dafür ist ein Crosscompiler z.b. der von Codesourcery.

Build Verzeichnis Anlegen und git Res. laden: <c> mkdir uboot ; cd uboot git clone git://repo.or.cz/u-boot-openmoko/mini2440.git </c> Sourcen fürs micro2440 einstellen und Compilieren: <c> cd mini2440 export CROSS_COMPILE=arm-none-linux-gnueabi- make mini2440_config make all </c> Ein Fertiges U-Boot gibt es auch für die 256MB Version. Datei:UBoot-256MB.bin

U-Boot Flash’en

Bootswitch S2 auf NOR stellen, und wen vivi erscheint "q" (vivi Console) drücken, wir wollen u-Boot ab Adresse 0x32000000 haben dieses machen wir mit folgenden Befehl. <c> load ram 0x32000000 <uboot bin file grösse in bytes> u-boot </c> vivi wartet nur auf die Datei unter Linux wird das mit folgenden Befehl hochbeladen über USB. <c> sudo s3c2410_boot_usb u-boot.bin </c> Als nästes wollen wir das uBoot starten dazu springen wir in den Speicherbereich wo wir das uBoot hin geladen haben. <c> go 0x32000000 </c> Wenn das geklappt hat sollte die uBoot Shell angezeigt werden (MINI2440). Als nächstes bereiten wir den NAND vor.

NAND Löschen: <c> nand scrub </c> BAD Block Tabelle erstellen(Dauert etwas): <c> nand createbbt </c> uBoot in den NAND schreiben: <c> nand write.e 0x32000000 0x0 <uBoot bin grösse in hex> </c> NAND Partitionieren: <c> dynpart </c> Environment Speicher einrichten: <c> dynenv set u-boot_env </c> Enviroment Parameter sichern: <c> saveenv </c> So das wars jetzt noch das Bord ausschalten und S2 wieder auf NAND stellen und schon sollte euch das uBoot begrüßen.

Kernel/Filesystem

Kernel aus den Quellen Bauen

Jetzt steht man vor der Wahl welchen Kernel man nimmt egal ob EMDebian, Gentoo oder Android brauchen tut man ihn so oder so, die fertigen Kernel von friendlyarm.net können nur VFAT,JFFS2 daher eignen sich diese nur bedingt für ein System z.b. auf SD/USBStick oder Ext. Platte, Also ist es sinnvoll diesen sich selber zu bauen dieses ist nicht wirklich schwer.

Als erstes Besorgen wir uns den Kernel und entpacken ihn: <c>

 mkdir micro2440
 cd micro2440
 git clone git://repo.or.cz/linux-2.6/mini2440.git linux-2.6.32-rc8

</c> Als nächstes laden wir die Default Config und erstellen die .Config für das Micro2440 <c>

  cd linux-2.6.32-rc8
  CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make mini2440_defconfig

</c> Wenn man noch etwas ändern möchte z.b. ext3 Kernelmodule ...: <c>

  CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make menuconfig

</c> Den Kernel anschließend kompilieren: <c>

  CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make

</c> Später kann man noch die Module auf die SD-Karte kopieren. <c>

  CROSS_COMPILE=arm-softfloat-linux-gnueabi- ARCH=arm INSTALL_MOD_PATH=/mnt make modules_install

</c> Als letztes muss man noch das Kernel Image für uboot vorbereiten d.h. aus dem zImage(für vivi) machen wir ein uImage für uBoot. <c>

  cd .../arch/arm/boot
  mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage

</c>

Filesystem erstellen

emDebian

Gentoo

Android

LINKS/Downloads

s3c2410 USB DL Tool für Linux

Crosscompiler von CodeSourcery