www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 STK1000 console auf Display


Autor: Philip H. (goldfinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte aus meinem STK1000 ein Internetradio machen.

Ich höre schon was ich will, so dass ich mir jetzt ein Menü 
(wahrscheinlich mit ncurses) zur Senderauswahl aufs Display zaubern 
möchte.

Dazu benötige ich wohl erstmal die console auf dem Display, oder? Im 
Moment knallen mir die Init-Scripte nur die beiden Bootsplash-Bilder 
aufs Display.

Mein System habe ich aus buildroot 2.3.0 mit stk1002_defconfig und 
hinzugefügtem mplayer zusammengebaut.

Wie bekomme ich die console aufs Display?

Danke,
Philip

Autor: Matricks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Philip,

Hab in etwa das selbe vor und weis mittlerweile schonmal, dass man die 
Console im Menuconfig des Kernels aktivieren muss. Das ganze geht dann 
über den Framebuffer. Ich nehm mal an du nimmst ebenfalls den 
2.6.27.6er-Kernel?! Dann gib einfach mal in deinem Buildroot-Verzeichnis 
make linux26-menuconfig ein und du findest die Option dann unter Device 
Drivers -> Graphics Support... leider hab ich es bisher auch noch nicht 
hinbekommen...
Ich hoffe ich konnte dir damit wenigstens nen Anstoß geben... falls 
jemand ne Lösung hatte würde ich mich um nen Post freuen!

Grüße,
Matricks

Autor: Udo S. (udo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schaut doch mal in das Heft 1 vom Embedded Journal.
http://www.embedded-projects.net/index.php?page_id=238

Philip H. schrieb:
> Dazu benötige ich wohl erstmal die console auf dem Display, oder?

Wieso?
Du must nur das Grafik-Device  und den Framebuffer aktivieren.

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank dir Udo, für den Hinweis auf den Artikel. Dennoch gehts noch nich. 
Sobald ich die Option "Framebuffer Console support" im Kernel-Menuconfig 
aktiviere, bleibt er beim Booten nach den folgenden Zeilen stehen:
atmel_lcdfb atmel_lcdfb.0: 600KiB frame buffer at 10249000 (mapped at b0249000)
atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10
Jemand ne Idee, woran es liegen kann, das er nicht weiterkommt?? bzw. ne 
Anleitung wie ich von meiner Default-Config vom STK1000 dazu komme, das 
er mir die Console aufm Display anzeigt! (Benutze übrigens 
U-Boot-Version 1.3.4)
Beste Grüße,
Matricks

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das grundsätzliche Problem ist bei dem STK1000 und NGW100, das der 
SD-Ram Bus nur 16bit breit ist.
Eine Methode um die underflows zu eliminieren ist, die Auflösung fürs 
Display zu reduzieren. Außerdem könnte man noch die priorisierung des 
LCDC in der HMATRIX forcieren. Dazu gibt es hier eine Info:
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

"600KiB frame buffer " sollte schon im u-boot initialisiert werden.

Autor: Philip H. (goldfinger)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, da bin ich wieder, ich musste den Rechner neu aufsetzen...

Habe den Kernel neu kompiliert und hänge am gleichen Problem wie 
Matthias:
atmel_lcdfb atmel_lcdfb.0: 225KiB frame buffer at 10380000 (mapped at b0380000)
atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10

Ein anderes Mal bootete es ein wenig weiter, ich bekam Tux und eine 
durchlaufende Console auf dem Display zu sehen, aber der Bootvorgang 
hing etwas dafür später:
atmel_lcdfb atmel_lcdfb.0: 225KiB frame buffer at 10380000 (mapped at b0380000)
atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10
Console: switching to colour frame buffer device 40x30
atmel_lcdfb atmel_lcdfb.0: fb0: Atmel LCDC at 0xff000000 (mapped at ff000000), irq 1
atmel_usart.0: ttyS0 at MMIO 0xffe01000 (irq = 7) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xffe01800 (irq = 9) is a ATMEL_SERIAL
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfff01800 irq 25 (00:04:25:19:07:b2)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:10, irq=-1)
physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0041
physmap-flash.0: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007f0000 : "root"
0x007f0000-0x00800000 : "env"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xffe00000 (irq 3)
atmel_spi atmel_spi.0: Using bounce buffer at 0x24000000 len 4096
atmel_usba_udc atmel_usba_udc.0: MMIO registers at 0xfff03000 mapped at fff03000
atmel_usba_udc atmel_usba_udc.0: FIFO at 0xff300000 mapped at ff300000
at32ap700x_rtc at32ap700x_rtc.0: rtc core: registered at32ap700x_rtc as rtc0
at32ap700x_rtc at32ap700x_rtc.0: Atmel RTC for AT32AP700x at fff00080 irq 21
at32_wdt at32_wdt.0: AT32 WDT at 0xfff000b0, timeout 2 sec (nowayout=0)
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff02400 irq 28, 1 slots
TCP cubic registered
NET: Registered protocol family 10
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
cpufreq: AT32AP CPU frequency driver
at32ap700x_rtc at32ap700x_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
mmc0: new MMC card at address 0001
mmcblk0: mmc0:0001 D0601 125440KiB
 mmcblk0: p1
Wieso lief der Bootvorgang trotz fifo underflow weiter und welches 
Problem habe ich mit meiner MMC-Karte, von er ich boote? Sonst hat es 
damit nie Probleme gegeben. Kann der Kernel sie nicht mounten? Ich habe 
sie - wie immer - in der /etc/fstab nach / gemountet.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philip H. schrieb:
> welches
> Problem habe ich mit meiner MMC-Karte, von er ich boote?

Wenn du von der Sd-Karte bootest brauchst du sie doch nicht mounten?

Ich versteh eh nicht warum ihr die alten Atmel Klamotten nehmt und nicht 
das aktuelle buildroot 2009.11. Da sind alle Teile von Atmel 
eingeflossen.

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab es jetzt mal mit buildroot 2009.11 probiert und stoße auf das 
gleiche Problem beim Initialisieren! Hier mal mein Bootvorgang:
## Booting kernel from Legacy Image at 10200000 ...
   Image Name:   Linux-2.6.30.2
   Image Type:   AVR32 Linux Kernel Image (gzip compressed)
   Data Size:    1179370 Bytes =  1.1 MB
   Load Address: 10000000
   Entry Point:  90000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 1076b008)...

