Systempfad und Umgebungsvariabl setzen

Programme werden von ihrem Ordner aus gestartet.
Will man Programme von überall her ausführen können,
muss der Pfad der Pfadvariable  übergeben werden.

Pfad der Pfadvariable zufügen

PATH=$PATH:/home/katrin/bin	

– Der Pfad wird immer vom root aus angegeben
– Pfade werden voneinander durch  : getrennt
– Die alte PATH-Variable ($PATH) muss  genannt werden.
Der neue Pfad wird nach Doppelpunkt angehängt

Pfad in .bashrc setzen

#include programm-paths 
export PATH=$PATH:/opt/altera/13.0sp1/quartus/bin

.bashrc liegt im home als versteckte Datei

Variable (in Windows) als Systemvariable setzen

System und Sicherheit/ System /Erweiterte Systemeinstellungen
In diesem Popup hat es ein Button: Umgebungsvariablen

Anklicken und der Variable einen Namen geben: LM_LICENSE:blabla_5
Der Variable einen Wert geben:  blaba@blume.aus.ch: 563

Script Linux

Ablegeort

home/katrin/bin


Ausführen (bei Ablageort)

./<script>.sh

Im Verzeichnis selbst wird mit ./ das Script ausgeführt.


Script der PATH-Variable zuweisen

PATH=$PATH:/home/katrin/bin

Mit gesetzer Pfadvariable kann das Script von überall her aufgerufen werden.


Ausführen Script überall

<script>.sh


Inhalt

#!/bin/bash

# add programm to global path
PATH=$PATH:/opt/ACA_166

# go to directory
cd /opt/ACA_166/

# open programm
java -jar ./QDAca.jar

Hier wird nicht der Script-Pfad, sondern das auszuführende Programm dem Pfad zugeteilt.

Script als ausführbar definieren

chmod +x name.sh

Parameter per Konsole mitgeben

#!/bin/bash

# Ausgabe in Konsole
echo $1 "anzahl_messungen"
echo $2 "anzahl_wiederholungen"

for o in `seq 1 $1`
do
    # packetlength ist eine lokale Variable
    for packetlength in 100 400 1400 1500 \        
    do
         # Ausgabe Konsole aktuelle Paketlänge
         echo $l
         for i in `seq 1 $2`
         do
            iperf3 -c 10.4.30.50 -l $ packetlength
         done
    done
done

– echo gibt string an Konsole aus
– $.. sind Variablen
– echo $.. fordert eine Eingabe per Konsole mit whitespace (Enter oder Abstand)

script.sh  5  2

Wenn man die Parmeter vergisst, fragt das Programm beim Start danach
// ]]>

Aliases in Linux

– Alias ersetzen Befehle durch ein Keywort
– Der Aufruf des Keyworts startet den Befehlt- Aliase müssen im home/.bashrc  eingetragen werden
– Aliase können nicht nur die Argumente enthalten (ohne Programm)

Syntax

// keyword = endocsope, Befehl = ssh
alias endoscope = "ssh root@192.168.17"

// Aufruf des Befehlts
endoscope

Alias setzen

gedit   home/katrin/.bashrc
# Aliase
alias endoscope='ssh root@192.168.17'

source ~/.bashrc

Pipe

Eine Pipe ist ein Datenstrom zwischen zwei Prozessen.
Bzw. es ist der Ausgang der Daten des ersten Programmes, der Abgefangen wird.

programm1 >> daten >> programm2
programm1 | ausgabe.txt // Die daten werden in ausgabe.txt geschrieben

Das Ergebnis eines Programms wird als Eingabe eines anderen Programms verwendet

| <optionen
Programm 1 übergibt Datenstrom direkt Programm 2

c++: einlesen mit >>

in = von aussen IN eine Datei (ablegen)
out = von Datei nach aussen geben

#include <iostream>
#include <string>

Über die Konsole kann wortweise über cin eingelesen werden.

std::cin >> wort1;   // ablegen in variable

Will man über die Konsole mehrere Wörter eingeben, so braucht man mehrere Variablen, zum Speichern. Der Datentyp von Eingabe und Variable müssen stimmen.

std::string name;
int alter;

std::cout << "Eingabe Name und Alter \n";

std::cin >> name >> alter

 

Stream ablegen

string datei_name = {"data.txt"};
ifstream stream_a {datei_name};
cout << "Name des Files angeben"; 
string datei_1;
cin >> datei_1 
ifstream stream1 {datei_1}


Einlesen bis

std::string current = "";
std::string end = ".";

// 1.Variante
while ( std::cin >> current ) {
  if (current == end){
      // do action;    
  }
}

Im While wird wortweise eingelesen und das Wort in den String current abgelegt.
Sobald ein spezifisches Wort erscheint, wird eine bestimmte Anweisung erteilt.

Fehlerbehandlung

if (!cin ) {
  error(" Einlesen funtkonierte nicht \n");
}
else {
     do something;
}

Quartus: altera VHDL Programm

Altera-FPGAs können mit Quartus programmiert und kompiliert werden.
Es werden Projekte gebildet, mit der Dateiendung.qpf

Hauptschritte
– Quartus über shell öffnen

quartus13.sh

– Projekt in Quartus öffnen: Menü File/Open Projet
– Projekt am Ende kompilieren: Menü Processing/ Start Compilation

Synthese

  • Bilden des Codes und der Blöcke zu einem System (Kompilieren).
    Es entsteht ein Bitstream. Die Dateiendung ist datei.sof
    Der synthetisierte Code wird per Programmer auf das FPGA geladen.

    In der Synthese werden die Pins zugewiesen.

    Es ist die Anbindung des Codes an Hardware.

  • ADB (Android Debug Bridge)

    Anstelle von ssh kann bei Androidgeräte über adb auf das Gerät zugegriffen werden.
    Die ADB-Verbindung bleibt aufrecht erhalten, auch wenn der PC abgestellt wird.

    Um ADB zu benutzen, wird SDK bzw. Android Tool installiert.

    Aufbauen der VerbindungAufbauen der Verbindung

    adb connect <ip>

    Öffnet die Shell für Befehle

    adb shell

    Gibt die aktive Verbindungen an

    adb devices

    Einzelne Verbindung abbauen

    adb disconnect

    Alle Verbidungen abbauen

    add kill-server