π
<-
Chat plein-écran
[^]

[C] [Project Builder] [Problèmes Divers]

Assembleur, Axe, C/C++, ICE...

[C] [Project Builder] [Problèmes Divers]

Unread postby axel stefanini » 18 Mar 2018, 00:57

Bonjour/bonsoir

Mon objectif derrière la réalisation de ce programme est de réussir à obtenir la position de la cellule de mémoire contenant l'ID de la calculatrice. (Raisons diverses et variées)

Dans un premier temps j'ai du mal à me familiarisé avec l'utilisation de cette "version" du C pour l'interaction avec la mémoire.
Je cherche à utiliser les pointeurs en C dans le project Builder, cependant j'ai quelques soucis. Pour vérifié que j'ai bien le pointeur d'une variable, malheureusement il n'y pas de simple "printf" dans cette version, donc j'ai crée un petit programme sensé affiché le pointeur d'une variable inventé, mais le résultat obtenu n'est pas celui voulu.

Code: Select all
void main(void) {
    int truc = 10;
    int *pointeurSurTruc = &truc;

    gfx_Begin( gfx_8bpp );
    printIntXY(*pointeurSurTruc,1,1,8);
    while (!os_GetCSC());
    gfx_End();
    prgm_CleanUp();
}

void printText(const char *text, uint8_t xpos, uint8_t ypos)
{
    os_SetCursorPos(ypos, xpos);
    os_PutStrFull(text);
}

void printIntXY(int var, int x, int y, int dec) {
    gfx_SetTextXY(x,y);
    gfx_PrintUInt(var,dec);
}


Avec ce programme j'obtiens en résultat la valeur de "test" ce qui n'est pas ce qui est souhaité, cependant si je retire l'astérix à la ligne 7 pour obtenir non pas ce qu'il pointe mais l'adresse de ce qu'il pointe, il me dit :
"Argument type is not compatible with formal parameter"


Si quelqu'un à une idée sur la résolution de ce soucis, car moi je suis bloqué...



Merci d'avance :p
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby Adriweb » 18 Mar 2018, 15:32

Le code tel quel fonctionne comme prévu, déjà c'est pas mal, donc ta variable et le pointeur font bien le boulot (le C89 ne change pas ça, hein) :


Ensuite, le warning est normal, puisque tu passes un pointeur au lieu d'un int. Bon, dans ce cas, tu peux tout simplement le caster, et puis c'est tout : printIntXY((int)pointeurSurTruc,1,20,8);


Tu noteras que 13740062 ca fait bien en hexa ce à quoi on s'attend à peu pres: 0xD1A81E

Au passage, tu n'as pas besoin de prgm_CleanUp(); à la fin du main.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby axel stefanini » 18 Mar 2018, 16:41

Super ! Merci, ayant commencé les cours en C je connais pas encore tout, et j'ignorais cette histoire de "castrer" je vais me renseigner d'avantage sur cette notion.

J'ai un autre soucis..

si je fais
Code: Select all
int *pointeurMachin = 12365478;

Logiquement je devrais obtenir un pointeur de la cellule 12365478 par exemple. et ensuite si je fais

Code: Select all
printIntXY(*pointeurMachin,1,40,8);


Je devrais obtenir la valeur de la cellule ayant pour pointeur 12365478.
Cependant, ça ne fonctionne pas, j’obtiens
Code: Select all
Initializer is not assignment compatible


Donc la question est ; Est-il possible de choisir de manière aléatoire un pointeur pour ensuite obtenir ce que celui-ci pointe ?
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby Adriweb » 18 Mar 2018, 17:17

Parce que 12365478 est un nombre et non un pointeur :P
Caste le en int* : int *pointeurMachin = (int*)12365478;

Cela dit, c'est pas bon d'avoir des addresses en absolu, sauf si tu sais exactement ce que tu fais.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby IAMISSAM » 18 Mar 2018, 17:24

Il veut avoir acces a la valeur contenue dans la case mémoire a l'adresse 12365478 sauf que c'est interdit il me semble
User avatar
IAMISSAMProgrammeur
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 36.3%
 
Posts: 63
Joined: 11 Sep 2015, 21:56
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Terminale S SI

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby axel stefanini » 18 Mar 2018, 17:44

Adriweb wrote:Parce que 12365478 est un nombre et non un pointeur :P
Caste le en int* : int *pointeurMachin = (int*)12365478;

Cela dit, c'est pas bon d'avoir des addresses en absolu, sauf si tu sais exactement ce que tu fais.


Super! ça fonctionne,

J'aurai un autre petit truc à vous demander....
Puisque la la calculatrice lorsqu'elle lance un prgm en Ti-basic, le convertit en assembleur pour le faire fonctionner, est-il possible de récupéré le code asm d'un prgm en ti-basic pour l'intégré dans mon prgm ?

Genre l'objectif serait de mettre un prgm en ti-basic dans mon prgm en asm ^^
Si c'est pas possible, car d'après mes recherches c'est peu probable, existe-il un moyen de lancé un prgm Ti-Basic depuis un prgm en C,
Cesium le fait très bien, cependant, je comprends pas comment il y parvient en asm avec la fonction "_ParseInp"

Merci !
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby Dark coco » 18 Mar 2018, 18:23

IAMISSAM wrote:Il veut avoir acces a la valeur contenue dans la case mémoire a l'adresse 12365478 sauf que c'est interdit il me semble


non ce n'est absolument pas interdit, on peut lire une valeur d'una dresse quelconque.
Cependant, il est interdit d'écrire en flash.
(21:48:26) Hamza.S: Dark_coco : tu a écris 2 phrases sans faute
(19:15:10) Hayleia: ah ça je confirme que t'as appris à écrire à l'école de baptiste_leprovost :troll:
User avatar
Dark cocoProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 65.8%
 
Posts: 95
Joined: 15 Jan 2017, 14:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: dut gte

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby Bisam » 18 Mar 2018, 18:40

axel stefanini wrote:ayant commencé les cours en C je connais pas encore tout, et j'ignorais cette histoire de "castrer" je vais me renseigner d'avantage sur cette notion.

LOL ! Fais gaffe, ça fait mal !

Bref, le bon terme c'est "caster" (anglicisme issu du verbe anglais "to cast" que l'on pourrait imaginer comme utilisant le sens de "attribuer le rôle" ici). Cela désigne l'action de forcer la transformation d'une variable d'un type en un autre type, ici un pointeur en un entier.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5667
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [C] [Project Builder] [Problèmes Divers]

Unread postby axel stefanini » 18 Mar 2018, 18:50

D'accord! Merci pour les précision :p
User avatar
axel stefanini
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 54.3%
 
Posts: 18
Joined: 19 Sep 2016, 17:48
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1444 utilisateurs:
>1431 invités
>8 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)