reboot 不成功怎么办
时间:2010-08-02
来源:互联网
我的内核就是不能reboot,跟踪下去发现执行到arch_reset里面就不行了。代码是:
ARM_INT_EN_REG =0; //disable all int
printk(KERN_EMERG "reset 202 first.\n");
#ifdef CONFIG_M41ST84_WDT
wdt_reset();
#else
// TIMER1_RST_CNT_REG = CUR_TIME_CNT_REG+300; //set timer1 bomb
// TIMER1_CTRL_REG =0x118; //enable reset
#endif
printk(KERN_EMERG "reset cpu system.\n");
#if 1
if (mode == 's') {
/* Jump into ROM at address 0 */
cpu_reset(0);
} else {
}
/* machine should reboot */
#endif
复制代码
,在#if 1 前面加入打印,判断发现mode为空。上面被注释的两行是芯片的复位寄存器。如果我使能这两句,就不会再往下执行了,然后就是没有反应,如果我关掉这两句,接下来也是没反应。我的这个内核没有用到看门狗。那么重启最终会去执行什么是不是需要从bootload重新开始执行啊?希望高手指点,多谢!
ARM_INT_EN_REG =0; //disable all int
printk(KERN_EMERG "reset 202 first.\n");
#ifdef CONFIG_M41ST84_WDT
wdt_reset();
#else
// TIMER1_RST_CNT_REG = CUR_TIME_CNT_REG+300; //set timer1 bomb
// TIMER1_CTRL_REG =0x118; //enable reset
#endif
printk(KERN_EMERG "reset cpu system.\n");
#if 1
if (mode == 's') {
/* Jump into ROM at address 0 */
cpu_reset(0);
} else {
}
/* machine should reboot */
#endif
复制代码
,在#if 1 前面加入打印,判断发现mode为空。上面被注释的两行是芯片的复位寄存器。如果我使能这两句,就不会再往下执行了,然后就是没有反应,如果我关掉这两句,接下来也是没反应。我的这个内核没有用到看门狗。那么重启最终会去执行什么是不是需要从bootload重新开始执行啊?希望高手指点,多谢!
作者: sleetboy 发布时间: 2010-08-02
看回显了么?
作者: vermouth 发布时间: 2010-08-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28