博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OK6410A 开发板 (八) 57 linux-5.11 OK6410A reset异常 以reset按键为例
阅读量:4285 次
发布时间:2019-05-27

本文共 1687 字,大约阅读时间需要 5 分钟。

在linux启动后,能正常交互时,按下reset按键,进入reset异常后
具体芯片手册中有 reset 相关的 记录		每个 ip 都有 reset 的概念, 而 reset 管脚 管理了哪些 ip的reset 需要关注	1. Hardware reset : XnRESET 拉低 4个 CLK 		// 这个 Hardware reset 会 拉低 ip cpu的 reset ,同时还会拉低 cp15的reset		// mmu相关的寄存器已经复位,此时mmu关闭,此时 只有物理地址		// 此时不能访问ddr,因为ddr控制器相关的寄存器也已经复位		// 且 此时的0x00000000 不是指向 ddr ,因为 arm系统的 memory map 把 0x0000 0000留给了 bootrom 		// 拉高 ip cpu的 reset		// 然后才 进入 reset 异常 , 异常中设置的pc为0x00000000		// 所以开始从 bootrom 启动	2. Watchdog reset : 		// 由 ip watchdog 拉低 cpu 的reset , 然后拉高		// 会不会拉低 cp15 的 reset	3. Wakeup reset 	:  return from SLEEP mode		// 由 ip Wakeup 拉低 cpu 的reset , 然后拉高		// 会不会 拉低 cp15 的 reset	// 一般不会出现 cpu reset 且 cp15 没有reset 的情况,所以一般来说 vector_rst 不会被运行.
arch/arm/kernel/entry-armv.S	1183 .L__vectors_start:	1184     W(b)    vector_rst	...	1046 vector_rst:                                                                      	1047  ARM(   swi SYS_ERROR0  )     // 在 特权 模式下进入 swi 异常                                   	1048  THUMB( svc #0      )                                                            	1049  THUMB( nop         )                                                            	1050     b   vector_und
arch/arm/kernel/entry-armv.S1183 .L__vectors_start:...1186     W(ldr)  pc, .L__vectors_start + 0x1000arch/arm/kernel/entry-common.S169 ENTRY(vector_swi)...260     invoke_syscall tbl, scno, r10, __ret_fast_syscall...265     bcs arm_syscallarch/arm/kernel/traps.carm_syscall	switch (no & 0xffff) {
case 0: arm_notify_die("branch through zero", regs, SIGSEGV, SEGV_MAPERR, NULL, 0, 0); if (user_mode(regs)) {
}else die(str, regs, err); __die(str, err, regs) notify_die __show_regs oops_end(flags, regs, sig)

转载地址:http://mjigi.baihongyu.com/

你可能感兴趣的文章
Http Response Code[整理]
查看>>
Python安装、集成Eclipse及HelloWorld
查看>>
windows平台下安装python的setuptools工具
查看>>
HTML基础语法总结
查看>>
HTML基础语法总结
查看>>
自话粒子群算法(超简单实例)
查看>>
Java四舍五入
查看>>
判断两个(float)变量x,z是否相等 以及和0值比较方法
查看>>
Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
查看>>
数据挖掘(六):预测
查看>>
轮盘赌选择,原理及C++实现
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
《Python爬虫学习系列教程》学习笔记
查看>>
MIC编程(4)——MIC灵活高效的编程方式
查看>>
Apriori算法
查看>>
Python itertools模块详解
查看>>
Apriori算法简介及实现(python)
查看>>
Python中的集合:set与frozenset用法举例
查看>>
python strip()函数 介绍
查看>>
c++中string类成员函数c_str()的用法
查看>>