alors pourquoi quand la TI marche, la FLASH est elle mappée en 400000 et quelque, alors que la RAM est au début (000000-03FFFF)
ok je répète.
L'adresse du vecteur est à 0x000000
Mais ce vecteur pointe sur la routine de reset en flash.
Lors d'un reset, le proc lit l'adresse contenue à 0x000000 et exécute la routine qui se trouve à cette adresse (non nulle, éventuellement en flash).

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa 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.
d'accord. je comprends.
Mais qu'est ce qui met la valeur de la routine en flash dans la RAM en 0x000000? au départ, elle est vide la ram, non?
je pensais qu'il y avait un swap de plages mémoires à moment donné.
Non, la ram n'est pas vide.
Au moment du reset, les vecteurs contenus à 0x400000 sont recopiés en 0x000000, mais ça n'arrive qu'au moment d'unreset de mémoire. Quand tu allumes ta TI, la RAM est tout sauf vide.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa 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.
je parle du moment où la ti a vu le code du bootloader pour la 1ere fois.
Tu comprends peut être pas ce que je veux dire.
je vais faire un montage électronique simple qui utilise un 68000 connecté à une FLASH et à une RAM, et au moment où je vais brancher le jus au montage, SANS pile de sauvegarde ni rien, le 68000 va aller voir en 0x000000 pour récupérer les 4 octets du vecteur de reset, je vais les faire pointer vers ma flash, ok.
mais au moment où je mets l'alim... la ram est initialisée, elle ne contient pas ce vecteur!
alors que dans la ti c'est pas pareil. Quand tu appuies sur ON avec ams installé, ok, la ti sort du mode sleep. Quand tu veux charger l'ams, elle exécute déja le bootloader, quand elle reboote pour le démarrer, ou quand on resette la calc, ok, on efface pas la ram, le vecteur existe.
mais comment cela s'est il passé AVANT ? le bootloader n'est pas né dans la ti, il faut bien qu'il y ait été mis.
en d'autres termes, quand la calc est éteinte, que la pile de sauvegarde n'est pas là, que tous les condensateurs possibles et imaginables sont déchargés, comment le vecteur de reset est il chargé en RAM ??
ne perds pas de vue que je ne parle pas d'une ti, mais bien d'un montage qui pour le moment est "en kit!"

hwti Le 13/01/2004 à 22:59Edité par hwti le 14/01/2004 à 00:02 je crois qu'au reset la ROM est en 0x000000 et passe à son adresse normale après. c'est le circuit spécialisé de chez TI qui gère ça
mais je n'arrive plus à retrouver où j'ai lu ça
ah! c'est bien ce que je pensais! ya un swap des zones mémoire!
sinon je voyais pas!
vince Le 14/01/2004 à 09:50 suffit de ne pas mapper l'adresse 000000 en ram et de la remplacer par une pitite rom (qq octets suffisent)
et si je veux changer mes vecteurs, bijour!
nan:
- soit je fais un swap de zones en commutant le plus grand bit d'adresse à partir d'un registre mappé en mémoire modifié après le boot;
- soit je mets un PIC ou un autre proc quelconque pour préprogrammer le vecteur de reset avant de relacher le reset du processeur;
- soit je mappe pas la ram en zéro, mais ca fait chier pour changer les vecteurs.
j'aimerais savoir ce que vous pensez de chaque méthode.
vince Le 14/01/2004 à 10:50 euh je veux pas te décevoir mais le vecteur de reset, tu le changes pas tous les jours non plus
SI
moi il va changer à chaque fois que je vais brancher l'alim, c ca que vous avez pas compris. ya PAS de sauvegarde de la ram. c'est pas une TI que je fais, c'est un montage embarqué.
vince Le 14/01/2004 à 10:55 j'ai très bien compris c'est pour ça que je te propose de mettre une rom en 0x00000000..0x000000001 et ta ram après...
Une rom de 4 octets en 0x000000..0x000003 tu veux dire? quelle taille il fait le vecteur?) et je fais comment pour qu'elle recouvre la ram? ca va encore être un montage de taré ca... autant précharger la ram avec un petit contrôleur séparé avant de lancer le boot je pense
vince Le 14/01/2004 à 14:03 montage de taré ??? juste un chip select...
si tu lis mes posts, c ce que je pense faire en effet.
vince Le 19/01/2004 à 11:13 doc qui est vraiment claire d'ailleurs (contrairement à la tradition dans le domaine)
vince Le 19/01/2004 à 15:48 on peut avoir les ref dudit book ?
Tu pourrais, surtout que je suis à la B.U., mais si je me lève il va me falloir une heure d'attente pour revenir. Mais si tu veux, oui pour demain.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
squalyl: pour te rafraichir la mémoire un 68000 de base a 24 d'adresse dont 23 reel et A0 est représenté par /LDS et /UDS

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.
merci godzil, je le savais bien.
vince Le 21/01/2004 à 10:20 (tout ça c du intel)
8251 c'est un usart améliorié (très utilisé en communication IR)
8243 je crois que c'est un gestionnaire de E/S en //
enfin bref ce sont des périphs prévus pour la série ces microcontroleurs du fondeur cité précédemment (genre la famille des 80c51 80c52... et autres dérivés contenant le même core)