STM32F7, GCC, FatFS
Следующий код повреждает retVal. (Например, вектор создается только с одним объектом, но при проверке он имеет абсурдное количество)
std::vector<uint8_t> SDManager::Test()
{
std::vector<uint8_t> retVal(1);
FIL file;
retVal.push_back(0xFE);
asm("nop");
return retVal;
}
Если вы закомментируете «FIL файл», то вектор в порядке. Но как только вы возвращаете структуру FIL в игру, она повреждает вектор.
Следующая странная вещь, если бы я должен был создать еще один вектор, а затем вернуть, использовать его как функцию возврата объекта. Исходный вектор становится нормальным, однако вновь возвращаемый вектор искажается.
Я очень плохо знаком с c ++, поэтому мне нужно несколько советов о том, как диагностировать эту проблему.
Заранее спасибо.
Вы реализовали caddr_t sbrk(int incr)
?
Если нет, то это может быть проблемой.
Других решений пока нет …