在传统的RTOS中,所有程序共享同一个地址空间。
就是说程序可以读写内存中的任意地址,包括代码段。
查bug的时候如果怀疑是程序写了代码段导致的,可以通过MMU将代码段设置为只读。
简单起见假设代码段从0x10000(64KB)开始,代码段结束地址小于16MB。
通常0x10000以下地址用于捕获空指针访问异常。
1.修改ld文件,使代码段16MB对齐。
2.在MMU初始化的时候将前16MB地址映射为只读。
3.写个测试函数写一下代码段的地址,则会报TLB Modify异常。
阅读(1378) | 评论(0) | 转发(0) |