在和地址有关的code进行编译的时候,会有一个链接脚本,里面会指定一下code的运行地址。code是不会分辨虚拟地址还是物理地址。
假如我们指定运行地址为0x0,我们想指定这个code运行在物理地址0x8000上,那么MMU使能的时候,可以设置MMU映射表,将0x8000映射到0x0地址上,那么这个时候0x8000就是0x0地址了。
现在我们想让DKB运行在0x8100上,但是现在MMU映射地址为0x8000地址。如果想解决这个问题,有2个方法。
1、修改MMU的映射表,将0x8100映射到0x0上。
2、修改链接脚本,将code的运行地址指定为0x100。这个方法不推荐,因为几乎所有的code的运行地址一般都为0x0。因为这样的话,就不会因为修改了MMU而导致其他一些code无法运行。
阅读(2954) | 评论(0) | 转发(0) |