1

Hello tlm !

Voila je vais vous exposer aujourd'hui un pb que j'ai avec mon projet assembleur/micro-processeurs...

Le but de celui-ci est de fabriquer une calculatrice. Les composants utilisés sont:
* un afficheur 12 chiffres
* un MAX5032 qui gère les cathodes de l'afficheur, le rafraichissement et le déplacement des chiffres au moyen d'une clock et d'un reset
* un PIT230 qui gère le bus anode

Comme dit ci-dessus, j'ai programmé (en VHDL) le MAX pour qu'au coup de clock, il deplace le chiffre de droite a gauche d'une "case"
Après les tests statiques ok (donc le circuit est correct) il me faut maintenant faire la série de tests dynamiques qui me permettent de voir si le clavier et l'afficheur répondent bien

Le pb vient de la... Voici le prgm en asm68k qui doit realiser des affichages sur l'afficheur (je rentre ce prgm ds estudio configuré pour interagir avec le circuit):


xdef START le startup généré place ici un début a l'adresse ff479000
section program,code

PGCR EQU $xxxxx
PACR EQU $xxxxx
PBCR EQU $xxxxx
PADDR EQU $xxxxx
PBDDR EQU $xxxxx
PADR EQU $xxxxx
PBDR EQU $xxxxx
PCDR EQU $xxxxx

START MOVE.B #$00,PGCR initialisation de PGCR
MOVE.B #$c0,PACR ini de PACR (sous-mode 1X)
MOVE.B #$c0,PBCR ini de PBCR (sous-mode 1X)
MOVE.B #$FF,PBDDR port B du PIT en sortie
MOVE.B #$01,PCDR on met la clock (qui est sur PC6) à 0 et le reset (sur PC0) à 1
MOVE.L #$00,D0

ITER MOVE.L #100,D0 compteur pour la temporisation
MOVE.L CS0,A0 on met l'adresse du code 7 segments du 0 dans A0
MOVE.B (A0),PBDR on met le contenu de A0 donc le 0 sur le bus anode afin de l'afficher

TEMP DBF D0,TEMP temporisation

MOVE.L #$00,PCDR les 3 lignes ci-contre réalisent un coup de clock pour que le max passe à l'afficheur d'a coté afin d'afficher le nouveau chiffre
MOVE.L #$40,PCDR
MOVE.L #$00,PCDR

MOVE.L #100,D0
MOVE.L CS1,A0
MOVE.B (A0),PBDR on met le chiffre 1 sur le bus anode

TEMP DBF D0,TEMP

MOVE.L #$00,PCDR coup de clock
MOVE.L #$40,PCDR
MOVE.L #$00,PCDR

BRA ITER boucle infinie qui devrait donc afficher sur l'afficheur des 0 et 1 alternés
TRAP #15

CS0 DC.B $20 code 7 segments du 0
CS1 DC.B $BE code 7 segments du 1

END


