Vous êtes sur la page 1sur 6

10/11/2021 13:42

Edc15 multimap - ECU Connexions


https://www.ecuconnections.com/forum/viewtopic.php?f=211&t=51373
1/11

FAQ

Les règles

Les messages privés

Index du forum

Général Réglage De L'Assistance - Voitures, Motos, Camions

L'Ingénierie Inverse

Une recherche sur ce sujet...


227 postes
1
2
3
4
5
...
10

Ne pas écrire merci de postes, l'utilisation de la
bouton.
AUCUN DES LOGICIELS CRAQUÉS, OU CLONE PARLER EST PERMIS!
Edc15 multimap

Liens rapides
KyProg


Les Notifications



nihalot
Newbie

Edc15 multimap

Mercredi 31 Mai 2017 6:41 pm
mon post, copie collé de nefmoto
Espérons que cela aide quelqu'un, bien qu'il ne semble pas y avoir beaucoup d'intérêt pour cet ECU...
Suivez mon autre post et désactiver les sommes d'abord.
1ère étape est de trouver comment le bus CAN est manipulé. Il y a un tampon dans la mémoire RAM dans lequel les messages
sont stockés avant qu'ils
sont transmis.
Sur edc15, la recherche de la mémoire tampon est facile. Exemple: Recherche de la séquence d'octets: 0x280 ou 0x288 ou de tout
autre PEUT-id utilisé
par l'ecu...
Cela vous permettra de le code qui s'occupe de canbus:
CODE:
SÉLECTIONNEZ TOUS LES
Maintenant que vous avez trouvé le POUVEZ tampon, reportez-vous à la FR PEUT section.
Ci-dessous, j'ai montré le CANBUS tampon de manutention id 0x280 dans mon fichier.
CODE:
SÉLECTIONNEZ TOUS LES
ROM:00094156 mov r5, #280h
ROM:0009415A mov CAN_280, r5 ;CAN_280 - mémoire tampon RAM manipulation id -0
ROM:0009415E movb rl4, #8
ROM:00094160 movb byte_C743, rl4
ROM:00094164 mov r4, #288h
ROM:00094168 mov CAN_288, r4
ROM:0009416C movb rl4, #8
ROM:0009416E movb byte_C74F, rl4
ROM:00094172 mov r4, #380h
ROM:00094176 mov CAN_380, r4
ROM:0009417A movb rl4, #8
ROM:0009417C movb byte_C75B, rl4
ROM:00094180 mov r4, #480 h
MEM_EXT:0000C744 CAN_280: ds 2 ; DONNÉES XREF: ROM:0009415Aw
MEM_EXT:0000C746 byte_C746: ds 1 ; DONNÉES XREF: ROM:000945DCw
MEM_EXT:0000C746 ; ROM:0009463Ew ...
MEM_EXT:0000C747 byte_C747: ds 1 ; DONNÉES XREF: ROM:0009468Aw
MEM_EXT:0000C747 ; ROM:0009475Ew
MEM_EXT:0000C748 can_nmot_low: ds 1 ; DONNÉES XREF: ROM:0009468Ew
MEM_EXT:0000C748 ; ROM:00094788w
MEM_EXT:0000C749 can_nmot_high: ds 1 ; DONNÉES XREF: ROM:00094692w
MEM_EXT:0000C749 ; ROM:00094790w
10/11/2021 13:42
Edc15 multimap - ECU Connexions
https://www.ecuconnections.com/forum/viewtopic.php?f=211&t=51373
2/11
Utilisation de la jauge rpm pour l'affichage de la carte actuelle(ou de tout autre paramètre comme boost, SOI,etc), vous devrez
modifier
la sous-routine d'écriture d'octets 3 et 4 de la can id 0x280.
CODE:
SÉLECTIONNEZ TOUS LES
ROM:00094780 appels 9, sub_94002
ROM:00094784 add r0, #4
ROM:00094786 mov r9, r4
ROM:00094788 movb can_nmot_low, rl4
ROM:0009478C mov r4, r9
ROM:0009478E ashr r4, #8
ROM:00094790 movb can_nmot_high, rl4
ROM:00094794 mov r1, word_C420
ROM:00094798 add r1, word_C426
ROM:0009479C cmp r1, word_F962
ROM:000947A0 jmpr cc_SGE, loc_947A6
ROM:000947A2 mov r9, r1
ROM:000947A4 jmpr cc_UC, loc_947AA
r4 contient les TR / min. Nous allons modifier cette vaue à ce que nous voulons montrer la carte sélectionnée dans notre cas.
J'ai inséré mon appel à 94784, à ma routine. Son jusqu'à vous à décider où insérer cet appel, mais assurez-vous de ne pas
changer de logique.
La prochaine étape est de prendre les entrées d'embrayage, de frein ou le régulateur de vitesse.
Cela peut aussi être inferenced à partir de la boîte de la mémoire tampon.
exemple: id 0x280, byte 0, le bit 4 est B_kuppl(pédale d'embrayage).
Trouver le code qui écrit sur ce morceau, et vous trouverez B_kuppl
CODE:
SÉLECTIONNEZ TOUS LES
ROM:00094EBC movb rl4, word_C49A+1
ROM:00094EC0 jmpr cc_NZ, loc_94ED0
ROM:00094EC2 mov r4, word_14D6
ROM:00094EC6 movb rl5, [r4]
ROM:00094EC8 jmpr cc_NZ, loc_94ED0
ROM:00094ECA movb rl4, #8
ROM:00094ECC orbe byte_C746, rl4
Comme on le voit dans le code ci-dessus, 0xC94B contient l'état de la pédale d'embrayage. Mais ce n'est pas la variable globale. Je
suppose que
ce n'est que temporaire RAM adresse à laquelle le commutateur d'embrayage statut est copié lors de cette sous-routine
commence(de sorte que tant
que le sous-programme est encore en cours d'exécution, tout changement de l'embrayage ne seront pas mis à jour. Sinon, il est
possible
qu'au début de la sous-routine de l'état de l'embrayage est différent que lorsque le sous-programme se termine, entraînant
des comportements imprévisibles)
Trouver la variable globale par la recherche de références croisées pour 0xc94b
CODE:
SÉLECTIONNEZ TOUS LES
ROM:0009433E movb rl2, byte_C370
ROM:00094342 movb word_C49A+1, rl2
0xc370 est la variable globale pour B_kuppl.
Répétez cette opération pour d'autres variables que vous souhaitez utiliser(cruise control état est l'id 0x388/0x38A les pédales de
frein et sur 0x288)
Maintenant, pour mapswitching, vous avez besoin de changer la DPP de
Chaque bloc de données est appelée à l'aide de DPP0, DPP1 et DPP2. DPP3 est utilisé pour PEUT.
bloc de données 1:
DPP0 - 0x34
MEM_EXT:0000C74A byte_C74A: ds 1 ; DONNÉES XREF: ROM:00094696w
MEM_EXT:0000C74A ; ROM:00094814w ...
MEM_EXT:0000C74B byte_C74B: ds 1 ; DONNÉES XREF: ROM:loc_948A0w
MEM_EXT:0000C74B ; ROM:000948CAw
10/11/2021 13:42
Edc15 multimap - ECU Connexions
https://www.ecuconnections.com/forum/viewtopic.php?f=211&t=51373
3/11
DPP1 - 0x35
DPP2 - 0x36
bloc de données 2:
DPP0 - 0x38
DPP1 - 0x39
DPP2 - 0x3A
datablock 3:
DPP0 - 0x3C
DPP1 - 0x3D
DPP2 - 0x3E
C'est le code que j'utilise pour la commutation entre les cartes et l'affichage de boost sur les RPM de la jauge.
CODE:
SÉLECTIONNEZ TOUS LES
Je suggère d'écrire votre propre code, comme la mienne peut être un peu difficile de suivre
Fondamentalement, mon code est-ce à:
- vérifier si l'embrayage est enfoncée, si oui, alors continuez.
- vérifier si cruice de contrôle de la pression du bouton annuler. Si oui, de stocker 1 dans un octet de la ram libre ( beaucoup de
ram libre dans cet ECU,
0xC820-0xC82F est gratuit sur tous les edc15 j'ai travaillé, assez pour notre petite routine) et à la sortie de la sous-routine
C'est fait pour "anti-rebond" appuyez sur le bouton (aussi longtemps que le bouton est pressé, aucun changement n'aura lieu)
- vérifier si les "anti-rebond" de la ram de l'octet 1, si oui, mettre à 0 et le commutateur de cartes( par la modification de la DPP s)
- Pour afficher la carte sélectionnée à comprendre comment le rpm est affiché sur le tableau de bord.
Permet de dire que vous voulez le rpm aiguille pour montrer à 2000 tr / min. Il y a un facteur de 4.
Si la transmission PEUT message pour est de 2000 tr / min*4= 8000 qui correspond à 0x1F40 en hexadécimal,
Tout ce que nous devons faire est de remplacer la valeur de r4 avec la valeur que vous souhaitez afficher.
- L'installation d'un compteur d'affichage de la carte sélectionnée. Cela est nécessaire parce que le remplacement de r4 avec la
valeur souhaitée une fois n'est
pas suffisant. La boucle principale prend environ 40ms à exécuter. Ainsi, après 40ms r4 sera remplacé par le RPM et l'aiguille
ne sera pas montrer la valeur que l'on voulait montrer. Regarde mon code pour mieux comprendre...
Compiler à l'aide de Uvision ou un compilateur de votre choix. Charger la sortie de fichier hex dans Winols, de recherche où votre
code
commence, et le copier sur un espace libre dans votre flash.
Ensuite, insérer un appel à votre nouvelle fonction. J'ai choisi d'insérer mon appel à 0x94784(0x14784 dans WinOLS)
d'espace Libre dans mon fichier - 0x1A000 qui se traduit par 0x9A000
Par conséquent, l'opcode de l'appel: DA 09 00 A0
Je vais poster une partie 2, montrant comment vous pouvez économiser de l'sélectionnés bloc de données de plus de cycles
d'allumage.
www.tangentmotorsport.com
multimap/LC/roulement antilag pour MED17/EDC17/MED9/EDC15
de contact pour faire du reverse engineering services d'un ECU/TCU
$MOD167 ; Définir C167 mode
$SEGMENTÉ
; Segemented mode mémoire
$CAS
; Les symboles sensibles à la casse
include$(reg167.inc)
NOM
MINIMON
SUPPOSONS DPP3:système
StackData0
DONNÉES DE LA SECTION DE SYSSTACK
; Les données de la Section de réserve
; La Pile De La Mémoire
ORD
20H
; De 32 Octets
StackData0
Se TERMINE
; Fin de Mannequin-Section
DriverCode0
CODE DE LA SECTION PUBLIC "CDRIVER'
DriverProc
PROC LOIN

Vous aimerez peut-être aussi