Forum: FPGA, VHDL & Co. Altera Cyclone V SoC


von Sandy (Gast)


Lesenswert?

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

von Frage (Gast)


Lesenswert?

Willst Du ein Linux darauf laufen lassen oder den reinen Core verwenden?

von Sandy (Gast)


Lesenswert?

bare metal

ich brauche (vorerst) noch kein Betriebssystem

von Kest (Gast)


Lesenswert?

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

von Sandy (Gast)


Lesenswert?

Nein, ich brauche kein Linux. Das ist für meine Anwendung Overkill.

;)

von berndl (Gast)


Lesenswert?

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...

von Sandy (Gast)


Lesenswert?

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

von berndl (Gast)


Lesenswert?

nee, nicht Microblaze. Ich versuche gerade, mich mit den Zync 
auseinander zu setzen...

von Tobias P. (hubertus)


Lesenswert?

@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?

von Michael (Gast)


Lesenswert?

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

von Kest (Gast)


Lesenswert?

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

von Michael (Gast)


Lesenswert?

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

von GS (chromosoma)


Lesenswert?

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?

von Kest (Gast)


Lesenswert?

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

von Michael (Gast)


Lesenswert?

Hallo Sandy,

schau Dir mal folgendes PDF an:
http://www.altera.com/literature/rn/cv_hps_rn.pdf

What's new in Cyclone V SoC EDS for v13.1:
- Bare-metal application development and debugging

Bei Micrium gibt es auch einen Port für den CycloneV:
http://micrium.com/downloadcenter/download-results/?searchterm=hm-altera&supported=true

Vielleicht gibt es hier die nötigen Infos für Bare-Metal?

Gruß,
Michael

von Da D. (dieter)


Lesenswert?

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... :>

von Mike (Gast)


Lesenswert?

Michael schrieb:
> Hallo Sandy,
>
> schau Dir mal folgendes PDF an:
> http://www.altera.com/literature/rn/cv_hps_rn.pdf
>
> What's new in Cyclone V SoC EDS for v13.1:
> - Bare-metal application development and debugging
>
> Bei Micrium gibt es auch einen Port für den CycloneV:
> 
http://micrium.com/downloadcenter/download-results/?searchterm=hm-altera&supported=true
>
> Vielleicht gibt es hier die nötigen Infos für Bare-Metal?
>
> Gruß,
> Michael

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.

von Michael (Gast)


Lesenswert?

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

von Sandy (Gast)


Lesenswert?

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

von Mike (Gast)


Lesenswert?

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.

von Quartaner (Gast)


Lesenswert?

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.

von Dirk (Gast)


Lesenswert?

Auf der Altera Website gibt es das SoCEDS Tool.
Probiere es damit.

von Dirk (Gast)


Lesenswert?

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 ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.