gpt4 book ai didi

c - 捕获未初始化的指针

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:32 25 4
gpt4 key购买 nike

<分区>

我试图捕获传递给函数的错误指针。在我曾经使用的裸机嵌入式应用程序上:

assert(somePointer != NULL);

如果指针的特定内存位置初始化为零,则此方法效果不佳。

我注意到 FreeRTOS 和其他软件(如 RTX)使用 0xA5 等模式填充内存(用于堆栈使用高级水印)。因此,单元化指针将具有一些非零初始值。

当然,我知道即使是零初始化内存也会变成非零。因此,我希望有人有更好的方法来检测未初始化的指针。

因为这是一个嵌入式系统,所以我想有一个函数来检查指针是否在正确的内存范围内。在 ST32F4xx 上,它将是 0x20000000 到 0x20020000,或 0x10000000 到 0x10010000 以及外设地址范围。

初始化指针的最大原因通常是在固件库中声明为未初始化的外设句柄结构。 assert() 宏用于帮助尽快检测到这些。

欢迎提出建议

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com