0

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++ 很陌生,所以我需要一些关于如何诊断这个问题的指导。

提前致谢。

4

1 回答 1

0

你实施了caddr_t sbrk(int incr)吗?如果不是,这可能是问题所在。

于 2017-05-07T20:56:55.580 回答