欢迎光临zhtek的博客

职业生涯、技术、生活......,欢迎评论、留言!

MIPS4k处理器boot学习

MIPS4k处理器boot学习
hdguy 发表于 2006-5-11 16:09:00

MIPS寄存器约定:

寄存器编号/助记符/用法
0 zero 永远返回值为0
1 at 用做汇编器的暂时变量
2-3 v0, v1 子函数调用返回结果
4-7 a0-a3 子函数调用的参数
8-15 t0-t7 暂时变量,子函数使用时不需要保存与恢复
24-25 t8-t9
16-25 s0-s7 子函数寄存器变量。子函数必须保存和恢复使用过的变量在函数返
回之前,从而调用函数知道这些寄存器的值没有变化。
26,27 k0,k1 通常被中断或异常处理程序使用作为保存一些系统参数
28 gp    全局指针。一些运行系统维护这个指针来更方便的存取“static“和”extern"
变量。
29 sp     堆栈指针
30 s8/fp 第9个寄存器变量。子函数可以用来做桢指针
31  ra    子函数的返回地

===============================================

在bootloader下,MIPS核的初始化用汇编语言写成,基本过程是

1〉清除CP0的WATCH寄存器    

mtc0    zero, C0_WATCHLO  /* First thing: clear watch regs */
    mtc0    zero, C0_WATCHHI

2〉初始化CP0状态寄存器,禁止软硬件中断以及选择boot异常向量地址

3〉根据需要建立MIPS的状态和控制寄存器,通常会清除(ERL、EXL位)

4〉初始化cache,先初始化ICACHE,在初始化DCACHE(具体过程)

5〉开始初始化外围接口(init_platform),主要是初始化时钟系统、EMIF接口等。

阅读更多
文章标签: 汇编 cache 语言 c
个人分类: Life&Society Record
上一篇英特尔明年停产386 20年经典谢幕
下一篇U-BOOT的启动流程及移植
想对作者说点什么? 我来说一句

ARM处理器Boot与Remap

2011年11月21日 260KB 下载

没有更多推荐了,返回首页

关闭
关闭