我正在研究 stm32f469 做一些裸机代码以尝试使用 libtomcrypt / libtomfastmath 库。我正在尝试调试的代码已经过 valgrind 的检查,并且可以在许多平台上运行,例如 macos、raspberrypi、ios、android。
为了简单起见,我正在执行以下操作,即int register_hash(const struct ltc_hash_descriptor *hash)
使用 const 静态变量调用此函数,方法是为其提供地址:register_hash(&sha256_desc)
。问题是,一旦我在函数内部,hash
指针就是NULL
,我不知道为什么。
我在想这将是一个堆栈溢出,所以我用常量值预先填充了堆栈,0xdeadbeef
并检查了所有这些值是否都被擦除,结果是堆栈没有溢出。
调试时,我可以验证返回的地址的值,&sha256_desc
并且内存也没有损坏。
我没有进行可能溢出和破坏内存的动态分配或缓冲区填充。
我正在使用arm-none-eabi-gcc
7-2017-q4-major 版本进行编译。
我主要是在寻找一些可能的问题来源,因为我已经没有想法了。