查看64位多核 MIPS 异常和中断结构的源代码
←
64位多核 MIPS 异常和中断结构
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=== 上电初始化时例外入口 === 下面这一段与 Linux Kernel 关系不大,但与 Bootloader 关系密切,请酌情选读: 对于 MIPS 刚上电的初始化阶段(CP0_STATUS[BEV]=1),因为 Cache 状态未知,不能使用,所以所有的例外入口虚地址都得使用数据不进入 Cache 的地址段。因此MIPS 规定,BEV=1 时,例外向量入口为: <source lang=bash> 冷启动、热重启、非屏蔽中断,入口为 0xFFFF FFFF BFC0 0000 TLB Refill,入口为 0xFFFF FFFF BFC0 0200 Cache Error,入口为 0xFFFF FFFF BFC0 0300 其它例外,入口为 0xFFFF FFFF BFC0 0380 </source> 特别地,冷启动、热重启、非屏蔽中断例外时,PC 的值都为 0xFFFF FFFF BFC0 0000 (MIPS32 为 0xBFC0 0000),即当发生这类例外时,处理器总是跳转到这个地址继续执行,其固定映射到的物理地址为 0x1FC0 0000 处。这个地址常常关联到放置 Bootloader 的内部flash,每次一 reset,就会触发这个例外,跳转到 0x1FC0 0000,去取 Bootloader 的第一条指令。 可以看到在初始化阶段 (CP0_STATUS[BEV]=1,bootloader 最初执行时),4 类例外处理程序的最大允许长度分别为:0x200, 0x100, 0x80, 通常不超过 0x80 字节 注意 BEV=1 的时间很短,一旦 bootloader 完成初始化,其就将 BEV 置为 0,进入系统正常运行模式 <br><br>
返回到
64位多核 MIPS 异常和中断结构
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面