打印

AT91SAM9260怎么软件控制重启???

[复制链接]
3332|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yyywill|  楼主 | 2011-2-24 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AT91SAM9260怎么软件控制重启???


我的程序是keil写的裸机程序,没有开看门狗,通过U-BOOT加载到内存运行,现在想通过软件实现重启,重新运行U-BOOT
就象用U-BOOT加载linux后,运行reboot命令重启一样
1.
ldr pc,=0x00  
不行



2.
LDR     R0, =0x00000
BX      R0

不行


3.
LDR     R0, =0x23F00000  //uboot装载到内存的地址
BX      R0

不行



4.
AT91C_BASE_RSTC->RSTC_RCR = (AT91C_RSTC_KEY | AT91C_RSTC_PROCRST);
会重启运行我的软件,不会重启开始运行U-BOOT

5.
//取消重映射
AT91C_BASE_MATRIX->MATRIX_MRCR = 0;
//复位
AT91C_BASE_RSTC->RSTC_RCR = (AT91C_RSTC_KEY | AT91C_RSTC_PROCRST);

过了大概一分钟后,完全重启,这时间也太长了,不象linux下的reboot一下就重启了


6.
AT91C_BASE_RSTC->RSTC_RCR = (AT91C_RSTC_KEY | AT91C_RSTC_EXTRST);   //NRST
AT91C_BASE_RSTC->RSTC_MR = (AT91C_RSTC_KEY |  1);
不行


7.
电源管理里MOR寄存器,关闭主振荡器,也不行


到底怎么搞,才是正确的重启???

相关帖子

沙发
yyywill|  楼主 | 2011-2-25 09:56 | 只看该作者
21IC没人气,稀烂了

AT91C_BASE_RSTC->RSTC_RCR = (AT91C_RSTC_KEY | AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST);
while(1);
就可以了,唉......

使用特权

评论回复
板凳
wangkj| | 2011-2-25 12:40 | 只看该作者
自己问题自己解决,还给答案了,给条裤子穿。
跳转到0000应该是可行的,请看boot/loader代码。

使用特权

评论回复
地板
nicholasldf| | 2011-2-28 11:52 | 只看该作者
我以前重启的方法是:开看门狗后,然后死循环,直到看门狗超时重启。
u-boot里面reset命令也是如此实现的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

29

帖子

0

粉丝