Accueil    Formations    Informatique    Systèmes    Linux    Raspberry PI - Développement d'applications embarquées

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Objectifs pédagogiques / Compétences visées

  • Installer une distribution taillée sur mesure pour un équipement RaspBerryPi au moyen de Buildroot.

Niveau requis

Connaître le langage C ou C++ ainsi que les commandes Linux.

Public concerné

Développeurs.

Programme

Présentation

Architecture

  • Architecture Linux
  • Les différents éléments d'un système Linux
  • Le BIOS et le boot
  • Introduction au noyau
  • La librairie libc

Init et démons

  • Inittab et init
  • Niveau d'exécution
  • Exemple fichier /etc/inittab
  • Les différents types de démon

Init et shell

  • Les commandes de base et programme
  • Le shell
  • Les gestionnaires de fenêtre
  • Qt

Licences

Les distributions

  • Les distributions et les outils de mise à jour

Les licences

  • Objectif
  • Free vs Open Source
  • Avertissement
  • Les formes de licence
  • Les principales licences de logiciels libres

Différences entre les licences

  • GPL
  • LGPL
  • Apache
  • X11
  • Eclipse
  • BSD
  • Licences sur les contenus

Compilation

Compilation des sources

  • Vérification d'intégrité
  • Décompression des sources
  • Commandes de base CVS / SVN / Git
  • Morphologies des programmes
  • Rappel du mécanisme de compilation

Les librairies

  • Le principe des librairies
  • Edition de lien
  • Librairies dynamiques
  • Utilisation des librairies
  • Librairies C utilisées en C++
  • Les makefiles
  • Configure
  • Problèmes de compilation
  • Installation d'une librairie sous Debian

La librairie libc

  • glibc
  • uClibc
  • EGLIBC
  • Dietlibc
  • Newlib

Le noyau

Présentation

  • Versions
  • Les sources
  • Configuration du noyau
  • Module / Kernel / None
  • Avantage / désavantage des modules
  • Commandes sur les modules

Configuration

  • make xconfig / make gconfig / make menuconfig / make nconfig
  • Autres possibilités
  • Les options de compilation du noyau

Options de compilation

  • La compilation
  • Installation
    • Du noyau
    • Des modules
  • Disque minimal en RAM
  • Fichier config
Exemple de travaux pratiques (à titre indicatif)
  • Compilation d'un noyau

BusyBox

  • BusyBox : présentation et configuration
  • Les commandes BusyBox
  • Ajouter des commandes à BusyBox
  • Finalisation d'ajout d'une commande

L'aide via Freenode

  • Aide
  • L'aide par IRC (Internet Relay Chat)
  • Logiciels IRC
  • Présentation du réseau Freenode
  • Exemple de canal

Plus loin avec Freenode

  • Liste des canaux
  • Freenode : NickServ
  • Quelques règles de bon sens
  • Pastebin / Imagebin

Raspberry

Architecture ARM (Advanced RISC Machine)

  • Les processeurs ARM
  • Quelques termes à connaître
  • Les familles de processeurs ARM
  • Les processeurs ARM9 et ARM10
  • Les cortex

Présentation de la carte

  • Les cartes Raspberry
  • Carte Raspberry PI 2
  • Légendes
  • OS disponibles

Installation de base

  • Principe d'installation
  • Formatage via fdisk
  • Copie de Raspbian sur la carte

Compilation croisée

Présentation

  • Compilation croisée
  • Machine hôte
  • Les compilateurs
    • C et C++
    • GCC (suite)
  • Contenu d'une chaîne croisée
  • Les Binutils
  • Les librairies de traitement mathématique
  • Les entêtes du noyau

Compilation du compilateur

  • Chaîne de compilation croisée
  • Alternatives à la compilation croisée
  • Les chaînes précompilées
  • Les chaînes de fabrication de cross compilateurs
  • Les composants de la chaîne
  • Processus de fabrication de la chaîne par soi-même

Appels compilateurs / compilateurs croisés

  • Edition de lien
  • Les étapes de compilation

Buildroot

Présentation

  • Utilisation et principes de Buildroot
  • Paquetages nécessaires à Buildroot
  • Compilation de Buildroot
  • Les paramètres que l'on peut ajouter

Utilisation

  • Exécution
  • Les fichiers générés
  • Les fichiers .conig
  • Utiliser les chaînes de compilation générées et externes

Installation de la distribution

  • Préparation de la carte Micro SD
  • Agrandir la partition à toute la mémoire SD
  • Divers réglages
  • Customiser la cible

Divers

Paramètres spécifiques

  • Configuration de l'ordonnanceur
  • Exemples lignes cron
  • Clavier français
  • Notes à propos des modifications de configuration Buildroot

Services réseau supplémentaires

  • Connexion sécurisée avec SSH et transferts de fichiers par SCP
  • Serveur httpd de BusyBox
  • Ajustement d'horloge système avec NTP
  • Autres astuces et documentations

Ajout de programmes tiers

  • Ajout de programmes spécifiques
  • Les patchs
  • Niveaux de patch

GDB

Premiers pas

  • Présentation et lancement de GDB
  • Programme avec arguments
  • Quelques astuces
  • Gestion des variables d'environnement
  • Afficher la source d'un programme

Suivre l'exécution

  • Breakpoint / Watchpoints / Catchpoints
  • GDB : gestion des points d'arrêts
  • Les commandes pas à pas
  • Signals

Affichage des variables

  • Revenir en arrière
  • La pile d'appel
  • Modification du contexte
  • Print variable
  • Autres affichages
  • Printf dynamique
  • Break avec liste de commandes

Cas avancés

Debugger un programme en exécution

  • Contraintes
  • Sous gdb ou ddd

Debugger via un "core dump"

  • Debug après plantage : core dump
  • Tuning de génération du core
  • Technique de debug du core

Debugger à distance

  • Debug croisé
  • Installation sur l'équipement distant
  • Mise en route sur l'équipement host
  • Remarques sur le debug croisé

Modalités d’évaluation des acquis

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Vous souhaitez suivre cette formation ?

Cette formation est disponible en présentiel ou en classe à distance, avec un programme et une qualité pédagogique identiques.

Choisissez la modalité souhaitée pour vous inscrire :

Votre société a besoin d'une offre personnalisée ? Contactez-nous

Faites-nous part de votre projet de formation, nous sommes là pour vous guider.

Contactez-nous