2017-04-25 2 views
0

STM32F7, GCC, FATFSFATFS - Struct provoque la mémoire FIL corrompu - STM32F7

Le code suivant corrompt le retVal. (Par exemple, le vecteur est créé avec un seul objet, mais quand vous inspectez il a une quantité absurde)

std::vector<uint8_t> SDManager::Test() 
{ 
    std::vector<uint8_t> retVal(1); 

    FIL file; 

    retVal.push_back(0xFE); 

    asm("nop"); 

    return retVal; 
} 

Si vous commentez fichier « FIL » alors le vecteur est très bien. Mais dès que vous remettez la structure FIL en jeu, cela corrompt le vecteur.

Ensuite, chose étrange, si je devais créer un autre vecteur, puis revenir l'utiliser comme l'objet de retour de fonction. Le vecteur original devient très bien, mais le vecteur nouvellement retourné devient corrompu. Je suis très nouveau en C++ donc j'ai besoin de conseils sur la façon de diagnostiquer ce problème.

Merci d'avance.

Répondre

0

Avez-vous implémenté caddr_t sbrk(int incr)? Sinon, cela peut être le problème.