关于REDBOOT的启动代码,与MMU有关,请进

[复制链接]
2736|1
 楼主| mybao 发表于 2008-9-3 19:39 | 显示全部楼层 |阅读模式
<br />CPU为&nbsp;ARM926EJ<br /><br />REDBOOT的TEXT段都在FLASH中运行,没有拷贝到RAM。而且<br /><br />REDBOOT的TEXT段的编译地址为C0000000(虚地址)开始.<br /><br />实际FLASH地址从00000000开始<br /><br />实际程序烧写到00000000开始的FLASH。也就是实际程序从00000000开始<br /><br />执行。<br /><br />摘录一段与MMU初始化有关的启动代码(CACHE在之前已经使能):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hal_mmu_init<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FAKE_LED_MACRO(6)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Enable&nbsp;MMU<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r2,=10f<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r1,=MMU_Control_Init|MMU_Control_M<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mcr&nbsp;&nbsp;&nbsp;&nbsp;MMU_CP,0,r1,MMU_Control,c0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,r2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />10:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br /><br />hal_mmu_init是C语言函数,将00000000开始的FLASH 映射到C0000000空<br /><br />间,<br />mcr&nbsp;&nbsp;&nbsp;&nbsp;MMU_CP,0,r1,MMU_Control,c0  使能MMU。<br /><br />mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,r2&nbsp;实现绝对跳转,跳到标号10开始的地方,该地址是绝对地<br /><br />址,也是虚拟地址。因为此时MMU已经初始化完成,从下一条指令开始,程序从虚拟地址(编译指定的地<br /><br />址)开始运行。<br /><br />现在对mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,r2&nbsp;这条指令的执行有点疑问,因为这条指令是从00000000开始的FLASH取指,但在这条指令之前MMU已经初始化完成,00000000开始的空间已经不存在,我在想<br />mcr&nbsp;&nbsp;&nbsp;&nbsp;MMU_CP,0,r1,MMU_Control,c0执行时,应该mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,r2这条<br /><br />指令<br />已经取指,所以MMU使能后,mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,r2能被执行。<br /><br />不知道这样理解对不对?
 楼主| mybao 发表于 2008-9-5 22:59 | 显示全部楼层

如果正在执行的代码所在空间被MMU映射到本身的空间,代码的执行就好理解了。<br />如果MMU把正在执行的代码所在的物理空间映射到另外的虚拟空间,我上面的理解不知道对不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

759

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部