Bonjour à tous,
Dans le cadre d'un projet de développement d'un logiciel de benchmark, je dispose de deux programmes : l'un codé en C et l'autre codé en Python.
Le programme en C contient l'ensemble des fonctions permettant de réaliser les mesures, les tests et appeler des librairies de crypto que l'on souhaite évaluer (rapidité d'exécution, nombre de cycle de processeur). Le programme en C, une fois compilé, sera envoyé à la mémoire Flash d'un microcontrôleur avant d'être exécuté. Le point obscure et dont je ne vois pas comment procéder, c'est que pour chaque mesure effectuée, il va falloir récupérer des informations (configurations de la mesure ou du test). J'ai pensé utiliser une fonction qui se chargerait à chaque fois de remplir une structure et que cette même fonction retournerait l'adresse du pointeur sur cette structure.
Voici mon code en C ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef struct { char typeAlgo[20]; char mode[20]; uint8_t keyLength; uint8_t bufferSize; uint8_t nbBuffer; char nameAlgo[20]; char measurementTarget[20]; }BenchDataConfig;Le programme en Python va se charger de compiler, charger le code C en mémoire flash du microcontrôleur puis d'exécuter le code chargé en flash.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 BenchDataConfig *Display(char* TYPE_ALGO, char* MODE, uint8_t KEY_LENGTH, uint8_t BUFFER_SIZE, uint8_t NB_BUFFER, char* ALGO, char* MEASUREMENT_TARGET) { /* Dynamic allocation and init the structure */ BenchDataConfig *config = (BenchDataConfig*) malloc(sizeof(BenchDataConfig)); /* Store each argument in the structure */ config->typeAlgo = TYPE_ALGO; config->mode = MODE; config->keyLength = KEY_LENGTH; config->bufferSize = BUFFER_SIZE; config->nbBuffer = NB_BUFFER; config->nameAlgo = ALGO; config->measurementTarget = MEASUREMENT_TARGET; /* Return the adress of the structure pointer */ return config; }
Juste avant l'exécution du code, on lance une lecture du port série pour récupérer chaque mesure.
Ce que j'aimerai faire, c'est récupérer chaque configuration via l'adresse du pointeur sur la structure en C et ce depuis Python.
J'ai cherché sur Internet mais malheureusement je n'ai rien trouvé là-dessus.
Merci d'avance pour vos retours![]()
Partager