全球旧事资料 分类
就是一个虚拟地址,一个物理地址。一般bootloader会连接到bfc00000,因为在MIPS上运行的程序都使用虚拟地址,而板子上的bootflash一般会被映射到物理地址1fc00000,这样上电时直接取flash的第一条指令,也就是bootloader的第一条指令。
嵌入式uboot和mips地址空间
1一个家用路由器的uboot
addressspacememstart0x80000000memsize0x02000000flashstart0xBF000000flashsize0x00400000imagesi
flashuboot0xBF000000ecos0xBF050000li
ux0xBF0C0000uboot启动信息
分析1内存地址范围从0x80000000开始,到0x82000000结束。2uboot被load到内存地址0x81fc00003启动流程:AP83上电后首先运行flash上面的cpumipsstartS这个汇编程序,并没有进入内存。接着,startS把uboot的代码段全部copy到内存地址0x81fc0000,并从该地址开始转入内存运行。
2MIPS的地址空间
1综述:一般嵌入式的hardware有两部分存贮器,一个是RAM另一个是ROMflashflash用来存放code包括操作系统本身,当然也包括bootloaderubootRAM就是相当于PC的内存了,比flash速度快的多,但掉电后会丢失所有数据,所以用作动态内存。2MIPS的地址空间:32位mips的地址空间跟PC一样,是2324G字节。对于嵌入式设备来说,所有的设备的地址都存在于一个地址空间。如下图:flash的地址空间一般放在Kseg1段,而RAM的地址空间一般则放在kseg0段。
fMIPSCPU地址空间简介:注:首先需要明确的是CPU物理地址空间不仅仅包括RAM物理内存的空间,还包括CPU内部的一些总线、寄存器的编址。一个MIPSCPU可以运行在两种优先级别上,用户态和核心态。MIPSCPU从核心态到用户态的变化并不是CPU工作不一样,而是对于有些操作认为是非法的。在用户态,任何一个程序地址的首位是1的话,这个地址是非法的,对其存取将会导致异常处理。另外,在用户态下,一些特殊的指令将会导致CPU进入异常状态。在32位CPU下,程序地址空间划分为4个大区域。每个区域有一个传统的名字。对于在这些区域的地址,各自有不同的属性:kuseg虚拟空间0x000000000x7FFFFFFF低端2G:这些地址是用户态可用的地址。在有MMU的机器里,这些地址将一概被MMU作转换,除非MMU的设置被建立好,否则这2G地址是不可用的。对于没有MMU的机器,存取这2G地址的方法依具体机器相关,你的CPU具体厂商提供的手册将会告诉你关于这方面的信息。如果想要你的代r
好听全球资料 返回顶部