sscanf的奇怪内存问题

时间:2020-05-22 12:32:12

标签: c gcc scanf stm32f0

在eclipse中使用gcc-arm-none-eabi-5_42016q3-20160926工具链。 处理器:STM32F030 我有一个三行程序,可以在进行任何硬件初始化之前启动以隔离问题:

PuzzleControllerVM

我将RAM设置为0XAA,这样我就可以看到什么被破坏了,为堆栈留下了足够的空间。 在执行memset指令后,堆栈指针位于0X20001F78处,内存是0XAA到0X20001F00。执行完sscanf函数后,堆栈指针返回0X20001F78,但是内存一直被破坏到0X20001BB4,这使我认为此简单调用占用了将近1K的堆栈,或者例程中存在其他错误。我已经停止使用此功能,但很好奇这是否是预期的行为?另外,在嵌入式系统中是否应该避免使用一系列C函数,这让我感到惊讶,但是从搜索中我发现我并不孤单。

0 个答案:

没有答案
相关问题