Chinaunix首页 | 论坛 | 博客
  • 博客访问: 449073
  • 博文数量: 73
  • 博客积分: 3593
  • 博客等级: 中校
  • 技术积分: 912
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 11:32
文章分类

全部博文(73)

文章存档

2013年(2)

2012年(20)

2011年(25)

2010年(12)

2009年(14)

分类: 嵌入式

2010-12-31 00:00:29

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