搜索

[MCU] 请教:为什么特殊功能寄存器中设置的数据会被篡改?

[复制链接]
72|19
 楼主 | 2020-11-20 13:35 | 显示全部楼层 ||阅读模式
        我们用的是美国TI的msp430g2553,在运行过程中因控制键作用,对某个端口(譬如P2.1)置“1”,可是在没有任何对端口“清零”指令的情况下,端口突然“清零”了……经仿真观察后发现原来对I/O口方向设置的寄存器P2DIR =0x3e;突然被篡改了成了P2DIR =0x00;——也就是原来设置的几个“输出口”都篡改成了“输入口”了。就没了输出能力,相当于输出为“0”了。
        由仿真监控没有发生过单片机系统复位。奇怪的是单片机没复位过,怎么会将P2DIR篡改为0x00的?其它的设置几乎没变。这种情况不是一次两,而是频繁出现……
        没复位,端口方向设置的寄存器P2DIR是怎么被篡改的??????恳请诸位大侠高手指点……致谢!!!!!!!!!!
 

使用特权

评论回复
| 2020-11-20 13:41 | 显示全部楼层
比如操作数组越界         堆栈溢出     

使用特权

评论回复
 楼主 | 2020-11-21 09:13 | 显示全部楼层
LcwSwust 发表于 2020-11-20 13:41
比如操作数组越界         堆栈溢出

请您能具体说说吗——譬如“比如操作数组越界”是怎么产生的?????

使用特权

评论回复
| 2020-11-21 09:25 | 显示全部楼层
ygyh 发表于 2020-11-21 09:13
请您能具体说说吗——譬如“比如操作数组越界”是怎么产生的????? ...

char a[2];
a[100]=0;

使用特权

评论回复
 楼主 | 2020-11-21 14:31 | 显示全部楼层

噢。。。。。谢谢

使用特权

评论回复
 楼主 | 2020-11-21 14:33 | 显示全部楼层
ygyh 发表于 2020-11-21 14:31
噢。。。。。谢谢

不过。。。。数组之类到还是没越界

使用特权

评论回复
| 2020-11-21 18:01 | 显示全部楼层
指针跑飞了?

使用特权

评论回复
| 2020-11-21 18:01 | 显示全部楼层
或者是堆栈不够   飞了   如果在确定没有复位的情况下

使用特权

评论回复
| 2020-11-21 18:02 | 显示全部楼层
如果是复位了     应该还会跑回到程序置1的情况

使用特权

评论回复
 楼主 | 2020-11-23 15:12 | 显示全部楼层
zhangmangui 发表于 2020-11-21 18:01
或者是堆栈不够   飞了   如果在确定没有复位的情况下

我用仿真器监控了。。。。确实没有复位。
请教一下:如果 “堆栈不够” 飞了。。。。怎么弥补呢?恳请指教。。。。。

使用特权

评论回复
 楼主 | 2020-11-23 15:15 | 显示全部楼层
zhangmangui 发表于 2020-11-21 18:01
或者是堆栈不够   飞了   如果在确定没有复位的情况下

请教:堆栈不够。。。。怎么来增大堆栈量呢??????

使用特权

评论回复
| 2020-11-23 23:18 | 显示全部楼层
ygyh 发表于 2020-11-23 15:12
我用仿真器监控了。。。。确实没有复位。
请教一下:如果 “堆栈不够” 飞了。。。。怎么弥补呢?恳请指 ...

工程属性下面找有Heap或stack的大小设置  设大一些

使用特权

评论回复
| 2020-11-24 22:54 | 显示全部楼层
特殊寄存器,  是对应外设的,  还可能是外设的状态发生变化的标志

使用特权

评论回复
 楼主 | 2020-11-27 11:16 | 显示全部楼层
zhangmangui 发表于 2020-11-23 23:18
工程属性下面找有Heap或stack的大小设置  设大一些

谢谢。。。。。。。。。。。。。。。。

使用特权

评论回复
 楼主 | 2020-11-27 11:17 | 显示全部楼层
airwill 发表于 2020-11-24 22:54
特殊寄存器,  是对应外设的,  还可能是外设的状态发生变化的标志

谢谢

使用特权

评论回复
 楼主 | 2020-11-27 11:18 | 显示全部楼层
本帖最后由 ygyh 于 2020-11-27 11:19 编辑


谢谢诸位的指点。。。谢谢

使用特权

评论回复
 楼主 | 2020-11-27 11:30 | 显示全部楼层
zhangmangui 发表于 2020-11-23 23:18
工程属性下面找有Heap或stack的大小设置  设大一些

请问:是这里吗?C:\Users\011\Desktop

使用特权

评论回复
 楼主 | 2020-11-27 11:33 | 显示全部楼层
zhangmangui 发表于 2020-11-23 23:18
工程属性下面找有Heap或stack的大小设置  设大一些

C:\Users\011\Desktop

使用特权

评论回复
| 2020-11-28 16:49 | 显示全部楼层

图片没添加上来

使用特权

评论回复
| 2020-11-28 16:50 | 显示全部楼层

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表