logo

Général

Accueil

Présentation section

Matériel section

Trombinoscopes

Liens

Plan du site

Contactez-nous

CIEL 1

Langage C

Langage C++

Langage C#

Linux sur Raspberry

TP Arduino

UML/SysML

Mini-projets

Math

CIEL 2

UML

Rasberry

Système Num. 1

TP C Visual Studio

TP C++ Arduino

Aide spécifique Java

TP C/C++ MyRIO

TP Darwin-Op

Les TP réseau Linux

Les TD Java

Les TP Java

TD C#

TP C#

Les Mini-projets

Vidéo Mini-Projet

Stage en entreprise

Système Num. 2

TP C++/C#

RaspBerry

Projets

IRIS 2

TP IPC linux / coldFire

TP PHP

Cours / TP XML

Projets

S SI

1er S SI

1er SSI mini projet

1er S SI Liens

STI2D

SysML

Terminale SIN

Projet SIN

1er ETT

Projet 1er ETT

Terminale ETT

Questions BAC ETT

AP

Serfa

UML

C++

Statistiques

1 visiteur

Record : 207

Pages vues :

Aujourd'hui : 224

Total : 226210

Valid XHTML 1.0 Transitional

Prise en main carte ColdFire

separation

[Vous êtes ici ] ==> Accueil > Système Num. 1 > Les TP réseau Linux > TP7 : Prise en main kit Acturus

separation

Mise en situation
  • Le travail de ce TP se déroule en binôme.
  • Temps alloué : 4h
  • La programmation se fait sur PC sous Windows. Utilisation de la compilation croisée Carte processeur ColdFire 5272, uCLinux

Objectif
  • C4.6 Assembler les éléments matériels assurant la liaison physique d’un système de Communication
  • C5.7 Mettre en œuvre un environnement de programmation
  • Exploiter les commandes console de bases de Linux.

Pré requis
  • Environnement Linux (uCLinux).
  • Programmation C, commande de base du Linux

Travail demandé
Suivre le déroulement du TP pas à pas sans sauter d’étapes

Critères d’évaluation
  • Démonstration au professeur
  • Compte-rendu papier :
    • Réponses des exercices fin 1er chapitre
    • Programme du chenillard (avec démo)
    • Programme des fonctions en C



But du TP :

Compilation croisée, utiliser le port parallèle (Port B) d’une carte embarquée avec processeur Motorolla ColdFire 5272 ayant comme système d’exploitation uCLinux et apprendre les commandes de base console du système d’exploitation Linux.

Remarques générales : Déroulement du TP :

1. Rappel général sur opérateurs logiques ET, OU, XOR et NON:



Les opérateurs logiques en C effectuent les opérations classiques de la logique des prédicats : ET (AND), OU (OR), OU exclusif (XOR) NON (NOT). Grâce à eux, il est possible de relier logiquement des instructions. Il y a quatre opérateurs logiques, trois d'entre eux sont binaires, et l'autre est unaire. Comme avec les opérateurs relationnels, l'évaluation des expressions comportant des opérateurs logiques donne un résultat de type VRAI, FAUX, exprimé en tant que grandeur de type int. Ce résultat peut prendre les valeurs 0 (FAUX) ou 1 (VRAI).
Un entier est estimé VRAI si sa valeur est différente de 0, FAUX si elle vaut 0.

Tables de vérité
OU ET OU exclusif
ABA+B ABA.B ABA ou Exclusif B
000 000 000
011 010 011
101 100 101
111 111 110

2. Opérateurs logiques en C :



OpérateurEn CExemple 1 RetourExemple 2Retour
A ET BA && B (3‹5) && (5>2)Vrai (3==5) && (5>2)Faux
A OU BA||B (3‹5)||(5>2)Vrai (3==5)||(5>2)Vrai
NON A!A !(3>5)Vrai !(5>3)Faux

Utilisation : if((x>3) && (x‹5)) /* Vrai quand x compris entre 3 et 5 */

3. Opérateurs logiques bit à bit



Ils permettent une opération logique non plus sur la proposition, mais bit à bit :

OpérateurEn C Exemple Retour
A.BA & B 0xA2 & 0xF00xA0
A+BA|B 0xA2|0x0F0xAF
A Ou exclu BA^B 0xA2^0xFF0x5D
Complément à 1~A ~0xA20x5D

Utilisation : faire des masque sur des octets
Exemple :
Après lecture d’un port parallèle sur un octet, la valeur se retrouve dans un short x. Nous désirons récupérer des bits déterminés :
short x ;
// Ex de la carte ColdFire PCDATA représente Port B du kit
x=*PCDATA ;
// Affiche la valeur de x par exemple 5, en binaire 00000101
printf("%d",x);
// Affiche le bit de poids faible 1
printf("%d",x & 1);
// Affiche le bit 2 ==> 0 00000101 & 00000010
printf("%d",x & 2);
// Affiche le bit 3 ==> 1 00000101 & 00000100
printf("%d",x & 4);

4. Décalage



Ils permettent les décalage à gauche ou à droite bit à bit
OpérateurEn C Exemple Retour
Décalage à droiteA>>B 0xA2>>30x14
Décalage à gaucheA‹‹B 0xA2‹‹30x10

Exemple d’utilisation :
On lit un port de 16 bits. Seul l’octet de poids fort nous intéresse. Nous faisons alors un décalage à droite de 8 bits
// Lecture du port
x=*PCDATA ;
// Récupère octet poids fort
x=x>>8 ;
Exercices (A rendre sur papier) 1. Opérateurs logiques ET, OU, NON
ABC PropositionValeur
VraiFaux !(A+B)
VraiFauxFaux A+(B.C)
VraiFauxFaux (A+B).C
FauxVraiFaux (A+!A).(B+!B).(C+!C)
VraiVraiFaux A.B.A.B.C
FauxVrai !(A.!B)
FauxVrai !(A.B)
2. Opérateurs en C
PropositionTraduction en C
Si x est compris entre 2 et 5
si x est compris entre –2 et 2 et différent de 0
tant que x est vrai ou y différent de 0
si x est supérieur à y qui est supérieur à z
si x n’est pas inférieur à y
tant que x n’est pas faux et y n’est pas vrai
si x inférieur à y et z supérieur à x ou à y
3. Opérateurs bit à bit en C
PropositionRetour
!0xAC
0x00 & 0xFF & 0x12
0x12|!0x16
(0xAE|0xAE & 0xAE)|1
16 & 32 | 0x12
10&5
10|5
4.Décalage en C
  • x=0xAA, comment faire pour connaître le bit de poids 5
  • Comment écrire 2 à la puissance x
  • Comment faire pour mettre le 5em bit d’un nombre quelconque à 1 sans toucher aux autres bits.
  • Comment faire pour mettre le 5em bit d’un nombre quelconque à 0 sans toucher aux autres bits.
  • Comment vérifier que les bits 2 et 6 d’un octet quelconque sont les 2 à 1
  • Comment mettre les bits 2 et 6 d’un octet quelconque à 0 sans toucher aux autres

2 Partie : prise en main de l’environnement de développement



Pour pouvoir écrire un programme en C à partir d'un PC sous Windows sur la carte embarquée ColdFire, il faut dans un premier temps installer le compilateur de cette carte sur le PC.

3em Partie : Chenillard


Codage en C de fonctions spéciques


separation

ancre