Feature #13528
ferméMesure temps execution sprintf sur carte STM32
100%
Description
Mesurer le temps d’exécution de l'écriture d'un unsigned int de 32 bits (uint32_t) en décimal dans une chaine de caractère via les fonctions :
- sprintf() (stdio.h)
- itoa() () (stdlib.h)
- printUint32() (voir code ci-dessous)
Les tests doivent être effectué sur le carte STM32F412G-DISCO.
Lien vers l'IDE : https://www.st.com/en/development-tools/stm32cubeide.html
(prendre version 1.7.0)
Lien vers le site constructeur de la carte : https://www.st.com/en/evaluation-tools/32f412gdiscovery.html
Lien vers la référence du uC pour doc périphérique + hal : https://www.st.com/en/microcontrollers-microprocessors/stm32f412zg.html
Utiliser la version de firmware V1.26.2
N'hésitez pas à passer en salle D106 si vous avez des questions.
Code de la fonction :
void printChar(uint8_t in, uint8_t out2)
{
if ((in >> 4) < 0xA)
{
out0 = (in >> 4) + '0';
}
else
{
out0 = (in >> 4) + 0x37;
}
if ((in & 0x0F) < 0xA)
{
out[1] = (in & 0x0F) + '0';
}
else
{
out[1] = (in & 0x0F) + 0x37;
}
}
void printUint32(uint32_t in, uint8_t out8)
{
uint8_t tmp;
int8_t i;
uint8_t j = 0;
for (i = 3; i >= 0; i--)
{
tmp = in >> (i << 3); // in >> i*8
printChar(tmp, &out[j]);
j += 2;
}
}
Fichiers