Overview. Multitasking in Embedded Systems. Software development with Linux. Using Multitasking in Microcontrollers. URL:
|
|
- Babette Förstner
- vor 8 Jahren
- Abrufe
Transkript
1 Overview Software development with Linux Using Multitasking in Microcontrollers URL: 1
2 Chapter 1 Software development under Linux OS 2
3 Softwareentwicklung mit Linux Was ist Linux? Das Linux Dateisystem Aufsetzen des Betriebssystems Installation von Softwarepaketen Werkzeuge ToolChain_STM32 Versionskontrollsysteme 3
4 Historie von Linux 1991 begann Linus Torvalds in Helsinki (Finnland) mit der Entwicklung einer Terminal-Emulation, um unter anderem seinen eigenen Computer besser zu verstehen. Mit der Zeit merkte er, dass sich das System immer mehr zu einem Betriebssystem entwickelte und kündigte es daraufhin in der UsenetThemengruppe für das Betriebssystem Minix, comp.os.minix an.[3] Im September desselben Jahres sollte das System dann auf einem Server den Interessierten zur Verfügung gestellt werden. Da der damalige FTP-ServerAdministrator Ari Lemmke mit den von Torvalds vorgesehenen Namen Freax oder Buggix nicht einverstanden war, stellte jener es stattdessen in einem Verzeichnis mit dem Namen Linux zur Verfügung. Torvalds widersetzte sich anfangs dieser Namensgebung, gab seinen Widerstand aber schnell auf, da er nach eigener Aussage eingestehen musste, dass Linux einfach ein besserer Name war. Linux wurde zu dieser Zeit noch unter einer eigenen Lizenz veröffentlicht, welche die kommerzielle Nutzung verbot. Schnell merkte Torvalds aber, dass diese hinderlich war, und entschied sich dazu, allen Entwicklern deutlich mehr Freiraum zu geben. Er und seine Mitautoren stellten daraufhin im Januar 1992 Linux unter die GNU GPL[4]. Somit konnte man Linux in GNU integrieren und dies als das erste freie Betriebssystem vertreiben. Dieser Schritt machte das System für eine noch größere Zahl von Entwicklern interessanter, da es für diese die Modifizierung und Verbreitung vereinfachte kündigte Torvalds an, dass er einen Pinguin als Maskottchen für Linux haben wolle, und schrieb einen Wettbewerb aus, aus dem schließlich der populäre Tux hervorging. Quelle: 4
5 Was ist Linux? Kernel Das Programm init Shells Benutzerverwaltung Grafische Benutzeroberfläche Anwendungen Distributionen Community 5
6 Der Linux Kernel Oberboss im System Lizensiert unter GNU General Public License 2 Komponenten Speicherverwaltung Gerätetreiber Multitasking Scheduler Interprozesskommunikation Paketfilter (Firewall) Quelle: 6
7 GNU General Public License 2 Copyleft Prinzip Lizenznehmer: Alle abgeleiteten Werke auch GPL 2 Autor: Darf Werk auch unter anderen Lizenzen veröffentlichen Lizenznehmer muss Quelltext veröffentlichen! Mehrere Gerichtsverfahren gegen Firmen z.b Verfahren gegen D-Link 7
8 Das Programm /sbin/init Erstes Programm bei jedem Systemstart Startet alle weiteren Programme verwaltet Runlevel 0. System anhalten 1. Einzelbenutzer (meistens root) 2. Mehrbenutzer ohne Netzwerk 3. Mehrbenutzer mit textueller Oberfläche 4. Reserviert/ Unbenutzt 5. Mehrbenutzer mit grafischer Oberfläche 6. Rechner wird neugestartet Befehle (als Superuser) > runlevel > init <N> gibt aktuellen Runlevel aus schaltet in Runlevel <N> 8
9 Das Linux Dateisystem Dateisystem ist Zentralbibliothek des Rechners Linux Philosophie: Alles ist eine Datei! Laufwerke immer in Ordner eingehängt / ist die Wurzel von allem alles andere darunter Zugriff auf Hardware über virtuelle Dateien Zugriffsrechte/ Schutzbits Versteckte Dateien 9
10 Laufwerke in Ordnern keine Laufwerkbuchstaben! Einhängen eines Laufwerks mittels mount Benötigt oft Superuser Rechte (sudo) sudo mount /dev/sda2 /media/home Anzeige der Mountpoints mittels df oder mount > df -h Dateisystem rootfs devtmpfs tmpfs /dev/sda1 /dev/sda2 Größe Benut Verf Ben%% Eingehängt auf 20G 18G 2,9G 86% / 984M 228K 984M 1% /dev 990M 1,4M 988M 1% /dev/shm 20G 18G 2,9G 86% / 54G 46G 5,2G 90% /home 10
11 / ist die Wurzel Immer ein Laufwerk in / eingehängt => Bei Neuinstallation reicht eine /-Partition alle anderen Datenträger in Unterordnern /-Verzeichnis (Beispiel opensuse) /bin Kommandos für root und normale Benutzer /boot Kernel und für Bootvorgang benötigte Dateien /dev Virtuelles Dateisystem devfs enthält Dateien für Zugriff auf Hardwaregeräte /etc Systemkonfiguration (globale Einstellungen für alle Benutzer) /home Jeder Benutzer für gewöhnlich ein eigenes Verzeichnis /lib Gemeinsam genutzte Programmbibliotheken /media Dynamische Datenträger wie z.b. USB-Sticks, CDROM Laufwerke,... /opt Optional installierte Software (z.b. QtSDK) /proc Virtuelles Dateisystem mit Informationen zum laufenden System /root Das Heimatverzeichnis des Superusers /sbin Befehle zur Systemverwaltung (nur mit Superuser Rechten benutzbar) /sys Virtuelles Dateisystem sysfs eine erweiterte Darstellung von devfs (/dev) /usr Die meisten Anwendungen sind hier installiert /var Variable Informationsdateien und Datenbanken Quelle: 11
12 Der Ordner /dev Hardwaregeräte in Form von Dateien sichtbar Vom Kernel mittels devtmpfs automatisch gefüllt Beispieleinträge Ein Eintrag pro Festplatte und pro Partition /dev/sda Festplatte 1 /dev/sda1 Festplatte 1 Partition 1 Serielle Schnittstellen /dev/ttys0 /dev/ttyusb0 /dev/null interne serielle Schnittstelle erster USB-Seriell Wandler schluckt alle eingehenden Zeichen 12
13 Zugriffsrechte/ Schutzbits Für jede Datei drei Gruppen (E) (G) (A) Eigentümer Gruppe Andere Drei Arten von Schutzbits r darf lesen w darf schreiben x darf ausführen Schutzbits in Textdarstellung EEEGGGAAA > ls -l -rw-r--r-- 1 gregor users Okt 13:35 Quellen.txt > chmod g+w Quellen.txt > ls -l -rw-rw-r-- 1 gregor users Okt 13:35 Quellen.txt 13
14 Versteckte Dateien Dateien/ Ordner die mit Punkt beginnen Normalerweise nicht angezeigt Enthalten oft Einstellungen Bei Kopier- /Verschiebeaktionen ignoriert Punkt Einträge anzeigen > ls -al -rw-r--r-- 1 gregor gregor :30.springrc drwx gregor gregor :18.ssh Punkt Einträge kopieren cp -R \.* Ziel/ Im Dateiimanager versteckte Dateien anzeigen 14
15 Aufsetzen des Betriebssystems Wir machen uns die Hände schmutzig! Beispiel anhand Distribution Xubuntu Installation in VirtualBox Emulator 15
16 Linux Distro herunterladen 32 Bit Version (x86) optimal für Virtualisierung weniger Speicherbedarf einfacher zu emulieren 64 Bit Version (x64) optimal bei nativer Installation 16
17 Virtuelle Maschine erstellen 17
18 Namen vergeben 18
19 1GB RAM mindestens 19
20 Virtual Disk Image 20
21 Bootfestplatte erzeugen 21
22 Feste Größe ist schneller 22
23 20GB reichen zunächst 23
24 Zeit für einen Kaffee 24
25 ISO Image als virtuelle CD 25
26 Start von virtueller CD 26
27 Maus befreien: Strg Rechts 27
28 Inklusive Online Updates 28
29 Manuelle Partitionierung 29
30 Neue Partitionstabelle 30
31 Partition hinzufügen 31
32 Eine / Partition ist Pflicht! 32
33 Jetzt installieren 33
34 Ohne Swap fortfahren Auslagern auf virtuelle Festplatte langsam! Besser mehr Speicher für Maschine 34
35 Anmeldedaten 35
36 Ein gutes Passwort wählen GROSS- und kleinbuchstaben Ziffern Sonderzeichen,.! $ % & / ( ) = + Einen leicht zu behaltenen Satz wählen: Mann was der wieder für einen Quatsch sagt Sonderregeln (ein 1, sagen ;) Mwdwf1Q; Insgesamt 8 Zeichen! 36
37 Das kann dauern! 37
38 Neustart bestätigen 38
39 Ein aufgeräumter Desktop 39
40 Updates suchen 40
41 Updates installieren 41
42 Anwendungen installieren Änderungen am System nur als Superuser (root) Verschiedene Optionen Paketmanager Installationsskripte einzelne Pakete Quelltext 42
43 Der Superuser Ich bin /root, ich darf das! Eigenes Homeverzeichnis /root Darf jede Datei verändern Nur zur Systemkonfiguration Superuser werden > sudo su Etwas als Superuser ausführen > sudo reboot -n 43
44 Installation per Paketmanager Königlich einfache Bedienung Große Auswahl vorkonfigurierter Softwarepakete Abhängigkeiten automatisch aufgelöst Automatische Updates opensuse: yast, kpackagekit Debian: apt-get, aptitude, synaptic, kpackagekit 44
45 Installationsskripte Ähnlich Installation unter Windows OS Ausführbares Programm von Webseite Oft Dateinamensendung.run Datei muss ausführbar gemacht werden chmod +x DATEI Eigenschaften/ Dateizugriff im Dateimanager Oft als Superuser starten sudo./datei Beispiele QtCreator Grafikkartentreiber (NVIDA/ AMD) 45
46 Installation einzelner Pakete Für Fortgeschrittene User Per Suchmaschine suchen Muss zur Distribution passen opensuse, RedHat: sudo rpm install FILE.rpm Debian:.deb Format sudo gdebi FILE.deb Keine automatischen Updates! 46
47 Installation aus Quellen Pain in the Ass Suchen der richtigen Version neueste Quellen oft instabil Installationsanleitungen oft veraltet Neu kompilieren COMPILE.txt/ INSTALL.txt lesen! Foren durchsuchen Abhängigkeiten von Hand lösen Fehlermeldungen lesen Fehlende Software installieren Installationsscript erstellen (Fortgeschritten) 47
48 Gasterweiterungen Installieren Ermöglichen Gemeinsame Ordner Geteilter Zwischenspeicher 3D Grafikbeschleunigung Größenänderungen des Fensters 48
49 Skript nicht ausführbar Typisches Problem ISO Dateisystem hat keine Schutzbits 49
50 Shell im Ordner starten 50
51 autorun.sh direkt starten 51
52 Gasterweiterungen installiert 52
53 Wieder neustarten 53
54 Übung: Installieren Linux Distribution eigener Wahl installieren opensuse, Ubuntu/ Kubuntu, Debian, in virtueller Maschine oder als Dualboot System Darauf folgende Software installieren: QtCreator ( git yakuake STM32_ToolChain ( 54
55 Console Textuelles Eingabeinterface Erste Console 1991 vom Kernel bereitgestellt Ursprünglich Ausgabe direkt in Grafikkartenpuffer Terminal ist Entsprechung unter grafischer Oberfläche Immer noch erreichbar per Strg+F1,... 55
56 Shell Jede Konsole startet eine Shell Interpretiert menschliche Texteingaben Es gibt verschiedene Shells bash, csh, tcsh, (unterschiedliche Kommandosyntax!) Grundfunktionen Starten von Programmen Ausführen von Skripten Vollständige Programmiersprache Umsetzen von Pipe Anordnungen Bereitstellung von Umgebungsvariablen Umleitung von Textausgaben 56
57 Shell Jede Konsole startet eine Shell Interpretiert menschliche Texteingaben Es gibt verschiedene Shells bash, csh, tcsh, (unterschiedliche Kommandosyntax!) Grundfunktionen Starten von Programmen Ausführen von Skripten Vollständige Programmiersprache Umsetzen von Pipe Anordnungen Bereitstellung von Umgebungsvariablen Umleitung von Textausgaben 57
58 Programme starten Goldene Regel: Dateien immer tabben! Ausführbare Datei finden absoluter/ relativer Pfad geht immer > /bin/less Suche im Suchpfad Variable $PATH zu durchsuchende Verzeichnisse > echo $PATH./:/home/gregor/bin:/bin:/opt/QtSDK/QtCreator/bin/:..../ ist aktuelles Verzeichnis 58
59 Ausführen von Skripten Synonym: Batchdatei Erste Zeile definiert Interpreter #!/bin/bash #!/usr/bin/perl x Bit gesetzt: chmod +x DATEI Keine Dateinamensuffixe unter Linux! Oft aktuelles Verzeichnis nicht im Pfad 59
60 Shell Programmierung Variablen VARIABLE= WERT echo $VARIABLE Kontrollstrukturen if [ BEDINGUNG ]; then... fi for A in a b c... ; do... done Kein goto in bash! 60
61 Pipeanordnungen Idee: Kleine Befehle als Werkzeugkasten Kombination einfacher Befehle ist mächtig Pipe ist Verbindung zweier Befehle Pipesymbol ist senkrechter Strich A B Textausgabe von A ist Texteingabe für B cat hallo.txt grep Welt Lange Pipeketten möglich 61
62 Umgebungsvariablen Jede Shell erbt Variablen von Umgebung Neue Variablen in Elternshell unbekannt Variablen anzeigen: export (Bash) Nur exportierte Variablen weiter vererbt Variablen sterben mit ihrer Shell permanent durch Eintrag in Startup Skript Zuweisung: VARIABLE= Wert 62
63 Textausgaben umleiten Jedes Programm 1 Eingabestrom: STDIN 2 Ausgabeströme: STDOUT, STDERR Eingabe aus Datei: BEFEHL <DATEI Ausgabe in Datei: Zieldatei überschreiben: BEFEHL >DATEI1 2>DATEI2 An Zieldatei anhängen: BEFEHL >>DATEI1 2>>DATEI2 STDERR nach STDOUT umleiten: 2>&1 63
64 Shell Startup Skript Bei Start/ Login automatisch ausgeführt /etc/bash.bashrc ~/.bashrc ~/.profile ~/.login Beispiele: Suchpfad zu qtcreator > echo 'export PATH= /opt/qtsdk/qtcreator/bin/:$path' >>~/.bashrc Permanenter alias > echo 'alias ll= ls -lh ' >>~/.bashrc 64
65 Werkzeuge man cat less find grep gcc/ g++ make openocd gdb 65
66 Befehl man (1) Textbasiertes Anleitungssystem Ausführliche Beschreibungen Praktisch jeder Befehl beschrieben Programmierhandbuch Tastenzuordnungen Pfeiltasten Blättern / nach Text suchen Beenden q Alternative: info 66
67 Befehl man (2) Verschiedene Ebenen > man EBENE SCHLÜSSELWORT Ausführbare Programme oder Shellbefehle Systemaufrufe (Kernelfunktionen) Bibliotheksaufrufe (Funktionen in System-Bibliotheken) Spezielle Dateien (gewöhnlich in /dev Dateiformate und Konventionen, z. B. /etc/passwd Spiele Makropakete und Konventionen, z. B. man(7), groff(7) Systemadministrationsbefehle (in der Regel nur für root) Kernelroutinen [Nicht Standard] > man 1 open > man 2 open 67
68 Befehl cat Dateiinhalt ausgeben Oft Start einer Pipe > cat DATEI grep FOO less Here-Skript in Shell-/ Perl-Skript cat << END_OF_TEXT Hello World END_OF_TEXT 68
69 Befehl less Zeigt Dateiinhalt an Interaktives bidirektionales Blättern Suchfunktion: / Beenden: q 69
70 Befehl find Suchen von Dateien > find STARTPFAD -name MUSTER Viele Optionen zur Suchkonfiguration Verknüpfung mittels -and / -or Expression für jede gefundene Datei Default: -print Externes Programm: -exec BEFEHL {} \; Beispiele: > find /home -name \.* less > find./ -name *.txt -exec less {} \; man find 70
71 Befehl grep Universeller Suchbefehl Sucht im Eingabestrom nach Muster Gibt alle Zeilen aus, die Muster enthalten Syntax: grep MUSTER DATEI > grep Hallo HalloWelt.txt > cat HalloWelt.txt grep Hallo Kombination mit find > find./ -name *.h grep -n MUSTER man grep 71
72 Befehl gcc/ g++ Universeller Übersetzer Preprozessor C/ C++ Compiler Linker Assembler Übersetzen: gcc -c DATEI.c Linken: gcc DATEI1.o DATEI2.o -o OUT man gcc (10575 Zeilen) 72
73 Befehl make Führt makefile aus Umsetzung von Abhängigkeiten Einfache Regeln A.x mittels BEFEHL aus A.y erstellt Gegeben A.y, B.y, C.y, Für Ziel Z: Erstelle A.x, B.x, C.x, Ausnutzung Parallelität: make -jn (N = 2x CPU-Kerne) Für C wesentliche Dateiendungen.s.c.h.o Assembler Quelltext C Quelltext C Headerdatei Objektdatei (aus.c oder.s erstellt) 73
74 makefile Steuerdatei für make Regeln zur Übersetzung Konfigurationsoptionen Definition von Übersetzungsziele (ZIEL:) Quellverzeichnisse Zu erzeugender Objektdateien Name der Ausgabedatei Übersetzungsoptionen 74
75 GNU Make Quellen Offizielles Handbuch Deutsches Tutorial 75
76 ToolChain_STM32 Collection of Scripts Automatically downloads aprox. 500MB Sources patched and compiled Compiler binaries Programmer/ Debugger uc Libraries 76
77 Features ToolChain Downloaded + installed automatically FreeRTOS Multitasking Scheduler STM-StdPeripheralsLibrary Compiler Suite ARM NONE EABI FTDI Treiber für JTAG Programmer current OpenOCD (snapshot from SVN) multiple Ethernet TCP/IP Stacks LCD-Monitor Text + Graphic Mathematic Fixpoint Library 77
78 Creating a new project Start the adventure! 1. cd ToolChain_STM32 2../createNewProject.pl TEST FOO 3. cd../test 4. configure Makefiles 5. configure Programmer 6../compile.sh 7. Debug 78
79 Skript createnewproject.pl./createnewproject PROJECT AUTHOR copies template project Creates new folder in../ Fills in name of project and author Created folder may be moved anywhere 79
80 Template Project Complete, standalone framework Should run on most Cortex M3 boards Support for QtSDK Editor open file ProjektName.creator from QtCreator Compile: >./compile.sh Missing ToolChain downloaded + installed 80
81 Makefile Parsed for every compile.sh run Defines how to make things Which object files to compile Where to find.c/.h/.s -files Which constants to define Which files to include Dependencies between build targets 81
82 Configure Makefile (1) (2) (3) (4) (5) (6) (7) (8) (9) basic constants where to find h-files where to find c-files where to find s-files automagically collect files define ucontroller to use minimize code size phony build targets add some general files 82
83 Makefile - basic constants Compileroptimizations (-O) O0 O1 O3 Os no Optimizations (for Debugging) simple Optimizations maximal Optimizations creates smallest Binary > man gcc 83
84 Makefile where to find h-files Header files benötigt für #include gcc Parameter -I definiert einen Includepfad \ am Zeilenende: mit nächster Zeile fortfahren $(INCLUDE_DIRS) enhält viele -I Einträge $(INCLUDE_DIRS) direkt an gcc gegeben Headerfile finden: gcc durchläuft Liste der -I Einträge 84
85 Makefile where to find c-files C-Sources compiled into separate.o files vpath.%c stores list of folders vpath.%c only used by make Whenever FOO.o should be created Make searches all folders in vpath.%c The first found file FOO.c will be compiled 85
86 Makefile where to find s-files.s files contain assembler source code Often used for Bootloader vpath %.s stores relative paths of folders Whenever make should compile a FOO.s All folders in vpath %.s are searched First found file FOO.s is being compiled FOO.s FOO.o 86
87 Makefile collect files Files with certain name suffix.c.cc.cpp.s Only files in same folder as makefile Every found file compiled into corresponding.o file Not required to manually add these files to makefile 87
88 Makefile - define ucontroller STM32 ucs are separated into classes Classes differ by Required bootcode file Amount of RAM Amount of Flash Memory Functional units (GPIOs, Timer, UARTS,..) 88
89 Makefile - minimize code size Optimize during Compile & Link GCC can write Funktiones/ Data into separate Sektions of the objektfile Unreferenced sections can be skipped during link stage Important: All used interrupt handlers have to be marked as attribute ((used)) arm-none-eabi-gcc --help=optimizers less man gcc 89
90 Makefile - phony build targets.phony: clean all Lists all Targets which are no files Avoids ambiguity between build targets and files of same name Example: all, clean 90
91 Makefile - add general files $(MAIN_OBJS) stores list of all object files to create Every mandatory.c file requires one.o entry in $(MAIN_OBJS)! Exceptions: page Collect Files object files can be added to at any stage of makefile E.g.: MAIN_OBJS += foo.o 91
92 Makefile Extensions Subfolders in project folder extensions/ Makefile fragments provided by ToolChain No user created/ project related files here! extensions.local/ User created Makefile fragments go here extensions.active/ Symbolic links to extensions/ or extensions.local/ all makefile.* files here are included automatically 92
93 Folder extensions/ Two types of files makefile.nnn_name Makefile fragment in rank NNN provides some extra settings when activated activate.nnn_name.sh scripts that activate makefile fragments will create one or more links in extensions.active/ some scripts remove interferring links automatically (e.g. activate.100_board_xxx.sh) Added to search PATH Just cd to your project folder and issue: > activate.700_example_threading_queues_led.sh 93
94 Extensions in different Ranks Extensions, Makefiles, Activate-Scripts Filename shows three digit rank number High ranked extensions depend on extensions with lower rank number Lowest rank: Basic compiler libraries Highest rank: Complex examples ToolChain/ReadMe_Ranks.txt Rule: No rank depends on higher ranks! system libraries 100 basic definitions 200 basic libraries 300 public libraries 400 ToolChain libraries 600 simple examples 700 complex examples 999 external tools
95 Minimal SetUp > activate.600_example_leds.sh Creates out of the egg: makefile.050_compiler_sourcery_g++ makefile.100_board_olimex_p107 makefile.200_std_peripherals_library makefile.300_scheduler_free_rtos makefile.300_scheduler_free_rtos_heap1 makefile.600_example_leds + more in future releases of ToolChain 95
96 Extension 050_compiler_sourcery_g++ Basic Libraries provided by Compiler Binary compiler suite from CodeSourcery No source code available Outdated (not updated by CodeSourcery) CodeSourcery provides updated commercial compiler suite > activate.050_compiler_sourcery_g++.sh 96
97 Extension 100_board_XXX Board description CPU type Memory Size and Types Pin definitions One board description is mandatory > activate.100_board_olimex_p107.sh 97
98 Extension 200_std_peripherals_library Common library to access Peripherals on CortexM3 chips Mandatory for all example projects Required by FreeRTOS > activate.200_std_peripherals_library.sh 98
99 Extension 300_scheduler_free_rtos Multitasking scheduler Provides inter task communication Mandatory for all example projects Requires exactly one activated from 300_scheduler_free_rtos_heap1 300_scheduler_free_rtos_heap2 300_scheduler_free_rtos_heap3 > activate.300_scheduler_free_rtos.sh 99
100 Extension 400_debug_registers Provides global variables for certain registers Each variable is a pointer to detailed struct Allows easy reading of individual bit in hardware named access to bitfields in hardware registers > activate.400_debug_registers.sh 100
101 Extension 400_lcd_320x240_olimex driver for LCD panel on prototype board STM32-LCD from Olimex Basic graphical + text features Makes use of demo code from Olimex > activate.400_lcd_320x240_olimex.sh 101
102 Extension 400_fix_point_lib Library for Fixed Point mathematic operations CortexM3 CPUs have no Floating Point Unit Fixed Point Math much faster than Floating Point Math in Software Only low loss in accuracy Need to choose range according to application! Documentation/Math/ > activate.400_fix_point_lib.sh 102
103 Extension 400_network_uip_ste101p Basic TCP/IP network Stack uip Includes demo software from Olimex Requires Protoboard Olimex P107 Only one socket at a time Packet resend to be implemented by application Documentation/Network/ > activate.400_network_uip_ste101p.sh 103
104 Extension 400_support_adc Simple functions for ADC configuration Configuration of single ADC-channels DMA enabled data transfer into variables single channel, blocking readout > activate.400_support_adc.sh 104
105 Extension 600_example_leds Simple Multitasking example Two tasks communicate via shared Variables taskbrightness periodically changes brightnes value taskcontrolled creates PWM on pin PB_LED1 to show current brightness > activate.600_example_leds.sh 105
106 Extension 600_example_lcd Basic example how to use LCD panel on prototype board STM32-LCD from Olimex Shown Features initialize panel set background/ foreground color print single characters at certain positions printf() at certain/ current positions > activate.600_example_lcd.sh 106
107 Extension 700_example_threading_queues_led Example showing several tasks communicating via queues visualization via two LEDs can run on any board that defines PB_LED1, PB_LED2 > activate.700_example_threading_queues_led.sh 107
108 Extension 700_example_threading_queues_lcd Example showing several tasks communicating via queues visualization on LCD panel producer task: current value consumer task: current value Queue size > activate.700_example_threading_queues_lcd.sh 108
109 Extension 700_example_threading_semaphores_led Example showing several tasks communicate via semaphores several producer tasks give varying amount of tags to a semaphore several consumer tasks take one tag each and do something for a while Visualization via two LEDs on PB_LED1, PB_LED2 > activate.700_example_threading_semaphores_led.sh 109
110 Extension 700_example_threading_semaphores_lcd Example showing several tasks communicate via semaphores several producer tasks give varying amount of tags to a semaphore several consumer tasks take one tag each and do something for a while Visualization on LCD panel two producer tasks six consumer tasks > activate.700_example_threading_semaphores_led.sh 110
111 Adapting linker script Used when linking all objject files into final binary Defines memory adresses and assignments in the uc Memory divided into areas with attributes Name Access (r ead, w rite, x ecutable) Start Size Sections defined with attributes Name Alignment (1, 2, 4, 8 Bytes) Assigned memory area. is current address counter File stm32.ld contains linker script 111
112 Configure Programmer Programmer is a hardware device JTAG-Connection between Desktop PC/ Laptop and uc flashes binary file onto uc Allows Incircuit Debugging Must be supported by OpenOCD Example: ARM-USB-TINY-H from Olimex Corp. used programmer defined in _/interface.cfg List of supported programmers to be found in ToolChain/OpenOCD/share/openocd/scripts/interface/ 112
113 compile.sh./compile.sh downloads + installs missing ToolChain creates symbolic links to installed libraries may activate basic example framework compies current project updates QtCreator/PROJEKT.creator flashes binary onto uc 113
114 Debugging In which stage does the bug occur During compilation (gcc -c) Syntaxerror Includefile not found.c-datei makefile #02 During linking after compilation Objektfile missing Objektfile from wrong path makefile #09 makefile #03 During runtime Wrong uc chosen Too few/ much RAM Stackoverflow activate correct board stm32.ld xtaskcreate() call 114
115 Versionskontrollsysteme Erfassung von Änderungen an Dateien Protokollierung von Änderungen Wiederherstellung alter Zustände Archivierung der gesamten Historie Koordinierung des gemeinsamen Zugriffs Verzweigung in mehrere Branches 115
116 Funktionsweisen Lokale Versionsverwaltung Zentrale Versionsverwaltung Verteilte Versionsverwaltung 116
117 Lokale Versionsverwaltung Oft nur einzelne Datei versioniert Änderungen in Datei selbst gespeichert Werkzeuge: SCCS, RCS Beispiele Technische Zeichnung mit Änderungsindex 117
118 Zentrale Versionsverwaltung Als Client-Server System aufgebaut Ein zentraler Server speichert komplette Historie optional: Read-Only Zugriff für Fremduser optional: Web-Interface Entwickler jeweils nur eine Version Zugriff auch per Netzwerk möglich Werkzeuge cvs, svn (OpenSource) AlienBrain, Perforce, Team Foundation,
119 Verteilte Versionsverwaltung Jeder Entwickler hat komplette Historie Zusätzlich zentraler Server möglich Änderungen zwischen Entwicklern austauschen optional: Read-Only Zugriff für Fremduser optional: Web-Interface Werkzeuge git, GNU arch, Mercurial, Bazaar (OpenSource) BitKeeper 119
120 Wie Git das? Übersicht Installation Dezentrale Verwaltung Verzweigte Entwicklung Datenaustausch Markierte Revisionen Interoperabilität Web-Interface 120
121 Git - Übersicht Freie Software Verteilte Versionsverwaltung von Dateien Entwickelt zur Verwaltung des Linux Kernel Quelltextes Betriebsysteme Linux, Solaris, Mac OS X, FreeBSD, Windows (Cygwin, Msysgit, TortoiseGit-Shell) Aktuell eingesetzt in vielen OpenSource Projekten Amarok, Android, BusyBox, Debian, DragonFly BSD, Eclipse, Erlang, Fedora, Git, Gnome, KDE, Qt, Ruby, Kurzanleitung: Webseite:
122 Git - Installation Debian/ Ubuntu sudo apt-get install git opensuse sudo zypper install git Windows
123 Git - Dezentrale Verwaltung Jeder Benutzer hat eigenes Repository > git pull Holt neuesten Stand vom Zentralrepository Kann Merge ausführen! > git commit sichert aktuellen Stand lokal kommentiert aktuellen Stand erzeugt einzigartige Commit-ID (Hexzahl) > git push kopiert neuesten Stand auf Zentralrepository 123
124 Git - Verzweigte Entwicklung 1/3 4 Verzweigung in der Entwicklung > git checkout -b B1 1 Verzweigung ab einem älteren Zustand > git checkout -b B2 2 1 Verzweigungspunkt: Branchname/ Commit-ID/ Tag Alle verfügbaren Branches auflisten > git branch -r Auf anderen Branch wechseln > git checkout BRANCH_NAME Branch zum Server hochladen > git push origin BRANCH_NAME 124 B B2 5
125 Git - Verzweigte Entwicklung 2/3 User B > git clone :Repo auf Branch origin master User A > git clone :Repo auf Branch origin master > git checkout -b B1 Branch B1 lokal erstellt Wechsel zu Branch B1 > git push origin B1 Branch auf Server laden > git pull neuer Branch entdeckt > git branch -r alle Branches auflisten > git checkout B1 Wechsel zu Branch B1 125
126 Git - Verzweigte Entwicklung 3/3 Implizite Verzweigung User A > git commit -a -m C1 User B > git commit -a -m C2 > git push C1 fehlt Impliziter Branch User B > git pull > git commit -a automatischer Merge von C1 User A > git pull A jetzt auf Stand M 126 C C1 C C1 C2 C C1 M C2
127 Git Datenaustausch 1/2 International durch verschiedene Protokolle Git-Protokoll über TCP Port 9418 SSH (verschlüsselt) HTTP HTTPS FTP rsync (Patches) 127
128 Git Datenaustausch 2/2 Verschlüsselte Kommunikation per SSH Benutzer erzeugt RSA Schlüsselpaar > ssh-keygen -t rsa -C VORNAME.NACHNAME ~/.ssh/id_rsa ~/.ssh/id_rsa.pub Private Key Public Key Publickey auf Server kopieren Bei Anmeldung wird Private Key benötigt > git clone Server verschlüsselt Rechenaufgabe mit Public Key Client entschlüsselt mit Private Key und sendet Ergebnis Server akzeptiert Client 128
129 Git - Markierte Revisionen > git tag MARKIERUNG Definiert Markierung für aktuellen Stand Markierung beschreibt z.b. Releaseversion Markierung später für Branch nutzbar > git tag listet alle Markierungen auf > man git-tag 129
130 Git - Interoperabilität Git's das auch anders? Kompatibilitätsinterface GNU Arch (git-archimport) svn (git-svn) cvs (git-cvsexportcommit, git-cvsimport git-cvsserver) Darcs (darcs-fastconvert, darcs2git) Quilt (git-quiltimport) manpages 130
131 Git - Web-Interface Nice looking access to git OpenSource Software (some) gitweb is part of git distribution ViewGit is a total PHP rewrite CGit written in C gitalist is written in Perl Existing Webhoster (one) GitHub Closed Source hoster 131
132 Chapter 2 Multitasking in Embedded Systems 132
133 Multitasking in ES What is Singletasking? What is Multitasking? Why Multitasking? Different approaches Realtime Operating Systems FreeRTOS Synchronization Example Project Debugging Multitasking Software 133
134 What is Singletasking? Do only one thing at a time Most efficient way to solve problems Applicable to every algorithm No management overhead No internal synchronization required Easy to code Busy-wait for I/O No Interrupts 134
135 Singletasking Example while (1) { if ( Byte = receivebyte() ) { // blocks! Buffer[Index++] = Byte; if ( Index >= MessageSize) { M_t* M = (M_t*) Buffer; switch (M->Type) { case mt_commanda:... case mt_commandb: default: break; } Index = 0; } } } 135
136 What is Multitasking? Aim for multiple targets Switch context often Management overhead Synchronization required Interrupts required Hard to code/ debug Implicit delays Increased memory usage Implementation difficult for many algorithms 136
137 Multitasking Example main() { int Queue = xqueuecreate(...); xtaskcreate(receive, Queue, ); xtaskcreate(process, Queue, ); } void Process(int Q) { while (1) { M = (M_t*) xqueuereceive(q); if (M) { switch (M->Type) { case mt_cmda:... case mt_cmdb:... default: break; }}}} void Receive(int Q) { char Buffer[10][100]; int Index = 0; while (1) { char* Writer = &(Buffer[Index,0]); int Remaining = MessageSize; while (Remaining > 0) { if ( Byte = readbyte() ) { // sleeps! *Writer++ = Byte; Remaining--; } xqueuesend(q, &(Buffer[Index,0]);); Index++; if (Index > 99) Index = 0; } } 137
138 Why Multitasking? Functions spawnable multiple times Eases handling of slow IO Benefits from multiple CPU-cores Only 1 central Timer required Short Interrupt Service Routines Less global variables required 138
139 No life without Multitasking! Every Embedded System needs MT MT often implemented via Interrupts Complex Service Routines Data Exchange via Global Variables Difficult to debug Typical approach: Super-Loop Periodically starts set of functions Similar to task scheduler 139
140 Different Approaches Multiprogramming Ancient mechanism for Periheral Access Realized via Terminal Stay Ready (TSR) Cooperative Multitasking Central Scheduler manages Processes Each process grants CPU to other processes Single process can block whole system Preemptive Multitasking Scheduler interrupts each process periodically Requires central Interrupt-Timer Preemptible Multitasking High priority Applications can interrupt others (OS/2, Linux, FreeRTOS) Allows faster response times 140
141 Realtime Scheduling Definition of Realtime Real-time computing means a hardware + software system that must response within a strict time constraint. Realtime constraint Hard Violation causes hazardous results Firm Infrequent violations tolerable but degrade system's quality of service Soft Usefullness of results degrade after their deadline 141
142 FreeRTOS Multitasking Scheduler Premptible Multitasking High triority tasks block low priority ones Inter Thread Communication Semaphores Queues Developed specially for Embedded Systems Open Source FreeWare with Commercial Support Ported to several μc Architectures 142
143 FreeRTOS Queues Base of inter task communication Send message Task A Task Task Interrupt Service Routine Task Call by value Reading from empty queue Function call waits until Queue is filled No CPU time is wasted during Wait 2 1 Task B FreeRTOS Queues 3 143
144 FreeRTOS - Semaphores Binary Task B Task B Task A Implemented as Queue of fixed size 1 Best suited for inter thread signaling Task B waits until Task A activates once Counting Task A Implemented as Queue of fixed size N Task A can activate B up to N times at once Data in Queue is of no interest FreeRTOS - Semaphores 144
145 FreeRTOS - Mutex best suited for Resource locking Semaphore + Priority inheritance Non recursive Task A Can be locked only once Recursive Task B thread can lock multiple times must be unlocked as often as being locked FreeRTOS - Mutexes 145
146 Multithreading with Queues Activate Extensions for Queues example on STM32-P107 > cd extensions.active/ > rm * > ln -s../extensions/makefile.free_rtos. > ln -s../extensions/makefile.example_threading_queues. > ln -s../extensions/makefile.free_rtos. > ln -s../extensions/makefile.example_leds. 146
147 Multithreading with Queues Activate Extensions for Queues example on STM32-LCD > cd extensions.active/ > rm * > ln -s../extensions/makefile.free_rtos. > ln -s../extensions/makefile.example_threading_queues. > ln -s../extensions/makefile.free_rtos. > ln -s../extensions/makefile.lcd_320x240_olimex. 147
148 Multithreading with Queues Spawning Tasks Producer threading_start() Consumer Print 148
149 Multithreading with Queues Communicate via Queues s8_t Column; s8_t Row; char Text[10]; s16_t Value; Producer LED1 6 5 PJ PJ PJ 4 3 Consumer Print enqueue/ dequeue LED2 setport()/ clrport() 149
150 Multithreading with Semaphores Activate Extensions for Semaphores example on STM32-P107 > activate.700_example_threading_semaphores_led.sh Activate Extensions for Semaphores example on STM32-LCD > activate.700_example_threading_semaphores_lcd.sh 150
151 Multithreading with Semaphores Spawning Tasks Producer1 Producer2 threading_start() Consumer1 Consumer2 Print 151
152 Multithreading with Semaphores Communicate via Semaphore enqueue/ dequeue Producer1 Data irrelevant 0-10/s 0-10/s Semaphore Producer2 setport()/ clrport() 5/s 5/s 5/s 5/s Consumer1 LED1 Consumer2 LED2 Consumer3 Consumer4 PJ PJ PJ 152 Print
153 Debugging Multitasking Software Different types of Memories Multitasking & Stacks objdump 153
154 Different types of Memories Storage RAM Heap Stack Datatypes Constants Global Variables Local Variables 154
155 Constants Stored in Flashmemory along code Automatically initialized 0x (initial value contained in binary) Peripherals Reference to value points to 0x address > 0x RAM Example: char* HelloWorld = Hello world ; 155 Hello World 0x Flash
156 Global Variables Stored in RAM Initialized by code at program start Reference to value points to address > 0x x Peripherals Example: int V = 42; 0x RAM void main() { V++; } 0x Flash 156
157 Lokal Variables 157
158 Multitasking & Stacks Stacks in Singletask Applications Stacks in Multitasking Applications Stacks in FreeRTOS Stackoverflow 158
159 Debug: objdump 159
Versionskontrollsysteme
Versionskontrollsysteme Erfassung von Änderungen an Dateien Protokollierung von Änderungen Wiederherstellung alter Zustände Archivierung der gesamten Historie Koordinierung des gemeinsamen Zugriffs Verzweigung
MehrRevisionskontrollsystem GIT
Revisionskontrollsystem GIT Diplom Informatiker Gregor Rebel 1/ 19 Revisionskontrollsystem GIT v1.2 Versionskontrollsysteme Erfassung von Änderungen an Dateien Protokollierung von Änderungen Wiederherstellung
MehrSoftwareentwicklung unter Linux
Softwareentwicklung unter Linux 1/ 117 Übersicht Vergleich Betriebsysteme Was ist Linux? Rechtliche Situation Das Linux Dateisystem Aufsetzen des Betriebssystems Installation von Softwarepaketen Werkzeuge
MehrOverview. Praktikum Embedded Systems
Overview Praktikum Embedded Systems Wintersemester 2012/2013 Software development with Linux Using Multitasking in Microcontrollers URL: http://hlb-labor.de/lehre 1 Chapter 1 Software development under
MehrLinux und Eclipse Einführung SysArch Tutoren WS 2008/2009 Atanas Dimitrov, Johannes Weiss
Linux und Eclipse Einführung SysArch Tutoren WS 2008/2009 Atanas Dimitrov, Johannes Weiss 1 Entwicklung Graphische Oberflächen Distributionen Probleme und Kritik 2 Entwicklung I Linux ist ein weitgehend
MehrVersionsverwaltung für die KU Betriebssysteme. Eine Einführung
Versionsverwaltung für die KU Betriebssysteme Eine Einführung 1 1 Versionsverwaltung? Wozu? Nachvollziehbarkeit Wer hat was wann geändert Wiederherstellbarkeit kaputteditiert Wartbarkeit Verschiedene Versionen
MehrATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck
Das Linux-Dateisystem bin usr sbin lib mail / var spool boot lpd Rc0.d etc Rc.d Rc1.d Verzeichnisstruktur / Root- oder Wurzelverzeichnis, das oberste Verzeichnis im kompletten Dateisystem. /bin Programme
MehrKURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE
KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Einrichtung des Systems...Seite 04 3. Erzeugen eines Backup-Skripts...Seite
MehrThe ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
MehrBenutzer und Rechte Teil 1, Paketverwaltung, SSH
Benutzer und Rechte Teil 1, Paketverwaltung, SSH Linux-Kurs der Unix-AG Benjamin Eberle 26. Mai 2015 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen
MehrMein eigener Homeserver mit Ubuntu 10.04 LTS
In diesem Tutorial zeige ich ihnen wie sie mittels einer Ubuntu Linux Installation einen eigenen Homeserver für Windows Freigaben aufsetzen (SMB/CIFS). Zunächst zur der von mir verwendeten Software- /Hardwarekombination:
MehrInstallation mit Lizenz-Server verbinden
Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version 1.0 Voraussetzungen für diesen Workshop 1. Die M-Quest Suite 2005-M oder höher ist auf diesem Rechner installiert 2. Der M-Lock 2005 Lizenzserver
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
Mehrgit & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31
git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrHow to install freesshd
Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem
MehrC++ mit Eclipse & GCC unter Windows
C++ mit Eclipse & GCC Seite 1 / 14 C++ mit Eclipse & GCC unter Windows Hinweise Stand 18. Okt. 2014 => GCC 4.9.1 Boost 1.56.0 Eclipse Luna V. 4.4.1 Java Version 8, Update 25 (entspricht 1.8.0_25) Achtung
MehrDateisystem 1, Suchpfad, Befehlstypen
Dateisystem 1, Suchpfad, Befehlstypen Linux-Kurs der Unix-AG Benjamin Eberle 8. Januar 2015 Was ist ein Dateisystem? Verwaltung von Dateien auf Datenträgern Beispiele: EXT3, EXT4, FAT, NTFS unter Linux
MehrDie Projek*ools. Files, Git, Tickets & Time
Die Projek*ools Files, Git, Tickets & Time Agenda Die Abgabe von Dokumenten: Files Das Pflegen von Software: Versionskontrolle mit Git Management von Anforderungen: Tickets Management von Zeit: Time Files
MehrDateisystem 1, Suchpfad, Befehlstypen
Dateisystem 1, Suchpfad, Befehlstypen Linux-Kurs der Unix-AG Andreas Teuchert 17. Juni 2014 Was ist ein Dateisystem? Verwaltung von Dateien auf Datenträgern Beispiele: EXT3, EXT4, FAT, NTFS unter Linux
MehrBenutzer und Rechte Teil 1
Benutzer und Rechte Teil 1 Linux-Kurs der Unix-AG Zinching Dang 19. November 2012 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen unterschiedliche
MehrTorsten Flatter inovex GmbH. "Git.NET" gibt's nicht?
Torsten Flatter inovex GmbH "Git.NET" gibt's nicht? Vorstellung Torsten Flatter inovex GmbH.NET / C# seit 2004 VSS, CVS, SVN, TFS, hq, git Enterprise-Umfeld Agenda Überblick Grundlagen Einsatzbereiche
MehrVersionsverwaltung mit Mercurial für Einsteiger
Versionsverwaltung mit Mercurial für Einsteiger Chemnitzer Linuxtage 2009 Stefan Schwarzer, SSchwarzer.com info@sschwarzer.com Chemnitz, Germany, 2009-03-14 Versionsverwaltung mit Mercurial für Einsteiger
MehrApache Subversion (SVN)
Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 git Datamining
MehrInstallations-Dokumentation, YALG Team
Installations-Dokumentation, YALG Team Version 8.1 1 Benötigtes Material 2 Vor der Installation 3 Beginn 4 Installation 4.1 Sicherheit 4.2 Partitionierung 4.3 Paketauswahl 4.4 Paketauswahl (fein) 5 Konfiguration
MehrVerteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln
Verteilte Versionskontrolle mit GIT 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln 1 über mich 32 Jahre alt Softwareentwickler bei der Firma GreenPocket in Köln Java EE Entwickler und Rails
Mehrgit Änderungen verwalten mit git
Änderungen verwalten mit git Wie arbeitet man am besten an einem Protokoll zusammen? PeP et al. Toolbox, 2014 2 Idee: Austausch über Mails PeP et al. Toolbox, 2014 3 Mails: Probleme Risiko, dass Änderungen
MehrMoodle aktuell halten mit Git
Moodle aktuell halten mit Git 3a 1 2 3b 3c 4c Vorstellung Andreas Grabs Softwareentwickler Seit 2010 Moodle Core- Entwickler Freier Mitarbeiter eledia GmbH Inhalt Allgemeines Allgmeine Vorteile Vorteile
Mehrhttps://portal.microsoftonline.com
Sie haben nun Office über Office365 bezogen. Ihr Account wird in Kürze in dem Office365 Portal angelegt. Anschließend können Sie, wie unten beschrieben, die Software beziehen. Congratulations, you have
MehrKonfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung
Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrMobiDM-App Handbuch für Windows Mobile
MobiDM-App Handbuch für Windows Mobile Dieses Handbuch beschreibt die Installation und Nutzung der MobiDM-App für Windows Mobile Version: x.x MobiDM-App Handbuch für Windows Mobile Seite 1 Inhalt 1. WILLKOMMEN
Mehrdisk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2
disk2vhd Wie sichere ich meine Daten von Windows XP? Inhalt Thema Seite Vorwort 1 Sichern der Festplatte 2 Einbinden der Sicherung als Laufwerk für Windows Vista & Windows 7 3 Einbinden der Sicherung als
Mehr1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: 2015-02-18 Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich
252-0842-00L Programmieren und Problemlösen Eclipse Tutorial FS 2015 Herausgabe: 2015-02-18 Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich 1 Vorraussetzungen Falls Java noch
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrMetaQuotes Empfehlungen zum Gebrauch von
MetaQuotes Empfehlungen zum Gebrauch von MetaTrader 4 auf Mac OS Auch wenn viele kommerzielle Angebote im Internet existieren, so hat sich MetaQuotes, der Entwickler von MetaTrader 4, dazu entschieden
MehrSFTP SCP - Synology Wiki
1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2
Mehrcs106 Informatiklabor Teil 1: Java-Installation
Herbstsemester 2009 cs106 Informatiklabor Teil 1: Java-Installation Florian Zeller Vorgehen und Ziele Wöchentlich eine Übung Unterstützte Bearbeitung während den Übungsstunden Austausch mit älteren Semestern
MehrBetriebssystem Windows - SSH Secure Shell Client
Betriebssystem Windows - SSH Secure Shell Client Betriebssystem Windows - SSH Secure Shell Client... 1 Download... 2 Installation... 2 Funktionen... 3 Verbindung aufbauen... 3 Verbindung trennen... 4 Profile...
MehrVon SVN zu Git. Daniel Willmann <daniel@totalueberwachung.de> 2011-10-18 cbna
Von SVN zu Git Daniel Willmann 2011-10-18 cbna Inhalt Einführung Git für SVN Benutzer Weitergehende Konzepte Zusammenfassung Daniel Willmann Von SVN zu Git 2 Über den Vortragenden
MehrHerbstsemester 2009. cs106 Informatiklabor Teil 4: Partitionierung & Linux Installation. P.Huber@stud.unibas.ch
Herbstsemester 2009 cs106 Informatiklabor Teil 4: Partitionierung & Linux Installation P.Huber@stud.unibas.ch Geschichte 1983 rief Richard Stallmann das GNU-Projekt ins Leben Ziel: Vollständig freies UNIX-ähnliches
MehrLaufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1
Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1 Wie wird auf Festplatten zugegriffen? Es gibt nur einen Verzeichnisbaum, siehe Verzeichnisse Es gibt
MehrTapps mit XP-Mode unter Windows 7 64 bit (V2.0)
Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...
MehrWindows Server 2012 R2 Essentials & Hyper-V
erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials
MehrAnwenderhandbuch. ipoint - Server
Anwenderhandbuch ipoint - Server Inhaltsverzeichnis 1 ÜBERWACHUNG DES SERVERPROZESSES... 3 1.1 DEN SERVER STARTEN... 3 1.2 DEN SERVER ANHALTEN/BEENDEN... 6 2 DEN SERVER KONFIGURIEREN... 8 3 FIREWALL...11
MehrLinux - a bit advanced
Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen
MehrKonfigurationsdateien mit Git verwalten
Konfigurationsdateien mit Git verwalten Chemnitzer Linuxtage 2011 Julius Plenz 19. März 2011 Veröffentlicht unter der CreativeCommons-Lizenz (By, Nc, Sa) http://chemnitzer.linux-tage.de/2011/vortraege/782
MehrLinux im Studium. Serbest Hammade / Resh, Christian Sturm. Do, 15. November 2012
Linux im Studium Serbest Hammade / Resh, Christian Sturm Do, 15. November 2012 Linux Aufbau von Linux Distributionen Grafische Desktopumgebungen HFU & Linux Instant Messaging via Jabber (XMPP) HFU & Jabber
MehrHex Datei mit Atmel Studio 6 erstellen
Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.
MehrSoftwareupdate-Anleitung // AC Porty L Netzteileinschub
1 Softwareupdate-Anleitung // AC Porty L Netzteileinschub Softwareupdate-Anleitung // AC Porty L Netzteileinschub HENSEL-VISIT GmbH & Co. KG Robert-Bunsen-Str. 3 D-97076 Würzburg-Lengfeld GERMANY Tel./Phone:
MehrOpen Source. Hendrik Ebbers 2015
Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering
MehrOracle VirtualBox. Zum Herunterladen für alle Betriebssysteme gibt s die VirtualBox auf: https://www.virtualbox.org/
Für Vieltester von Betriebssystemen ein wohl einzigartiges Tool. Aber auch für diejenigen die Linux am Rechner haben und vielleicht doch für den einen oder anderen Fall Windows benötigen genau das richtige
MehrPython SVN-Revision 12
Python SVN-Revision 12 Uwe Ziegenhagen 7. Januar 2012 Vorwort Dieses Skript erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit. Es wird geschrieben, um mir als Gedächtnisstütze für den Umgang
MehrUmbenennen eines NetWorker 7.x Servers (UNIX/ Linux)
NetWorker - Allgemein Tip #293, Seite 1/6 Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux) Dies wird offiziell nicht von unterstützt!!! Sie werden also hierfür keinerlei Support erhalten. Wenn man
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
MehrTutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD
Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Von SpecialK für www.eee-pc.de Stand:Version 1.0 vom 25.08.2008 Vorwort: Mit Hilfe dieses Tutorials wird aus der beim EEE 901
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrEntwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014
Entwicklungsumgebungen Packer, Vagrant, Puppet Alexander Pacnik Mannheim, 10.11.2014 inovex... über inovex und den Referenten 2 Entwicklungsumgebungen... Übersicht Einführung Packer Konfiguration Packer
MehrWinCVS Version 1.3. Voraussetzung. Frank Grimm fgr@micenet.de http://www.micenet.de. Mario Rasser mario@rasser-online.de http://www.rasser-online.
WinCVS Version 1.3 Frank Grimm fgr@micenet.de http://www.micenet.de Mario Rasser mario@rasser-online.de http://www.rasser-online.de Voraussetzung 1. Installation von Python (Version >= 2.1) Download von
MehrWorkshop: Eigenes Image ohne VMware-Programme erstellen
Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community
MehrInstallation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren
Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren 1 32- oder 64-bit Windows feststellen In den nachfolgenden Schritten ist es nötig, dass Sie wissen, ob Sie
MehrIBM Software Demos Tivoli Provisioning Manager for OS Deployment
Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,
MehrAufbau einer Testumgebung mit VMware Server
Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten
MehrSchritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrKURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE
KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Zugriff auf Cloud Object Storage mit Cyberduck...Seite 04 3. Neuen Container
MehrIn 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrWichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
MehrNetbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients
Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients 1.1 JAVA 6 Installieren sudo gedit /etc/apt/sources.list und folgende zeilen hinzufügen deb http://www.backports.org/debian etch-backports
MehrDer Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:
Installationshinweise Z250I / Z270I Adapter IR USB Installation hints Z250I / Z270I Adapter IR USB 06/07 (Laden Sie den Treiber vom WEB, entpacken Sie ihn in ein leeres Verzeichnis und geben Sie dieses
MehrInstallation DV4mini ausgehend von einem frisch installierten System:
Installation DV4mini ausgehend von einem frisch installierten System: DJ0ABR/6.08.2015 Ubuntu 12.04 LTS: 1. Image Ubuntu 12.04 LTS auf dem PC installieren. Zum Testen habe ich die Desktop Version von dieser
MehrNEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient
Filing system designer FileDirector Version 2.5 Novelties FileDirector offers an easy way to design the filing system in WinClient. The filing system provides an Explorer-like structure in WinClient. The
MehrEmbedded So)ware. Einrichten der Arbeitsumgebung
Embedded So)ware Einrichten der Arbeitsumgebung Inhaltsangabe 1. Was ist installiert 2. Was ist zu tun? Einrichten des Raspi! Cross Compiler auf den Arbeitsplatzrechner installieren! Raspi einbinden! Plugin
MehrEinführung in Subversion
Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame
MehrSSH Authentifizierung über Public Key
SSH Authentifizierung über Public Key Diese Dokumentation beschreibt die Vorgehensweise, wie man den Zugang zu einem SSH Server mit der Authentifizierung über öffentliche Schlüssel realisiert. Wer einen
MehrInstallation Linux agorum core Version 6.4.5
Installation Linux agorum core Version 6.4.5 Copyright 2008-2010, agorum Software GmbH 01.10.2010, Dokumentenversion 6.4.5 Kapitel 1 Grundinstallation Linux 1.1 Allgemein Normalerweise sollte jedes Linux-basierte
MehrInstallation und Aktualisierung der VMware-Tools
Installation und Aktualisierung der VMware-Tools [Bei weiteren Fragen wenden Sie sich bitte per Mail an vmwareadmin@uni-trier.de] Inhalt Installation von VMware-Tools... 2 Ubuntu-Linux... 2 Installation
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrTeamSpeak3 Einrichten
TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen
MehrLinux Cafe 2013 11 11. Referent: Bernd Strößenreuther
Versionsverwaltung mit Git Linux Cafe 2013 11 11 Referent: Bernd Strößenreuther mailto:linux cafe@stroessenreuther.net Lizenz Sie dürfen dieses Dokument verwenden unter den Bedingungen der Creative Commons
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrGNU/Linux für Neulinge
GNU/Linux für Neulinge UnFUG SS13 Florian Kreidler 18. April 2013 Florian Kreidler GNU/Linux für Neulinge 1 / 21 Agenda 1 Historie Warum Linux? Einsatzgebiete 2 3 Editoren Virtualisierung Chatmöglichkeiten
MehrPraktikum Ingenieurinformatik (PI)
Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten
MehrReadme-USB DIGSI V 4.82
DIGSI V 4.82 Sehr geehrter Kunde, der USB-Treiber für SIPROTEC-Geräte erlaubt Ihnen, mit den SIPROTEC Geräten 7SJ80/7SK80 über USB zu kommunizieren. Zur Installation oder Aktualisierung des USB-Treibers
MehrHow to install ubuntu by crypted file system
How to install ubuntu by crypted file system Enthaltene Funktionen: - Installation eines verschlüsselten Ubuntu Systems Voraussetzung: - Internetverbindung - Iso-Image Download unter: http://wiki.ubuntuusers.de/downloads/oneiric_ocelot
MehrTeamschool Installation/ Konvertierungsanleitung
Teamschool Installation/ Konvertierungsanleitung 1. Ordner c:\inetsrv\wwwroot\teamschool anlegen 2. CD Inhalt nach c:\inetsrv\wwwroot\teamschool kopieren 3. SQL.ini in c:\inetsrv\wwwroot\teamschool\anzeigen
MehrPatch Management mit
Patch Management mit Installation von Hotfixes & Patches Inhaltsverzeichnis dieses Dokuments Einleitung...3 Wie man einen Patch installiert...4 Patch Installation unter UliCMS 7.x.x bis 8.x.x...4 Patch
MehrRemote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle
Remote Control - LeCroy Oszilloskop WaveSurfer 3000 mit LabVIEW via VICP LAN-Schnittstelle Damit LeCroy Oszilloskope der Serie WaveSurfer 3000 mit LabVIEW via LAN (VICP) gesteuert werden können werden
MehrCVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS
CVS Maik Zemann CVS (Concurrent Versions System) The open standard for version control 1 Gliederung Gliederung Was ist CVS? Motivation? Konzept von CVS Die wichtigsten Befehle Merging Logging im Quelltext
MehrIm Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server.
1. DIME Tools 1.1 Einleitung Im Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server. 1.2 Voraussetzungen Folgende
MehrIn 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Schritthan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme
Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h
Mehr1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse
1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche
MehrAnleitung zum Prüfen von WebDAV
Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des
MehrEr musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt
Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrEinführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn michael.kuhn@informatik.uni-hamburg.de
Git Fast Version Control System Michael Kuhn michael.kuhn@informatik.uni-hamburg.de Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2011-09-28 1 / 16 1 Einführung Überblick
MehrX Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum
/LQX[*UXQGODJHQ, (LQI KUXQJLQGLH6KHOO 'DWHLHQXQG 9HU]HLFKQLVVH :DVLVW]XWXQ" X Anmelden am System X System herunterfahren X Grundlegendes zur Shell X Das Hilfesystem X Dateioperationen X Bewegen im Verzeichnisbaum
MehrInstallation Messerli MySQL auf Linux
Installation Messerli MySQL auf Linux Einleitung Grundsätzlich wird bei der Installation der Messerli Software auf einem Linux-Server wie folgt vorgegangen: 1. Angepasster RMI-MySQL Server wird auf Linux
Mehr