Liebe Kollegen!
Ich habe ein Terasic Sockit board. Der FPGA Teil läuft und macht was ich
möchte.
Leider habe ich ein Problem mit dem Processor Teil.
Ich finde nirgends eine sinnvolle (!) Anleitung wie ich das Ding in
Betrieb nehme. Überall werden Schulungsfiles verwendet oder man braucht
x Programme.
Ich habe schon öfters mit dem Xilinx Microblaze gearbeitet aber das
Altera Ding scheint extra kompliziert zu sein.
(gibt es so etwas wie den Base System Builder bei Altera nicht?)
Kann mir jemand helfen?
DANKE!
Sandy
Ich würde empfehlen doch mit Linux anzufangen, alles andere ist viel zu
kompliziert.
Unter http://www.rocketboards.org/ gibt es viele Anleitungen und vieles
funktioniert einfach auf Anhieb -- vorausgesetzt Quartus und andere
Programme sind unter Linux installiert ;-)
Hier sind meine Notizen (kein Anspruch auf Vollständigkeit, mitdenken
hilft)
1. Linux installieren (Ubuntu 12.04 funktioniert auf jeden Fall)
2. Quartus installieren
3. Yocto installieren
wget
http://releases.rocketboards.org/release/2013.11/gsrd/src/linux-socfpga-gsrd-13.1-src.bsx
chmod +x linux-socfpga-gsrd-13.1-src.bsx
sudo ./linux-socfpga-gsrd-13.1-src.bsx
/opt/altera-linux/bin/install_altera_socfpga_src.sh ~/yocto
source ~/yocto/altera-init ~/yocto/build
4. Generate preloader
embedded_command_shell.sh
bsp-editor
File -> New BSP
../soc_system_hps_0
generate
cd ~/Dokumente/FPGA/SoCkit_SW_lab_13.1/software/spl_bsp/
make
5. DTB generieren
$ ~/altera/13.1/embedded/embedded_command_shell.sh
$ cd ~/sockit_ghrd
Run the Device Tree Generator
sopc2dts --input soc_system.sopcinfo --output socfpga.dts --board
soc_system_board_info.xml --board hps_clock_info.xml
dtc -I dts -O dtb -o socfpga.dtb socfpga.dts
6. Building U-Boot/Kernel/Rootfs
$ bitbake virtual/bootloader
$ bitbake virtual/kernel
$ bitbake altera-image
bitbake altera-gsrd-image
bitbake altera-image-minimal
7. Creating SD Card Image
~/altera/13.1/embedded/embedded_command_shell.sh
which mkpimage
cd ~/yocto/build/tmp/deploy/images
cp -f socfpga_cyclone5.dtb socfpga.dtb
mkdir rootfs
cd rootfs
sudo tar xzf ../altera-image-socfpga_cyclone5.tar.gz
cd ..
sudo /opt/altera-linux/bin/make_sdimage.sh -k zImage,socfpga.dtb -rp
u-boot-spl.bin -t
~/altera/13.1/embedded/host_tools/altera/mkpimage/mkpimage -b
u-boot-socfpga_cyclone5.img -r rootfs -o sd_image_yocto.bin
write SD image to SD card
$ cd ~/yocto/build/tmp/deploy/images
$ sudo dd if=sd_image_yocto.bin of=/dev/sdb bs=1M
$ sudo sync
Grüße
Kest
Sandy schrieb:> Nein, ich brauche kein Linux. Das ist für meine Anwendung Overkill.
Na dann, auf zur Altera Website ins Forum und suchen wie man so was
kompliziertes wie einen SoC bare-metal ans laufen kriegt...
Ich kaempfe mit sowas gerade bei Xilinx rum, aber zumindest gibt es dort
ein paar application-notes... Viel Glueck! und danach viel Spass...
Lieber Berndl!
Bei Xilinx kann ich Dir vielleicht helfen. Ich habe schon öfter einen
Microblaze gebaut und auch programmiert.
Wo hängst Du gerade?
LG
Sandy
@Sandy, Kest
alle nehmen immer dieses Yocto. Was bietet es für einen Vorteil?
Ich habe auch schon ein Projekt mit dem Cyclone V gemacht. Es
funktioniert einwandfrei mit dem Mainline Kernel und Buildroot, sich ein
komplettes System zusammenzubauen.
Yocto ist paar GB gross, das selbstgemachte System einige 10M. Bringt
zwar keinen Compiler mit, aber den braucht man ja auch nicht - wozu soll
ich auf einer Embedded Plattform was compilieren können?
Dann verwenden auch alle diese unsägliche Altera IDE um Programme zu
schreiben. Leuchtet mir auch nicht ein: den normalen ARM GCC kann man
auch verwenden, der untertsützt die Codegenerierung für A9, debuggen
geht auch.
ICh habe eher den Eindruck dass jeder Hersteller da wieder seine eigene
Suppe kochen will. Warum so, wenns auch mit Standardmitteln geht?
Hallo Tobias,
>Dann verwenden auch alle diese unsägliche Altera IDE um Programme zu>schreiben. Leuchtet mir auch nicht ein: den normalen ARM GCC kann man>auch verwenden, der untertsützt die Codegenerierung für A9, debuggen>geht auch.
Geht das Debuggen auch mit JTAG, oder nur mit dem JTAG-Server unter
Linux? Es sieht so aus als wenn man hier den DS-5 von Altera/ARM
benutzen muss. Oder hast Du schon mal was gesehen mit dem normalen
ARM GCC und einen GDB-Server für den USB-Blaster?
Viele Grüße,
Michael
Mit Yocto ist es eben einfacher ein Linux-System aufzubauen. Ein Paar
Recepies erstellen, vorhandene anpassen und fertig. Man kann natürlich
alles per hand machen, aber ich bin der Meinung, dass man das Rad nicht
neu erfinden sollte.
Was meinst Du mit Compiler? Du meinst dann in Deiner Distribution, die
Du mit Yocto erstellst? Das kann man alles anpassen.
Altera IDE (Eclipse-Unterbau) muss man nicht verwenden, es funktioniert
aber eben einfach so, ohne, dass man sich lange damit auseinandersetzen
muss.
Inwiefern man GCC + GDB + USB-Blaster statt DS-5 verwenden kann,
entzieht sich meiner Kenntnis, aber ich denke, ohne Lizenz wird es
extrem schwierig und kompliziert.
Sicher, Linux-Programme kann man einfach so mit GDB debuggen, aber
sobald man Bare Metal machen möchte, braucht man zwingend DS5 (oder irre
ich mich da?)
Grüße
Kest
Hallo Kest,
ich glaube man muss noch mal unterschieden ob Bare-Metal
mit Evalboard/USB-Blaster, oder mit eigenem Design.
Beim einem eigenem Design kann man für den ARM ja die
normale 20pol JTAG Schnittstelle verwenden. Und nun sollte es
z.B. mit dem J-Link GDB Server und dem J-Link laufen. Der
Cyclone V wird bei Segger in der Liste der unterstützen CPUs
mit aufgeführt.
Gruß,
Michael
Hallo,
Ich bekomme auch bald ein Terasic de1 soc Board und wollte mal fragen,
wie es mit Linux Yockto funktioniert. Kann ich ganz normal die in C
geschriebene Programme drauf laufen lassen? Brauche ich unbedingt ein
linux PC um mit dem dev board arbeitenden zu können?
Yocto hat mit C-Programmierung nichts zu tun, es ist nur eine "Sammlung
an Scripten", die es einem einfacher machen, Linux-System aufzusetzen
(sehr sehr vereinfacht ausgedrückt).
Danach kann man einfach mit GCC kompilieren (windows oder Linux ist
egal), auf die SD-Karte kopieren und ausführen.
Ich würde auf jeden Fall ein Linux-System empfehlen (anders läuft Yocto
nicht), es ist alles sehr simpel aufgebaut.
Grüße
Kest
Sandy schrieb:> Nein, ich brauche kein Linux. Das ist für meine Anwendung Overkill.
"Ich muss dringend nach München!"
"Dann nimm den Zug, und fahr hin."
"Nein, ich brauche keinen ganzen Zug. Das wäre für meine Reise Overkill.
Deswegen möchte ich mir erstmal selber ein Auto bauen."
Ja, wenn das so ist... :>
Hallo Mike,
>Laut EDS User Guide (ug_soc_eds.pdf) kann die freie Version nur>Linux-Anwendungen über Ethernet debuggen. Debugging über JTAG ist>scheinbar der Bezahlversion vorbehalten.
Debuggen mit JTAG bei EDS ist der Bezahlversion vorbehalten.
Nach dem Schaltplan des SoCKit kommt man an den JTAG über J1.
Hier könnte man dann mit z.B. einem J-Link mal versuchen
ob es mit dem Debuggen geht.
Gruß,
Michael
Lieber Dieter!
>"Ich muss dringend nach München!">"Dann nimm den Zug, und fahr hin.">"Nein, ich brauche keinen ganzen Zug. Das wäre für meine Reise Overkill.>Deswegen möchte ich mir erstmal selber ein Auto bauen.">>Ja, wenn das so ist... :>
Der vergleich hinkt.
Um Daten zu senden brauche ich kein Betriebssystem.
Wenn Du x^y rechnen willst nimmst Du ja auch einen Taschenrechner und
keinen Computer.
LG
Michael schrieb:> Hallo Mike,>>>Laut EDS User Guide (ug_soc_eds.pdf) kann die freie Version nur>>Linux-Anwendungen über Ethernet debuggen. Debugging über JTAG ist>>scheinbar der Bezahlversion vorbehalten.> Debuggen mit JTAG bei EDS ist der Bezahlversion vorbehalten.>> Nach dem Schaltplan des SoCKit kommt man an den JTAG über J1.> Hier könnte man dann mit z.B. einem J-Link mal versuchen> ob es mit dem Debuggen geht.>> Gruß,> Michael
Nun ja, es würde mich wundern wenn EDS mit dem J-Link plötzlich
Debugging über JTAG unterstützt. D.h. man braucht wahrscheinlich noch
eine andere Toolchain und hat damit noch eine weitere große Baustelle...
Für den Einstieg sollte man sich vielleicht doch erst einmal auf eine
Linux-Anwendung beschränken. Oder man verzichtet auf JTAG-Debugging und
arbeitet z.B. ganz altmodisch über die serielle Schnittstelle. Der
notwendige Compiler scheint ja auch in der freien EDS Version mit dabei
zu sein.
Fortgeschrittene können ja dann einmal probieren ob OpenOCD mit dem
Board zurechtkommt. USB Blaster (II) und den Cortex A9 scheint das ja zu
kennen.
Ich würde aus Erfahrung auch lieber erst mit dem fertigen System auf
Rocketboard einsteigen. Auch wenn es deiner Meinung nach total
überdimensioniert ist... Du wirst dir damit leichter tun.
Der Jtag Connector hat zwar ein 2,54 RM Pinout, aber der normale 2x5
Pfostenstecker mit Wanne ist zu breit.
Gibt es die passenden 2x5 Stecker und Buchsen irgendwo zu kaufen ?