Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
pre_chargement Eeprom PIC 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bonjour à tous,
Autant qu'avec MikroC Pro 7.60 il est aisé de precharger le contenu Eeeprom d'un PIC
via un dialogue prevu pour...
et qu'ensuite on peut sauvegarder le contenu Eeprom dans un fichier annexe ayant comme extension *.ihex
Au moment de la compilation , on peut Activer ou Pas le chargement dudit fichier ...
Avec MPLAB XC8
on dispose de Macro pour l'init de data Eeprom
mais je ne vois pas comment on peut definir l'adresse de stockage ?
exemple:
__EEPROM_DATA (0,0,'2','3','0','5','1','0'); // concerne les adresse 0 à 7
// 0x0010
__EEPROM_DATA (0,0,0,0,0,0,0,0);
__EEPROM_DATA (0,0,0,0,0,0,0,0);
// 0x0020
__EEPROM_DATA (0,0,0,0,0,0,0,0);
__EEPROM_DATA (0,0,0,0,0,0,0,0);
// 0x0030
..mais si je veux stoker directement des datas , par exemple en 0x3D0 // 976(10)
//ORG 0x03D0 <-- comment definir l'adresse de debut ?
__EEPROM_DATA (0x28,0xFF,0x47,0x15,0x81,0x16,0x03,0x24); // #1 Data: FamilyCode 28 ID2= FF4715811603 CRC= 24
__EEPROM_DATA (0x28,0xAA,0x42,0x65,0x26,0x13,0x02,0xB6); // #2 Data: FamilyCode 28 ID1= FF83C7641503 CRC= B8
__EEPROM_DATA (0x28,0xAA,0x56,0xC1,0x38,0x14,0x01,0x40); // #3 Data: FamilyCode 28 ID2= FF4715811603 CRC= 24
En attendant de trouver mieux
J'utilisa ma table de travail comportant 10 programmes horaires ( 1prog=32 bytes)
et l'initialise dans le code ( de declaration des tables)
à noter qu'il faut IMPERATIVEMENT cocher dans les options Linker -> RunTime -> "Initialize Datas"
sinon les tables sont vides apres le lancement du programme.
unsigned char Tables_Progr_D[10][32]={
//#1
{0x01,0x2,0x02,0x03,0x01,0x02,0x02,0x01,
0x03,0x03,0x03,0x00,0x01,0x02,0x0,0x01,
0x02,0x03,0x02,0x01,0x00,0x01,0x02,0x03,
'C', 0x00,0x00,0x00,0x00,0x00,0x00,0x00},
... etc ....
...etc ...
//#10
{0x01,0x2,0x02,0x03,0x01,0x02,0x02,0x01,
0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x01,
0x03,0x03,0x01,0x00,0x01,0x02,0x03,0x00,
'V' ,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
};
et ensuite je stocke le tout en eeprom via une boucle ecriture de 320 datas
dans ma zone de datas qui est bien definie .
SI c'est la 1ere fois que je lance le programme
via un flag dans l'adresse Eeprom 0x0000
à 0xFF lors du chargement *.HEX dansle PIC
je sauve alors une valeur (arbitrairement définié ) de 99 à l'adresse 0x0000 Eeprom
Attention ,il faut ensuite preserver la zone eeprom d'un nouveau chargement de prpgrame en cochant Preserver Eeprom memorie
Des lors aux lancement de programme suivant ( sur Reset ou Alim.OFF/ON.)
je test le contenu du Flag (adresse 0x0000 eeprom) ,si 99,
je passe outre la sauvegarde et au contraire je rechage le contenu Eeprom (0x0100..)
pour le mettre dans ma table de travail en RAM.
J'ai bien vu qu'on peut afficher le contenu de l'eeprom avec MPLABX
mais on ne peux pas modifie le contenu
il faut etre en Debug ???
De meme on peut sauvegarder le contenu eeprom dans un fichier Memory.hex ..OK
mais comment le re-integré à la compilation ,hormis l'astuce de Preserver Eeprom ?
Autant qu'avec MikroC Pro 7.60 il est aisé de precharger le contenu Eeeprom d'un PIC
via un dialogue prevu pour...
et qu'ensuite on peut sauvegarder le contenu Eeprom dans un fichier annexe ayant comme extension *.ihex
Au moment de la compilation , on peut Activer ou Pas le chargement dudit fichier ...
Avec MPLAB XC8
on dispose de Macro pour l'init de data Eeprom
mais je ne vois pas comment on peut definir l'adresse de stockage ?
exemple:
__EEPROM_DATA (0,0,'2','3','0','5','1','0'); // concerne les adresse 0 à 7
// 0x0010
__EEPROM_DATA (0,0,0,0,0,0,0,0);
__EEPROM_DATA (0,0,0,0,0,0,0,0);
// 0x0020
__EEPROM_DATA (0,0,0,0,0,0,0,0);
__EEPROM_DATA (0,0,0,0,0,0,0,0);
// 0x0030
..mais si je veux stoker directement des datas , par exemple en 0x3D0 // 976(10)
//ORG 0x03D0 <-- comment definir l'adresse de debut ?
__EEPROM_DATA (0x28,0xFF,0x47,0x15,0x81,0x16,0x03,0x24); // #1 Data: FamilyCode 28 ID2= FF4715811603 CRC= 24
__EEPROM_DATA (0x28,0xAA,0x42,0x65,0x26,0x13,0x02,0xB6); // #2 Data: FamilyCode 28 ID1= FF83C7641503 CRC= B8
__EEPROM_DATA (0x28,0xAA,0x56,0xC1,0x38,0x14,0x01,0x40); // #3 Data: FamilyCode 28 ID2= FF4715811603 CRC= 24
En attendant de trouver mieux
J'utilisa ma table de travail comportant 10 programmes horaires ( 1prog=32 bytes)
et l'initialise dans le code ( de declaration des tables)
à noter qu'il faut IMPERATIVEMENT cocher dans les options Linker -> RunTime -> "Initialize Datas"
sinon les tables sont vides apres le lancement du programme.
unsigned char Tables_Progr_D[10][32]={
//#1
{0x01,0x2,0x02,0x03,0x01,0x02,0x02,0x01,
0x03,0x03,0x03,0x00,0x01,0x02,0x0,0x01,
0x02,0x03,0x02,0x01,0x00,0x01,0x02,0x03,
'C', 0x00,0x00,0x00,0x00,0x00,0x00,0x00},
... etc ....
...etc ...
//#10
{0x01,0x2,0x02,0x03,0x01,0x02,0x02,0x01,
0x03,0x03,0x03,0x03,0x03,0x03,0x02,0x01,
0x03,0x03,0x01,0x00,0x01,0x02,0x03,0x00,
'V' ,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
};
et ensuite je stocke le tout en eeprom via une boucle ecriture de 320 datas
dans ma zone de datas qui est bien definie .
SI c'est la 1ere fois que je lance le programme
via un flag dans l'adresse Eeprom 0x0000
à 0xFF lors du chargement *.HEX dansle PIC
je sauve alors une valeur (arbitrairement définié ) de 99 à l'adresse 0x0000 Eeprom
Attention ,il faut ensuite preserver la zone eeprom d'un nouveau chargement de prpgrame en cochant Preserver Eeprom memorie
Des lors aux lancement de programme suivant ( sur Reset ou Alim.OFF/ON.)
je test le contenu du Flag (adresse 0x0000 eeprom) ,si 99,
je passe outre la sauvegarde et au contraire je rechage le contenu Eeprom (0x0100..)
pour le mettre dans ma table de travail en RAM.
J'ai bien vu qu'on peut afficher le contenu de l'eeprom avec MPLABX
mais on ne peux pas modifie le contenu
il faut etre en Debug ???
De meme on peut sauvegarder le contenu eeprom dans un fichier Memory.hex ..OK
mais comment le re-integré à la compilation ,hormis l'astuce de Preserver Eeprom ?
Code : Tout sélectionner
Lecture table programmes horaire en eeprom
Relecture datas eeprom :
Flag @ 0x0000 =99
Programme version : 230511
0x0100
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, Progr= C
0x0120
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, Progr= E
0x0140
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= D
0x0160
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= M
0x0180
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x03,
0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= R
0x01A0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= A
0x01C0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= J
0x01E0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, Progr= P
0x0200
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03,
0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x01, 0x00, Progr= T
0x0220
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, Progr= V
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
pre_chargement Eeprom PIC 18F27K42
Bonjour,
Pour modifier l'eeprom il y a PicKit Minus.
Un exemple de données en eeprom avec xc8, mais il n'accepte que des adresses paires.
Pour modifier l'eeprom il y a PicKit Minus.
Un exemple de données en eeprom avec xc8, mais il n'accepte que des adresses paires.
Code : Tout sélectionner
const unsigned char val @ 0x310000 = 0x11;
const unsigned char tab[] @ 0x310012 = {
0x01, 0x02, 0x03, 0x04
};
pre_chargement Eeprom PIC 18F27K42
Bonsoir paulfjujo, satinas, et tou le forum,
Tu peux même le faire avec Pickit3, ça fonctionne j'ai déjà fait.
Sinon je ne sais pas si ça peut aider, mais en ASM pour écrire en eeprom dans un Pic18F27K42 au moment de la programmation de celui-ci
Dans cette exemple on commence à écrire en début eeprom (emplacement 0) après rien n'empêche de changer l'adresse eeprom
ORG H'310000'
DE 'T' , 'e' , 'm' , 'p' , 's' , '-' , 'X'
Dans cette exemple on commence à écrire dans l'eeprom à l'emplacement 5
ORG H'310005'
DE 'T' , 'e' , 'm' , 'p' , 's' , '-' , 'X'
A+
satinas a écrit :Source du message Pour modifier l'eeprom il y a PicKit Minus.
Tu peux même le faire avec Pickit3, ça fonctionne j'ai déjà fait.
Sinon je ne sais pas si ça peut aider, mais en ASM pour écrire en eeprom dans un Pic18F27K42 au moment de la programmation de celui-ci
Dans cette exemple on commence à écrire en début eeprom (emplacement 0) après rien n'empêche de changer l'adresse eeprom
ORG H'310000'
DE 'T' , 'e' , 'm' , 'p' , 's' , '-' , 'X'
Dans cette exemple on commence à écrire dans l'eeprom à l'emplacement 5
ORG H'310005'
DE 'T' , 'e' , 'm' , 'p' , 's' , '-' , 'X'
A+
pre_chargement Eeprom PIC 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour Temps-X
avec pickitminus + Pickit3 , je peux effectivement lire l'eeprom PIC et sauvegarde rle contenu
mais ecrire en hexa le contenu ..c'est trop lourd
pour l'instant j'initialise ma table de travail directement en RAM et je la sauvegarde en eeprom
au 1er lancement du programme (si détection eeprom vierge)
c'est assez souple comme solution
mais je vais voir si XC8
accepte de prendre ORG 310000
1er test
__asm ("ORG 0x310010");
__EEPROM_DATA (0,'2','3','0','5','1','1',0);
__asm ("ORG 0x310020");
__EEPROM_DATA (0,'2','3','0','5','1','3',0);
:0:: error: (1346) can't find 0x310028 words for psect "eeprom_data" in class "EEDATA" (largest unused contiguous range 0x400)
pas de transposition directe asm -> C
une histoire de psect .. surement à definir quelque part !
je verrai plus tard ...
avec pickitminus + Pickit3 , je peux effectivement lire l'eeprom PIC et sauvegarde rle contenu
mais ecrire en hexa le contenu ..c'est trop lourd
pour l'instant j'initialise ma table de travail directement en RAM et je la sauvegarde en eeprom
au 1er lancement du programme (si détection eeprom vierge)
c'est assez souple comme solution
mais je vais voir si XC8
accepte de prendre ORG 310000
1er test
__asm ("ORG 0x310010");
__EEPROM_DATA (0,'2','3','0','5','1','1',0);
__asm ("ORG 0x310020");
__EEPROM_DATA (0,'2','3','0','5','1','3',0);
:0:: error: (1346) can't find 0x310028 words for psect "eeprom_data" in class "EEDATA" (largest unused contiguous range 0x400)
pas de transposition directe asm -> C
une histoire de psect .. surement à definir quelque part !
je verrai plus tard ...
pre_chargement Eeprom PIC 18F27K42
Bonsoir paulfjujo, et tout le forum,
Petite réification, je viens de faire un essai en ASM, j'ai placé l'adresse à ORG H'310005' ça ne fonctionne pas, le compilateur refuse de compiler le programme, par contre ça fonctionne bien quand je place l'adresse à ORG H'310000'
Après j'ai refait un essai en mettant une adresse paire, j'ai mi ORG H'310008', et là ça a fonctionné
A savoir que le programmateur écrit dans l'eeprom par paire, surement du à l'architecture du Pic, si il y a 5 données, le programmateur rajoutera un 0, pour arrivé à 6, ce qui est bien un nombre paire.
Exemple
ORG H'310008'
DE 0x54,0x65,0x6D,0x70,0x73,0x2D,0x58,0xFF
A+
Petite réification, je viens de faire un essai en ASM, j'ai placé l'adresse à ORG H'310005' ça ne fonctionne pas, le compilateur refuse de compiler le programme, par contre ça fonctionne bien quand je place l'adresse à ORG H'310000'
Après j'ai refait un essai en mettant une adresse paire, j'ai mi ORG H'310008', et là ça a fonctionné
A savoir que le programmateur écrit dans l'eeprom par paire, surement du à l'architecture du Pic, si il y a 5 données, le programmateur rajoutera un 0, pour arrivé à 6, ce qui est bien un nombre paire.
Exemple
ORG H'310008'
DE 0x54,0x65,0x6D,0x70,0x73,0x2D,0x58,0xFF
A+
pre_chargement Eeprom PIC 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
j'essaie de récuperer le contenu PIC eeprom d'une application avec 18F26K22
pour le transposer dans un 18F27K42
la grosse difference est l'adresse de depart 0x310000 au lieu de 0x00000
avec MPLABX IDE , on devrait avoir la possibiliter d'importer une table Eeprom ....
quand j'exporte le contenu de l'eeprom j'ai ceci
mon contenu coté mikroC est
(adresse de depart remplacée manuellement, car bug MikroC part :0200000400F00A ! )
coté MPLABX
Windows
.... EEdata memory
....... click droit
...... import table
........... Eeprom2023.txt
commande acceptée ,mais rine ne se passe
le contenu eeprom du PIC reste vierge ???
le format du fichier lu est pourtant du meme accabit que le format
sauvegardé par MPLABX ..
et je ne pense pas que le changement d'adresse de depart soit le probleme..
car avec MikroC .. il FAUT FAIRE CE CHANGEMENT pour le 18F27K42 ..( bug du compilateur Mikroc)
Question: Faut-il présenter autrement le fichier eeprom à charger ?
L'un de vous l'a-t-il experimenté ?
mes 2 fichiers dans le zip :
MikroC original
MPLABX export
j'essaie de récuperer le contenu PIC eeprom d'une application avec 18F26K22
pour le transposer dans un 18F27K42
la grosse difference est l'adresse de depart 0x310000 au lieu de 0x00000
avec MPLABX IDE , on devrait avoir la possibiliter d'importer une table Eeprom ....
quand j'exporte le contenu de l'eeprom j'ai ceci
Code : Tout sélectionner
:020000040031C9
:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
:00000001FF
mon contenu coté mikroC est
(adresse de depart remplacée manuellement, car bug MikroC part :0200000400F00A ! )
Code : Tout sélectionner
:020000040031C9
:1000000020486F726C6F6765203132204D617472C9
:1000100069636573204820387838202031384632AB
:10002000364B32322020464F53432036344D487AE7
:100030002C2052544320445333323331202C20554A
:1000400041525431203131353230302C382C4E2C45
:10005000310D0A00202020202020202020202020D8
:100060002020202020202020202020202020202090
:100070002020202020202020202020202020202080
:100080002020202020202020202020202020202070
:10009000504C4D3D32333A30360D0A00202020209E
:1000A00053706565643D31300D0A0020202020200A
:1000B0005265703D30300D0A002020202020202085
:1000C0004C756D3D30310D0A00202020202020206D
:1000D000434F52313D2B3030310D0A00202020207B
:1000E000434F52323D2D3030310D0A002020202068
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:1003D0007265762030392F30352F32303230202080
:1003E0007061756C666A756A6F2032303230202019
:1003F00020200D0A00FFFFFFFFFFFFFFFFFFFFFFB1
:00000001FF
coté MPLABX
Windows
.... EEdata memory
....... click droit
...... import table
........... Eeprom2023.txt
commande acceptée ,mais rine ne se passe
le contenu eeprom du PIC reste vierge ???
le format du fichier lu est pourtant du meme accabit que le format
sauvegardé par MPLABX ..
et je ne pense pas que le changement d'adresse de depart soit le probleme..
car avec MikroC .. il FAUT FAIRE CE CHANGEMENT pour le 18F27K42 ..( bug du compilateur Mikroc)
Question: Faut-il présenter autrement le fichier eeprom à charger ?
L'un de vous l'a-t-il experimenté ?
mes 2 fichiers dans le zip :
MikroC original
MPLABX export
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
pre_chargement Eeprom PIC 18F27K42
Bonsoir Paul,
Tu ne dis pas comment tu exportes avec MPLABX l'eeprom vers un fichier HEX.
En utilisant export table, cela te donne le format d'échange qui n'est pas le format HEX. Après modif de ce fichier exporté, on peut le recharger avec import table.
Si tu charges un contenu d'eeprom, il sera écrasé quand tu vas lancer le build, il y a peut être une commande MPLABX pour programmer le pic sans recompiler, à voir. C'est tout vu :) c'est dans le paramètrage du PicKit.
Tu ne dis pas comment tu exportes avec MPLABX l'eeprom vers un fichier HEX.
En utilisant export table, cela te donne le format d'échange qui n'est pas le format HEX. Après modif de ce fichier exporté, on peut le recharger avec import table.
Si tu charges un contenu d'eeprom, il sera écrasé quand tu vas lancer le build, il y a peut être une commande MPLABX pour programmer le pic sans recompiler, à voir. C'est tout vu :) c'est dans le paramètrage du PicKit.
pre_chargement Eeprom PIC 18F27K42
Bonjour paulfjujo, satinas, et tout le forum,
C'est bien ORG H'F00000' pour un Pic18F26K22
J'ai fait ton fichier pour Pic18F27k42 avec le logiciel Pickit3, regarde si c'est bon, téléchargement ICI
Quand tu regardes ton fichier Horloge_2020_Defil_12_Matrice8x8_H_18F26K22_2022-05_MC.hex et celui que j'ai créé avec le logiciel Pickit3
la seule chose qui change c'est l'adresse
A+
C'est bien ORG H'F00000' pour un Pic18F26K22
J'ai fait ton fichier pour Pic18F27k42 avec le logiciel Pickit3, regarde si c'est bon, téléchargement ICI
Quand tu regardes ton fichier Horloge_2020_Defil_12_Matrice8x8_H_18F26K22_2022-05_MC.hex et celui que j'ai créé avec le logiciel Pickit3
la seule chose qui change c'est l'adresse
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
pre_chargement Eeprom PIC 18F27K42
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
je viens de voir la GROSSE DIFFERENCE suivant le mode d'exportation utilisé
MPLABX IDE
...Windows
... Target memory views
....... EE data Memory
en haut ,à gauche de la Fenetre EE data Memoy : fleche verte vers le haut = Read device memory
* capture ecran
* exporte Table adresse : start 0x310000 end 0x3103FF
filepath: C:\MPLABX_Projects\_18F27K42_Horloge_12xMax7219_2023.X\EE_data_Eeprom_memory.txt
effectivement format TABLE ! tres different !
pas de colonne adresse
TAB de separation entre les datas, ligne terminée par CR LF
2 blocs de 512 datas!
------------------------------------------------------------------------------------
MPLABX IDE barre d'icone
icone fleche verte vers le Haut
Read EE/flash Data Memory to File --> memory_2023-0522.hex
*voir Read_device_EE_Data_Memory_to_File_in_intel_hex_format.jpg
format HEX classique intel
avec adresse de depart
puis entete et adresse sur chaque ligne , suivi de 16 datas contigues + CRC16 + CRLF en fin de ligne
par contre avec la l'icone Fleche verte vers le bas
on a pas le choix possible d'Importer un fichier Hex dans l'eeprom !
capture d'ecran montrant bien les differences :
oui Eeeprom seule et aussi
il faut activer Preserver le contenu Eeeprom ... pour ne pas l'ecrabouiller ensuite lors d'un chargement du code
à Temps-X:
c'est exctement celui que j'obtiens avec MPLABX ,
par contre il y a une mauvaise adresse de depart (en doublon) dans ton fichier *.hex
je me vois mal ,initialiser manuellement l'eeprom avec un format TABLE .. en hexadecimal
il ne me reste donc plus ,comme solution, d'utiliser l'éditeur d'EEPROM de MikroC, (permet l' usage de Hexa ou ascii !)
modifier l'adresse de depart manuellement, (à cause du Bug MikroC ! qui n'a jamais été corrigé ..
car abandon de MikroC au profit de NECTO Studio...
et de charger l'Eeeprom du PIC séparément avec MPLABX IPE ou Pickitminus ....
et ensuite utiliser MPLABX IDE pour charger le code avec PRESERVATION EEPROM cochée..
c'est un peu (beaucoup!) lourding !
ou initaliser l'eeprom avec du code .. au premier lancement de programme seulement
.. avec PRESERVATION EEPROM NON COCHéé
pour avoir 0xFF = vierge au 1er tour .. puis cocher ensuite PRESERVATION EEPROM, pour de future MAJ du code
c'est aussi lourding ..mais plus facile .
satinas a écrit :Tu ne dis pas comment tu exportes avec MPLABX l'eeprom vers un fichier HEX.
En utilisant export table, cela te donne le format d'échange qui n'est pas le format HEX. Après modif de ce fichier exporté, on peut le recharger avec import table.
je viens de voir la GROSSE DIFFERENCE suivant le mode d'exportation utilisé
MPLABX IDE
...Windows
... Target memory views
....... EE data Memory
en haut ,à gauche de la Fenetre EE data Memoy : fleche verte vers le haut = Read device memory
* capture ecran
* exporte Table adresse : start 0x310000 end 0x3103FF
filepath: C:\MPLABX_Projects\_18F27K42_Horloge_12xMax7219_2023.X\EE_data_Eeprom_memory.txt
effectivement format TABLE ! tres different !
pas de colonne adresse
TAB de separation entre les datas, ligne terminée par CR LF
2 blocs de 512 datas!
------------------------------------------------------------------------------------
MPLABX IDE barre d'icone
icone fleche verte vers le Haut
Read EE/flash Data Memory to File --> memory_2023-0522.hex
*voir Read_device_EE_Data_Memory_to_File_in_intel_hex_format.jpg
format HEX classique intel
avec adresse de depart
puis entete et adresse sur chaque ligne , suivi de 16 datas contigues + CRC16 + CRLF en fin de ligne
par contre avec la l'icone Fleche verte vers le bas
on a pas le choix possible d'Importer un fichier Hex dans l'eeprom !
capture d'ecran montrant bien les differences :
satinas a écrit :Si tu charges un contenu d'eeprom, il sera écrasé quand tu vas lancer le build, il y a peut être une commande MPLABX pour programmer le pic sans recompiler, à voir. C'est tout vu :) c'est dans le paramètrage du PicKit.
oui Eeeprom seule et aussi
il faut activer Preserver le contenu Eeeprom ... pour ne pas l'ecrabouiller ensuite lors d'un chargement du code
à Temps-X:
c'est exctement celui que j'obtiens avec MPLABX ,
par contre il y a une mauvaise adresse de depart (en doublon) dans ton fichier *.hex
je me vois mal ,initialiser manuellement l'eeprom avec un format TABLE .. en hexadecimal
il ne me reste donc plus ,comme solution, d'utiliser l'éditeur d'EEPROM de MikroC, (permet l' usage de Hexa ou ascii !)
modifier l'adresse de depart manuellement, (à cause du Bug MikroC ! qui n'a jamais été corrigé ..
car abandon de MikroC au profit de NECTO Studio...
et de charger l'Eeeprom du PIC séparément avec MPLABX IPE ou Pickitminus ....
et ensuite utiliser MPLABX IDE pour charger le code avec PRESERVATION EEPROM cochée..
c'est un peu (beaucoup!) lourding !
ou initaliser l'eeprom avec du code .. au premier lancement de programme seulement
.. avec PRESERVATION EEPROM NON COCHéé
pour avoir 0xFF = vierge au 1er tour .. puis cocher ensuite PRESERVATION EEPROM, pour de future MAJ du code
c'est aussi lourding ..mais plus facile .
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
pre_chargement Eeprom PIC 18F27K42
Bonsoir paulfjujo, et tout le forum,
Ce n'est pas moi qui l'ai créé, c'est le logiciel Pickit3
La première adresse, je pense que c'est le programme que tu écris, puis la deuxième adresse c'est l'eeprom, comme j'ai demandé au logiciel Pickit3 de sauver juste l'eeprom, on se retrouve avec 2 adresses
c'est du C, C normal.
A+
paulfjujo a écrit :Source du message par contre il y a une mauvaise adresse de depart (en doublon) dans ton fichier *.hex
Ce n'est pas moi qui l'ai créé, c'est le logiciel Pickit3
La première adresse, je pense que c'est le programme que tu écris, puis la deuxième adresse c'est l'eeprom, comme j'ai demandé au logiciel Pickit3 de sauver juste l'eeprom, on se retrouve avec 2 adresses
paulfjujo a écrit :Source du message c'est un peu (beaucoup!) lourding !
c'est du C, C normal.
A+
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités