9468|16

420

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

MSP430软件复位的问题 [复制链接]

如果我程序的运行需要对430进行软件复位,我可以调用 ((void (*)())0xFFFE)()来实现吗?0xFFFE为复位向量的地址。如果可以的话,软件复位后系统中的全局变量是保持不变还是会被初始化?

最新回复

那么去掉这个函数,初始化应该自己编程操作。   详情 回复 发表于 2014-8-6 17:48
 
点赞 关注

回复
举报

1万

帖子

142

TA的资源

版主

沙发
 
如果你用的型号支持软件指令复位就可以通过相关操作实现。复位时,如果没有相关的变量操作,那么变量内容就不会改变。

点评

另外,硬件看门狗引起的复位,全局变量会被初始化吗  详情 回复 发表于 2014-8-5 21:19
我用的AFE2XX系列,没有软件复位指令  详情 回复 发表于 2014-8-5 21:14

赞赏

1

查看全部赞赏

 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
chunyang 发表于 2014-8-5 21:05
如果你用的型号支持软件指令复位就可以通过相关操作实现。复位时,如果没有相关的变量操作,那么变量内容就 ...

我用的AFE2XX系列,没有软件复位指令
 
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

4
 
chunyang 发表于 2014-8-5 21:05
如果你用的型号支持软件指令复位就可以通过相关操作实现。复位时,如果没有相关的变量操作,那么变量内容就 ...

另外,硬件看门狗引起的复位,全局变量会被初始化吗

点评

仍然由程序决定,任何时候,不操作就不变化。即使是上电,那也仅仅是内容不定而已。  详情 回复 发表于 2014-8-5 22:39
 
 
 

回复

1万

帖子

142

TA的资源

版主

5
 
armcu 发表于 2014-8-5 21:19
另外,硬件看门狗引起的复位,全局变量会被初始化吗

仍然由程序决定,任何时候,不操作就不变化。即使是上电,那也仅仅是内容不定而已。

点评

可我好像记得编译器会把所有全局变量初始化为0的。也就是说430在上电后会先执行这段初始化代码的?  详情 回复 发表于 2014-8-5 23:13
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

6
 
chunyang 发表于 2014-8-5 22:39
仍然由程序决定,任何时候,不操作就不变化。即使是上电,那也仅仅是内容不定而已。

可我好像记得编译器会把所有全局变量初始化为0的。也就是说430在上电后会先执行这段初始化代码的?

点评

那你要去查查编译器的说明文档,不过我不相信哪个编译器会这么做,MCU和PC平台完全是两回事。如果编译软件这么干,会无端延长系统初始化时间,更可能对有些编程造成不可预知的后果。  详情 回复 发表于 2014-8-6 00:07
 
 
 

回复

1万

帖子

142

TA的资源

版主

7
 
armcu 发表于 2014-8-5 23:13
可我好像记得编译器会把所有全局变量初始化为0的。也就是说430在上电后会先执行这段初始化代码的?

那你要去查查编译器的说明文档,不过我不相信哪个编译器会这么做,MCU和PC平台完全是两回事。如果编译软件这么干,会无端延长系统初始化时间,更可能对有些编程造成不可预知的后果。

点评

我没有看说明文档,只是调试的时候去掉了debug中的go to main。然后单步调试查看全局变量的值,发现程序执行到图中绿色的语句时,全局变量确实被清零了。 [attachimg]163787[/attachimg]  详情 回复 发表于 2014-8-6 09:25
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

8
 
chunyang 发表于 2014-8-6 00:07
那你要去查查编译器的说明文档,不过我不相信哪个编译器会这么做,MCU和PC平台完全是两回事。如果编译软 ...

我没有看说明文档,只是调试的时候去掉了debug中的go to main。然后单步调试查看全局变量的值,发现程序执行到图中绿色的语句时,全局变量确实被清零了。

点评

你看看该赋值语句是哪里产生的,另外,纯软件模拟是不作数的。  详情 回复 发表于 2014-8-6 15:33
 
 
 

回复

419

帖子

0

TA的资源

一粒金砂(高级)

9
 
看门狗密钥错误会引起复位。所以 WTDCTL = 0;

点评

这个我知道,我想知道的是,看门狗引起的复位、软件复位、上电复位这些情况,main函数开始执行时全局变量的值  详情 回复 发表于 2014-8-6 10:43
 
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

10
 
woody_chen 发表于 2014-8-6 10:33
看门狗密钥错误会引起复位。所以 WTDCTL = 0;

这个我知道,我想知道的是,看门狗引起的复位、软件复位、上电复位这些情况,main函数开始执行时全局变量的值

点评

当然全局变量会被重新初始化。从复位到执行main函数之前还有个cstart函数,就是用来初始化全局变量的。IAR可以设置不自动添加cstart函数。  详情 回复 发表于 2014-8-6 10:51
 
 
 

回复

419

帖子

0

TA的资源

一粒金砂(高级)

11
 
armcu 发表于 2014-8-6 10:43
这个我知道,我想知道的是,看门狗引起的复位、软件复位、上电复位这些情况,main函数开始执行时全局变量 ...

当然全局变量会被重新初始化。从复位到执行main函数之前还有个cstart函数,就是用来初始化全局变量的。IAR可以设置不自动添加cstart函数。

点评

哦 在哪里设置?另外,我把PC指针指向复位向量的位置,这样的复位会初始化全局变量吗?  详情 回复 发表于 2014-8-6 11:02
 
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

12
 
woody_chen 发表于 2014-8-6 10:51
当然全局变量会被重新初始化。从复位到执行main函数之前还有个cstart函数,就是用来初始化全局变量的。IA ...

哦 在哪里设置?另外,我把PC指针指向复位向量的位置,这样的复位会初始化全局变量吗?
 
 
 

回复

419

帖子

0

TA的资源

一粒金砂(高级)

13
 
C:\Users\wchen\Pictures\IAR.bmp
好像是这个,具体我也没用过。你可以研究一下。
你所说的方法也会。

点评

好的,多谢  详情 回复 发表于 2014-8-6 11:25

赞赏

1

查看全部赞赏

 
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

14
 
woody_chen 发表于 2014-8-6 11:21
好像是这个,具体我也没用过。你可以研究一下。
你所说的方法也会。

好的,多谢
 
 
 

回复

1万

帖子

142

TA的资源

版主

15
 
armcu 发表于 2014-8-6 09:25
我没有看说明文档,只是调试的时候去掉了debug中的go to main。然后单步调试查看全局变量的值,发现程序 ...

你看看该赋值语句是哪里产生的,另外,纯软件模拟是不作数的。

点评

是IAR编译器加的cstart函数,用来初始化全局变量和堆栈的  详情 回复 发表于 2014-8-6 15:57
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

16
 
chunyang 发表于 2014-8-6 15:33
你看看该赋值语句是哪里产生的,另外,纯软件模拟是不作数的。

是IAR编译器加的cstart函数,用来初始化全局变量和堆栈的

点评

那么去掉这个函数,初始化应该自己编程操作。  详情 回复 发表于 2014-8-6 17:48
 
 
 

回复

1万

帖子

142

TA的资源

版主

17
 
armcu 发表于 2014-8-6 15:57
是IAR编译器加的cstart函数,用来初始化全局变量和堆栈的

那么去掉这个函数,初始化应该自己编程操作。
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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