Malheureusement quand je l'exécute, rien ne s'affiche et estudio (sous l'écran du com1) reste bloqué sur l'adresse $ff479012. En activant le mode trace je m'apercois qu'il fait une boucle infinie au niveau du TEMP alors qu'au bout de 100 tour de boucle il devrait passer aux ionstructions dessous...

Si qqn voit ou j'ai fais une connerie, ca serait vraiment cool qu'il me tienne informé

MERCI INFINIMENT

Silvain

2

déjà tu as plusieurs labels TEMP, ça risque pas de poser problème?
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

oui tu as raison mais c'est juste une faute de frappe qd je vous ai recopié mon prgm... En réalité dans mon code le 2e s'appelle TEMP2 !!!

Silvain

4

Question bête : tu es sûr que c'est un 68k et non pas un Coldfire ? Parce que ce dernier est presque compatible avec le 68k, exepté sur quelques instructions, et justement l'instruction DBF fait partie des manquantes.

5

>MOVE.L CS0,A0 on met l'adresse du code 7 segments du 0 dans A0

euh ça ça ne met pas l'adresse de CS0 dans a0 mais ça met la valeur contenue à ec albel plutôt. De plus tu devrais essayer d'utiliser l'adressage relatif à PC pour plus de sécurité
Perso je remplacerai donc ça par:
lea CS0(pc),a0

ensuite CS1 est manifestment aligné à une adresse impaire,; donc faire un MOVE.L CS1,A0 ou même un lea CS(pc),a0 finira par provoque un adress error. aligne le sur une adresse paire avec un EVEN ou en insérant un octet nul quelque part

ceci dit je ne connais pas les conventions utilisées par ton compilo alors peut-etre que je viens de raconter un max de conneries grin
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

6

en effet pour l'adresse du CS1 tu as raison, il faut que je l'aligne sur une adresse paire.. Mais concernant le MOVE.L CS0,A0, désolé mais c'est encore une faute de frappe en recopiant le prgm ... c'est un MOVE.L #CS0,A0 !!!!

De toute facon le prgm est compilé correctement sans erreur... Le pb vient d'une bouckle infinie sur le DBF ... c'est bizarre. Et oui Blue_Z je suis sur d'etre sur un 68k et pas un coldfire !

Silvain

7

Je confirme, c'est bien du 68k (proc 68020 pour etre précis). Il supporte effectivement le dbf et le dbra indifféremment... (Ben je fais le meme projet, on est dans la meme école grin)
En ce qui concerne la boucle infinie, essaie de passer la valeur en hexa et pas en décimal, ça m'a aussi posé des problemes, j'ai l'impression que ce compilo déconne un peu la dessus (et dire que le prof a payé ce truc 10000 F, alors qu'il suffit de toutes petites modifs a TIGCC pour que ça marche roll )
Mon site perso : http://www.xwing.info

8

ok Casta lol !!! Comme quoi le monde est vraiment petit !!!! tongue je vais essayer avec la valeur en hexa alors !

Merci et a lundi wink

Silvain

9

moveq #100,%d0 ?

10

pourquoi un "%" devant D0 ?????

11

non c'est pas du GNU
Effectivement quand je travaille sur des bases M1000 (et TP de 68000 quoi) le compilo a du mal avec les valeurs décimales/hexa, parfois ils faut même mettre tous les 0 pour compléter à la taille voulu... style $00000100 pour $100...
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

12

le % est utilisé dans une autre convention de programmation du 68000, l'asm GNU

edit: % pas $...
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

13

Ximoon
a écrit : le $ est utilisé dans une autre convention de programmation du 68000, l'asm GNU

Je suppose que tu voulais dire:
le % est utilisé dans une autre convention de programmation du 68000, l'asm GNU
D'ailleurs, GNU as me semble nettement plus intelligent que l'assembleur commercial qu'ils ont acheté...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

ma remarque etait pas sur le % mais le q smile

15

> ma remarque etait pas sur le % mais le q
Tu n'as pas une doc du processeur 68k sous la main ?
Le moveq est "move quick" comme son nom l'indique. C'est une instruction de 2 octets, dont le premier octet indique que c'est un moveq et à quel registre de donnée il faut faire ce moveq; le deuxième octet est une valeur de -128 à +127 qui est mise dans le registre de donnée voulu, et le sign extend est fait en même temps sur les 32 bits. 4 clocks pour le tout sur 68000 de base.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

16

et?

17

Kevin> absolument, je corrige smile
Trust> il demande pas d'optimiser son code, mais de trouver pourquoi ça marche pas wink
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

18

oksmile
je dit plus riensmile

19

Hummm

Tente de vérifier l'hexa que te genre ton compilo...

Sinon tente aussi de "typer" to DBF, sinon essaye de mettre des instructions dans ta boucle, ou tente de tracer pas a pas pour voir se que fait ta boucle (reg etc...)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.