Linux version 2.6.30.2 (root@mcm) (gcc version 4.2.2-atmel.1.1.3.avr32linux.1) #6 Wed Feb 3 15:06:59 CET 2010
CPU: AT32AP700x chip revision A
CPU: AP7 [01] core revision 0 (AVR32B arch revision 1)
CPU: MMU configuration: Shared TLB
CPU: features: dsp simd ocd perfctr java
CPU: Running at 140.000 MHz
Physical memory:
  10000000-107fffff
Reserved memory:
  10000000-10165d73: Kernel code
  10165d74-10204347: Kernel data
  10205000-1029afff: Framebuffer
Exception vectors start at 90013000
CPU: Paging enabled
Node 0: start_pfn = 0x10000, low = 0x10800
Node 0: mem_map starts at 9029d000
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 2032
Kernel command line: console=ttyS0 root=/dev/mmcblk0p1 fbmem=600k rootwait
NR_IRQS:288
PID hash table entries: 32 (order: 5, 128 bytes)
avr32_comparator: irq 0, 140.000 MHz
Console: colour dummy device 80x25
console [ttyS0] enabled
Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 5440k/5440k available (1355k kernel code, 2752k reserved, 118k data, 76k init)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay using timer specific routine.. 281.71 BogoMIPS (lpj=563430)
Mount-cache hash table entries: 512
net_namespace: 520 bytes
smc smc.0: Atmel Static Memory Controller at 0xfff03400
NET: Registered protocol family 16
pdc pdc.0: Atmel Peripheral DMA Controller enabled
at32_eic at32_eic.0: External Interrupt Controller at 0xfff00100, IRQ 19
at32_eic at32_eic.0: Handling 4 external IRQs, starting with IRQ 64
bio: create slab <bio-0> at 0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. © 2001-2006 Red Hat, Inc.
msgmni has been set to 16
io scheduler noop registered
io scheduler cfq registered (default)
atmel_lcdfb atmel_lcdfb.0: 600KiB frame buffer at 10205000 (mapped at b0205000)
atmel_lcdfb atmel_lcdfb.0: FIFO underflow 0x10

Hat das überhaupt schonmal jemand zum laufen bekommen... Vielleicht 
liegts auch an U-Boot (Version 1.3.4)! Da wird ja das Display ebenfalls 
verwendet! Jemand ne Idee?

Grüße,
Matthias

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Rick schrieb:
> Vielleicht liegts auch an U-Boot

Ich würde auf jedenfall auch die Uboot-Version nehmen, die buildroot 
mitbaut.
Allerdings braucht man für das NGW100 beim 2009.11er buildroot einen 
Patch fürs u-boot.
Wenn ich nachher zu Hause bin poste ich mal den link.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also... mit u-boot 2009.08 wird immerhin der Pinguin angezeigt, aber 
keine consolenausgabe... und u-boot liest auch nur eine meiner 
SD-Karten... also nicht wirklich ein fortschritt...
hab ja inzwischen auch schonmal versucht ne gui mit qt zu basteln... 
aber ich glaub da fehlt dem stk1000 RAM... da hat er zur darstellung 
eines Fensters etwa 5 minuten gebraucht! kennt jemand alternativen die 
"ordentlich" funktionieren??

