27709|5

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

S3C44B0X如何软复位 [复制链接]

CPU: S3C44B0X
OS: uclinux 2.4

在shell下执行reboot总是出现
reboot failed!

查了些资料,只能看到诸如 architecture was unable to reboot 这样的描述。
既然不支持,那就打算模拟硬件reset的方式,在程序里强制跳转到 0x00000000 地址来进行复位,asm volatile("b 0x00000000");
但是仍然不成功,
提示:
Unhandled fault: alignment exception (93) at 0x00000001
fault-common.c(97): start_code=0xc780040, start_stack=0xc783f94)
Internal error: Oops: 0
CPU: 0
pc : [<0c01ac14>]    lr : [<0c0157e4>]    Not tainted
sp : 0c68bfb8  ip : 0c7802e8  fp : 00000000
r10: 0c781b84  r9 : 00000000  r8 : 00000000
r7 : 0c780328  r6 : 0c780280  r5 : 0c78031c  r4 : 0c286d44
r3 : 0c68bff4  r2 : ffffffff  r1 : 20000010  r0 : 0c783566
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  Segment user
Control: 0
Process rb (pid: 26, stackpage=0c68b000)
Stack:
0c68bfa0:                   0c0157e4 0c01ac14  20000093 ffffffff 0c781d34 0c781b
d0
0c68bfc0: 0c781bd4 0c7802d4 00000000 0c78031c  0c780280 0c780328 00000000 000000
00
0c68bfe0: 0c781b84 0c7802f4 0c7802e8 0c7802e8  0c780268 0c783566 20000010 ffffff
ff
Backtrace: no frame pointer
Code: e3a00001 e1a0f00e (e5904000) e1140aa4 e0c11001
pid 26: failed 11

请教各位是怎么实现软复位的呢?致谢!

最新回复

分分分~~~ 正在搞s3c4510b的bootloader  bios-dy1.4   详情 回复 发表于 2008-5-19 13:24
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这么跳转是不是太简单粗暴了?
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
已经解决了。

uclinux/linux-2.4.x/include/asm-armnommu/arch-s3c44b0x/system.h

arch_idle is the code executed by the idle process when there is no other process to run. This function should put the hardware in a low power mode. arch_reset is used to reset the processor during a system reset.

/*
* linux/include/asm-armnommu/arch-s3c44b0x/system.h
*
*/

#ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H

static inline void arch_idle(void)
{
        while (!current->need_resched && !hlt_counter)
                cpu_do_idle(IDLE_WAIT_SLOW);
}

extern inline void arch_reset(char mode)
{
        switch (mode) {
                case 's':
                        /* software reset jump to address 0x0*/
                        cpu_reset(0);
                        break;
                case 'h':
                        /* hardware reset watchdog timer? */
                        break;
        }
}

#endif
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
分全部送人,要者来取
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

5
 
我要
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
分分分~~~
正在搞s3c4510b的bootloader  bios-dy1.4
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表