前言
最近有粉丝在后台提问,咨询使用LDRA Testbed(TBrun)执行单元测试时报“尝试读取受保护的内存(attempt to read protected memory)”错误。这个问题比较常见,于是想着写下本篇文章,希望对遇到类似问题的朋友有所帮助。
问题描述
事情的经过大概是这样子的:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6327a97f986a42aca3311e7311ada4ca.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ffb9a0f6cc654b95a2106adedf7c6311.jpeg)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c3bfbbad500843c08908fcc38ddaf6f1.png)
原因分析
从这位朋友的截图可以看出,被测的代码是要从某个指定的硬件物理地址取值,而他的TBrun配置的运行环境为仿真环境。仿真环境下可能不存在这个地址,或者该地址是在保护区域,不允许访问,造成这样的报错(attempt