Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
888 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  programmation d'interruption sous assembleur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmation d'interruption sous assembleur

n°1013045
baleine2
Posté le 15-03-2005 à 11:02:32  profilanswer
 

Bonjour a tous,  
 
j'ai un réel problème avec les interruptions, j'ai beau lire 1000 doc, je ne comprends rien, et je ne sais pas comment en implémenter une sous assembleur. Ce qu'il se passe c'est que je dois générer une interruption pour que mon programme débute et je ne sais pas comment le faire. Si qq1 peut m'aider, ce serait super cool!
 
merci d'avance à l'ame charitable qui voudra bien m'aider
 
bonne journée

mood
Publicité
Posté le 15-03-2005 à 11:02:32  profilanswer
 

n°1013199
gedeon
Posté le 15-03-2005 à 12:19:05  profilanswer
 

6809, 68000, 80x86 ?
Mode réel , mode protégé ? Sous dos , sous windows, sous linux
Et que sais-je encore
Du détails serait le bienvenu si tu veux l'ombre du début du commencement d'une réponse

n°1013222
db__
spécialiste de l'à peu près
Posté le 15-03-2005 à 12:31:33  profilanswer
 

Bonjour
Il y a trois types d'interruptions
- les interruptions matérielles qui sont appelées à chaque fois qu'un circuit externe au processeur envoie un signal pour dire qu'il a une transaction à réaliser avec le processeur
- les interruptions logicielles qui sont générés par le processeur suite à une erreur du style division par 0 ou faute de protection mémoire etc...
- les interruptions logicielles réalisées par le programeur pour appeler une routine système placée dans un segment fixe de la mémoire.
Le problème est de savoir
si tu doit générer le code d'une interruption logicielle ou matérielle ?
ou si tu dois appeler un sous-programme système à l'aide d'une instruction assembleur int ?
Il faudrait préciser aussi quel est le processeur, et la finalité du programme.
Il est possible de démarrer un programme par une commande at
genre d'interruption par horloge.
Bref il faut être plus précis dans la demande pour que l'on puisse élaorer une réponse pertinente.
Cordialement

n°1013687
baleine2
Posté le 15-03-2005 à 17:39:01  profilanswer
 

ecxusez moi de ne pas avoir été plus précise, c'est la premiere fois que je vais sur un forum, je débute.
Je travail avec le microprocesseur texas TMS320C31.
Mon sujet, je dois réguler la température d'une diode laser, pour se faire, j'ai une entrée qui me donne la température mesurée, et une sortie qui envoie la bonne température a fournir.
Le truc c'est que mon programme doit regarder la température mesurer qd il se passe une interruption que j'aimerai générer moi meme par une touche de clavier, par exemple, pour pouvoir voir si mon algo marche.
Merci

n°1014424
db__
spécialiste de l'à peu près
Posté le 16-03-2005 à 12:50:36  profilanswer
 

Bonjour
Je ne connais pas ce processeur cependanr je pense qu'il doit avoir une table des vecteurs d'interuptions.
Si j'ai bien compris l'exposé, lorsqu'il y a une interruption, généré par un timer ou un autre matériel, le gestionnaire de l'interruption charge la température, la stocke éventuellement, la compare avec un seuil qui déclenche un signal vers un pilote de refroidissement. Le but recherché étant à partir du clavier d'envoyer le signal vers le pilote de refroidissement.
Il suffit de capturer l'interruption du clavier en connaissant l'adresse de son gestionnaire d'interuption et remplacer ce pilote par un programme qui génére artificiellement l'interuption ou par un appel direct à la routine du pilote de refroidissement.
Il faut voir la doc du microprocesseur pour connaitre l'emplacement en mémoire de la table des vecteurs d'interruptions et la doc matériel pour connaitre les numéros d'interruption du clavier, du lecteur de température si on veut le modifier, de l'appel au pilote de refroidissement.
J'espère avoir été a peu près clair.
Cordialement

n°1014435
bjone
Insert booze to continue
Posté le 16-03-2005 à 13:09:14  profilanswer
 

db__ >> manque d'espaces, c'est dur pendant la digestion...
 
sinon baleine2, tu as déjà un OS sous-jacent, où c'est de la programmation direct ?
 

n°1016267
baleine2
Posté le 17-03-2005 à 16:40:09  profilanswer
 

désolée, je suis débutante, il faut me traduire ca en francais..."OS sous jacent" et "prog directe"? ainsi que "routine"? il existe un dico francais/langage programmeur? (je ne plaisante pas)

n°1016309
bjone
Insert booze to continue
Posté le 17-03-2005 à 16:50:47  profilanswer
 

OS sous-jacent: LinuxRT, WinCE, y'a un OS qui tourne déjà sur ton DSP ?
tu dois te plier aux primitives d'un OS ?
 
ou tu es l'OS ? (firmware, dev niveau noyau, ou rien et le DSP boote direct sur ton code ?)

n°1016604
printf
Baston !
Posté le 17-03-2005 à 21:27:29  profilanswer
 

Il est fort peu probable qu'elle utiliser un (RT)OS.
 
La doc du chip est ici pour ceux/celles que ça intéresse : http://focus.ti.com/lit/ug/spru031f/spru031f.pdf (pour la gestion des interruptions, cf. 7.6)
 
L'IVT est 'relocatable' (franglais ?); son adresse est placée dans le registre ITTP (Interrupt-Trap Table Pointer; voir 3.1.9.1. de la doc indiquée plus haut). Donc BEWARE.

n°1016800
bjone
Insert booze to continue
Posté le 17-03-2005 à 23:21:20  profilanswer
 

t'es AWARE ? (UP)

mood
Publicité
Posté le 17-03-2005 à 23:21:20  profilanswer
 

n°1016940
baleine2
Posté le 18-03-2005 à 10:14:32  profilanswer
 

complètement aware!!
je me sens vraiment ridicule...je vais essayer de décripter vos message, pis je vous reposerai des questions plus tard.
merci a tous, si vous avez des cours ou de la doc pr m'aider, n'hesitez pas.
bonne journée

n°1033662
Czckr
Posté le 03-04-2005 à 17:14:40  profilanswer
 

Moi ce que je ne comprend pas c'est la différence entre une interruption
définit par le programmeur (que l'on apelle avec INT)
et une fonction (que l'on apelle avec CALL) !
Dans quel cas doit-on utiliser l'un ou l'autre ?  :heink:

n°1034102
bjone
Insert booze to continue
Posté le 04-04-2005 à 10:59:25  profilanswer
 

dans le cas de l'archi 80x86, CALL pousse seulement le pointeur d'instruction et saute à l'adresse pointée par l'opérande....
 
alors que INT pousse les flags en + du pointeur d'instruction et saute à l'adresse contenue dans la table des vecteurs sélectionnée par l'opérande.
 
CALL c'est pour les sous-routines de ton propre programme.
INT c'est généralement plustôt pour appeller les services de l'OS.


Message édité par bjone le 04-04-2005 à 10:59:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  programmation d'interruption sous assembleur

 

Sujets relatifs
Programmation d'un programme de détection d'attaque réseauProgrammation permettant de récupérer les données d'un formulaire.
Comment appelle-t-on en C/C++ une routine assembleur?L'assembleur, plus rapide que le C/C++ ?
Programmation sur pocket pc et dialogue sur un réseauprogrammation d'une interruption sur slot PCI
Programmation embarquée sur serie 40 de Nokiarecherche tuto pour programmation Temps Réel
Programmation objet en actionscript c'est fiable ? 
Plus de sujets relatifs à : programmation d'interruption sous assembleur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR