4115| 8
|
ARM内核是如何分辨出写内存越界的? |
30金钱
最佳答案CPU是分辨不出,内存越界并不一定触发hardfault,触发hardfault的真实原因是内存越界写入到了某些保护区域(可能性很小)或者造成了逻辑错误(可能性很大,如破坏了堆栈,函数返回时R14寄存器数据异常, 导致程序跳转失败等), 而内存越界本身只是个错误,而且是不会百分百发生的随机错误(曾经遇到过上电正常,工作一段时间触发异常的,后来排查就是指针越界), 所以必须避免这种问题。
其实你可以定义两个全局变量测试下:
int a[10] ...
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2025-6-15 17:54
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网