Beste Grüße,
Matthias

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Rick schrieb:
> mit u-boot 2009.08 wird immerhin der Pinguin angezeigt,
sind denn die FIFO underflows weg?

Matthias Rick schrieb:
> und u-boot liest auch nur eine meiner SD-Karten...
also booten max. von 2GiB-SD-Karte.

Matthias Rick schrieb:
> kennt jemand alternativen die "ordentlich" funktionieren??
Grasshopper?

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die FIFO Underflows sind weg! Und die SD-Karte, die funktioniert hat 128 
MB ;) ! Die 2GB SD-Karte funktioniert nicht! Ich meinte mit Alternative 
eigentlich ne softwareseitige Alternative... denn das STK1000 hab ich 
da... und seit gestern auch nen JTAGICE MKII!

Autor: ... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Rick schrieb:
> Die 2GB SD-Karte funktioniert nicht!

Das ist komisch, weil ab Version 1.3.4 u-boot booten bis 2GB 
unterstützt. Das ist sicher, weil ich hier nur 2GB Karten habe :). 
Versuch mal das angefügte u-boot.

Das RAM kann man beim NGW100 aufstocken, wie das jetzt beim stk1000 
aussieht weiß ich jetzt nicht.
http://avr32linux.org/twiki/bin/view/Main/ModifyTheNGW100

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Version 1.3.4 erkennt ja auch meine 2GB-SD-Karte... die 2009.08er 
aber nicht... Zwecks RAM aufstocken hab ich bisher nur gelesen, dass es 
wohl welche gemacht haben, aber ne Anleitung hab ich noch nicht 
gefunden! Deine U-Boot-Version funktioniert bei mir leider auch nicht, 
da er die 32 MB SDRAM nicht finden kann... :(

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Rick schrieb:
> da er die 32 MB SDRAM nicht finden kann... :(

ups, sorry, hab gerade erst nachgeschaut, das Ding hat ja nur 8MB.

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell möchte ich ja nur n bissel Text aufm LCD ausgeben... quasi n 
"kleiner" MP3-Player, bei dem die Titel angezeigt werden... alles bis 
auf das Display läuft schon (dank mplayer)... jemand noch ne Idee??

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Rick schrieb:
> alles bis auf das Display läuft schon

hast du mal den fbv (iewer) in menuconfig aktiviert und kannst du Bilder 
damit anzeigen?

Autor: Philip H. (goldfinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> hast du mal den fbv (iewer) in menuconfig aktiviert und kannst du Bilder
> damit anzeigen?

Der ist standardmäßig dabei und zeigt den die beiden Bootsplash-Bilder 
an.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philip H. schrieb:
> Der ist standardmäßig dabei und zeigt den die beiden Bootsplash-Bilder

anscheinend nicht, denn

Matthias Rick schrieb:
> alles bis auf das Display läuft schon

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na der fbviewer läuft... aber der zeigt ja nur bilder an, oder?? ich 
hätt gern ne textausgabe!

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja gut, aber es hörte sich so an als wenn die Ausgabe des framebuffers 
auf dem Display nicht funktioniert.

Grundsätzlich wird alles auf dem Display angezeigt, was du in den 
framebuffer rein schreibst.

Also brauchst du dir nur ein Programm zu schreiben, dass die MP3 Titel 
extrahiert und in den framebuffer schreibt.

Autor: Matthias Rick (matricks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das klingt ja prinzipiell sehr einfach! ;) gibts da vielleicht irgendwo 
n howto, das mir weiterhelfen könnte???

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Philip H. (goldfinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... schrieb:
> Also brauchst du dir nur ein Programm zu schreiben, dass die MP3 Titel
> extrahiert und in den framebuffer schreibt.

Das ist mir soweit klar, kann man sich dort ein Framework à la ncurses 
zur Hilfe nehmen? Ich habe noch nicht herausgefunden das ncurses als 
Ausgabeschnittstelle benötigt.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philip H. schrieb:
> Das ist mir soweit klar, kann man sich dort ein Framework à la ncurses
> zur Hilfe nehmen?

ncurses eher nicht, aber mit freetype kannst du ASCII-Zeichen in Pixel 
wandeln.

Das, was du in den Framebuffer schreiben kannst, sind ja keine 
ASCII-Zeichen, sondern Pixel-Sätze.

Autor: Matthias Rick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So weit ich das verstehe, müsste für ncurses die 
FramebufferConsolen-Aktivierung funktionieren! Oder???
Theoretisch reicht ja ne Bibliothek bei der wenigstens schonmal ein 
Fontsatz implementiert ist... DirectFB hab ich inzwischen auch schonmal 
probiert... das bekommt Buildroot auch nicht kompiliert... is aber auch 
glaub ich für n bissel textausgabe überdimensioniert! was meint ihr???

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm freetype

Autor: ... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht hilft euch dieser code in C++ . 2 Klassen, eine für den 
framebuffer und eine für freetype.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.